# Userexits

Functions

## Pre-Action userexits
[Action userexits]

### Functions
DtvLong | dal_cch_nop_ins_mod ()
| Calls cch_nop_ins only in 'I'nsert mode.
int | nsv_pra ()
| Old pre-action userexit to generate a number via 'number-server'.
int | nsv_usx_gen_eid ()
| Fills field EDB_ID with new generated unique number.
int | nsv_usx_pra ()
| Edit- or pre-action userexit to generate a number via 'number-server'.
int | sig_pra ()
| Checks if a record is signed and denies delete actions.
int | sig_tab_pra ()
| Updates the entity id field, which depends on the entity name.
int | tol_pre_act ()
| Pre-action userexit to calculate fields of the current mask.
int | tpr_doc_art_poa ()
| Post action userexit for document widgets to assign an item.
int | xartic_pre_action ()
| Pre-action userexit for item widgets.
int | xartst_pre_action (const char *param1, const char *param2)
int | xase_hie_pra (const char *param1, const char *param2)
int | xatt_pra (const char *param1, const char *param2)
int | xchg_chk_opr_pra (const char *param1, const char *param2)
int | xchg_chk_vie_nam (const char *param1, const char *param2)
int | xchg_dup_pos_ok (const char *param1, const char *param2)
int | xchg_ewo_pra (const char *param1, const char *param2)
int | xchg_ewr_ewo_pra (const char *param1, const char *param2)
int | xchg_ewr_pra (const char *param1, const char *param2)
int | xchg_opr_act_pra (const char *param1, const char *param2)
int | xchg_set_pra (const char *param1, const char *param2)
int | xcls_agg_pra (const char *param1, const char *param2)
int | xcls_att_set_pra (const char *param1, const char *param2)
int | xcls_chk_abs_pra (const char *param1, const char *param2)
int | xcls_chk_cls_pra (const char *param1, const char *param2)
int | xcls_chk_ent_pra (const char *param1, const char *param2)
int | xcls_chk_set_pra (const char *param1, const char *param2)
int | xcls_set_abs_pra (const char *param1, const char *param2)
int | xcls_set_att_pra (const char *param1, const char *param2)
int | xcls_set_pra (const char *param1, const char *param2)
int | xcnf_cat_spc_pra (const char *param1, const char *param2)
int | xcnf_cpa_spc_cat_pra (const char *param1, const char *param2)
int | xcnf_cpa_spc_pra (const char *param1, const char *param2)
int | xcnf_cps_elm_pra (const char *param1, const char *param2)
int | xcnf_cps_elm_str_pra (const char *param1, const char *param2)
int | xcnf_cps_hie_pra (const char *param1, const char *param2)
int | xcnf_cps_sol_pra (const char *param1, const char *param2)
int | xcnf_filt_cls_pra (const char *param1, const char *param2)
int | xcnf_mdl_spc_pra (const char *param1, const char *param2)
int | xcnf_ord_pra (const char *param1, const char *param2)
int | xcnf_ord_spc_pra (const char *param1, const char *param2)
int | xcnf_ord_spc_sel_pra (const char *param1, const char *param2)
int | xcnf_prd_cla_pra (const char *param1, const char *param2)
int | xcnf_prd_var_pra (const char *param1, const char *param2)
int | xcnf_spc_cat_pra (const char *param1, const char *param2)
int | xcnf_spc_del_pra (const char *param1, const char *param2)
int | xcnf_spc_pra (const char *param1, const char *param2)
int | xcnf_spc_var_pra (const char *param1, const char *param2)
int | xcnf_var_mdl_pra (const char *param1, const char *param2)
int | xcnf_var_spc_pra (const char *param1, const char *param2)
int | xcol_rsl_rul_pra (const char *param1, const char *param2)
int | xcpa_ali_pra ()
| Pre-action userexit for the Alias IDs constraint lists (e.g. EDB-CPA-ART-CNS-SLI).
int | xcpa_ewo_ali_pra (const char *param1, const char *param2)
int | xcpa_obj_pra (const char *param1, const char *param2)
int | xcpa_pra (const char *param1, const char *param2)
int | xcps_alt_pra (const char *param1, const char *param2)
int | xcps_cmp_pra (const char *param1, const char *param2)
int | xcps_cnf_bom_sel_pra (const char *param1, const char *param2)
int | xcps_cre_spc_rul_pra (const char *param1, const char *param2)
int | xcps_elm_pra (const char *param1, const char *param2)
int | xcps_fam_cmp_pra (const char *param1, const char *param2)
int | xcps_flt_pra (const char *param1, const char *param2)
int | xcps_grp_cmp_pra (const char *param1, const char *param2)
int | xcps_mdl_bom_pra (const char *param1, const char *param2)
int | xcps_mdl_bom_sel_pra (const char *param1, const char *param2)
int | xcps_mdl_sel_pra (const char *param1, const char *param2)
int | xcps_ntr_bom_pra (const char *param1, const char *param2)
int | xcps_prl_chk_elm_pra (const char *param1, const char *param2)
int | xcps_prl_chk_vie_pra (const char *param1, const char *param2)
int | xcps_prl_pra (const char *param1, const char *param2)
int | xcps_set_apl_str (const char *param1, const char *param2)
int | xcps_sol_mul_pra (const char *param1, const char *param2)
int | xcps_sol_pra (const char *param1, const char *param2)
int | xcps_sol_spc_pra (const char *param1, const char *param2)
int | xcps_vrf_bom_pos_pra (const char *param1, const char *param2)
int | xctx_ctx_pra (const char *param1, const char *param2)
int | xdir_pre_act ()
| Pre-action userexit for directory list.
int | xdocfi_pra ()
| Pre-action userexit for document-file relation masks.
int | xdocfi_sto_pra ()
| Pre-action userexit for file-vault relation masks.
int | xdocfi_str_pra ()
| Pre-action userexit for file-vault relation masks.
int | xdocst_pre_action ()
| Pre-action userexit for widgets with document structures.
int | xdocum_pre_action ()
| Pre-action userexit for document master masks.
int | xedb_hie_pre_act (const char *param1, const char *param2)
int | xedb_pra ()
| Basic pre-action userexit.
int | xedb_pra_del_pac ()
| Delete current record if it is used in one or more folders.
int | xedb_pra_str ()
| Basic pre-action userexit for relation widgets.
int | xedb_pra_vie ()
| Basic pre-action userexit.
int | xedb_rel_pra ()
| Basic pre-action userexit for relation widgets.
int | xedb_rpl_pra ()
| Replace a position in the structure.
int | xewm_ewr_ews_pra ()
| Only work requests with a release index are selected for adding to a work order.
int | xewm_ews_pra ()
| Checks if mandatory field ELEM_ID is empty.
int | xfile_chk_del_rel ()
| Checks if the file - vault relation can be deleted.
int | xgroup_pre_action ()
| Pre-action userexit for class form or list (e.g.EDB-GRP-CFR, EDB-GRP-SLI).
int | xgrpst_pre_action ()
| Pre-action userexit for classification group structure.
int | xhisto_pre_action ()
| Pre-action userexit for object history relation widgets.
int | xknl_itm_set_ufk (const char *param1, const char *param2)
int | xknl_rel_pra (const char *param1, const char *param2)
int | xknl_set_qry_buf (const char *param1, const char *param2)
int | xmgt_str_pra ()
| Pre-action userexit for the 'As built item structure' widget.
int | xntm_del_pra ()
| Pre-action userexit to delete related notes when a record is deleted.
int | xntm_pra ()
| Pre-action userexit for notes administration widgets.
int | xord_art_pre_act ()
| Pre-action userexit for order specific item assignment widget (EDB-ORD-ART-RLI).
int | xord_pre_action ()
| Pre-action userexit for order module widgets.
int | xord_str_pre_act ()
| Pre-action userexit for lists with order specific item structure (BOM).
int | xpac_pra ()
| Pre-action userexit at the mask of the master and type element packet.
int | xpdw_frm_acc_pra (const char *param1, const char *param2)
int | xpdw_ksa_ass_act_pre (const char *param1, const char *param2)
int | xpdw_mas_pre (const char *param1, const char *param2)
int | xpdw_obj_pre (const char *param1, const char *param2)
int | xpdw_obj_typ_pre (const char *param1, const char *param2)
int | xpdw_pdw_pre (const char *param1, const char *param2)
int | xpdw_ppj_pre (const char *param1, const char *param2)
int | xpdw_pro_obj_pre (const char *param1, const char *param2)
int | xpdw_pro_str_pre (const char *param1, const char *param2)
int | xpdw_rel_pre (const char *param1, const char *param2)
int | xpdw_ver_pre (const char *param1, const char *param2)
int | xpdw_vfg_str_pre (const char *param1, const char *param2)
int | xproje_pre_action ()
| Pre-action userexit for widgets with project data.
int | xprost_pre_action ()
| Pre-action userexit for widget with project structures.
int | xpvm_chk_map (const char *param1, const char *param2)
int | xrel_mul_xba ()
| Check on insert-mode if a valid entry was made.
int | xrel_pre_act ()
| The C_ID, the ori-, and the join-table entries of deleted elements are captured by temporary deleting.
int | xrel_ref_xba ()
| Set EDB-version-view on query mode.
int | xrel_ref_xea ()
| Checks access to the parent element on INSERT-, UPDATE and COPY-operations.
int | xsml_chk_dup ()
| Pre-action userexit to check double records in classification lists.
int | xsml_post_action ()
| Post-action userexit creates a parallel record in 'TYR'relation.
int | xsml_pre_action ()
| Pre-action userexit for master forms which are classified in classes of type TYP.
int | xsmlc_pra ()
| Pre-action userexit for the item form with class attributes for ATC classes (e.g.
int | xsmlc_pra_lis ()
| Pre-action userexit for the classification attribute folder (for ATC classes) in the item form.
int | xsmlc_pra_lis_agg ()
| Pre-action userexit for the classification aggregate list (only for classes of ATC type).
int | xsmldf_pre_action ()
| Pre-action userexit for class attributes definition mask.
int | xstare_pra ()
| Pre-action userexit for the vault definition mask.
int | xstate_chk_obj_sta_pra (const char *param1, const char *param2)
int | xstate_pre_action ()
| Pre-action trigger for masks with release procedure.
int | xstate_pre_mail_act (const char *param1, const char *param2)
int | xstate_set_vie_pra (const char *param1, const char *param2)
int | xstr_pre_action (const char *param1, const char *param2)
int | xtrf_pra ()
| Creates and sets the reference number of a transformation record.
int | xtxt_bom_txt_pos (const char *param1, const char *param2)
int | xtxt_chk_del_pra (const char *param1, const char *param2)
int | xtxt_ctg_tmp_pra (const char *param1, const char *param2)
int | xtxt_ins_pra (const char *param1, const char *param2)
int | xtxt_ins_sel_pre (const char *param1, const char *param2)
int | xtxt_pli_pre_act (const char *param1, const char *param2)
int | xtxt_tpl_ctg_pra (const char *param1, const char *param2)
int | xtxt_tpl_ins_pra (const char *param1, const char *param2)
int | xtyp_del_mst ()
| Pre-action userexit to be called from a type mask.
int | xutil_acc_pra (const char *param1, const char *param2)
int | xutil_chk_ent_pra (const char *param1, const char *param2)
int | xutil_cpy_fld_by_prf_pra (const char *param1, const char *param2)
int | xvar_art_prefer_pra ()
| Pre-action userexit for 'Preferred Variants' list (EDB-ART-PRF-RLI) and 'Products to preferred variant' (EDB-ART-PRF-ALI).
int | xvar_pre_action ()
| Pre-action userexit for the variant list.
int | xvardf_pre_var_act ()
| Pre-action userexit for variant attributes list.
int | xvardf_pre_vfl_act ()
| Pre-action userexit for variant masks (e.g.
int | xver_chk_max ()
| Checks the current revision number.
int | xwfl_process_preaction ()
| Pre-action userexit to fill the EDB_ID attribute of a process.

### Function Documentation

DtvLong dal_cch_nop_ins_mod | ( | ) |

Calls cch_nop_ins only in 'I'nsert mode.

If the action is 'I', `cch_nop_ins` is called. Otherwise, nothing is done and 0 is returned.

The DataView standard userexit `cch_nop_ins` also checks for 'C'opy mode, which is not always appropriate.

Parameters:

  cpPar1 | Standard action userexit parameter

Returns:

  0 | OK
  Else | Error

int nsv_pra | ( | ) |

Old pre-action userexit to generate a number via 'number-server'.

Deprecated:
  Please use nsv_usx_pra instead

Parameters:

  cp_par | Standard parameter (working mode and current row)

Returns:

  0 | OK
  1 | Error

int nsv_usx_gen_eid | ( | ) |

Fills field EDB_ID with new generated unique number.

If the number cycle to use is not provided as a parameter the number cycle "#EDB-EDBID" is used.

Note:
  For type widgets the join record is always used (e.g. for documents always T_DOC_DAT.EDB_ID).

This userexit deals with the following actions:

'I'nsert | Fills EDB_ID field with new generated id.
'U'pdate | Fills EDB_ID field with new generated id when field is empty.

Parameters:

  cpParameter | Standard parameter defining working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Syntax is: "[numcyc][/JOIN]" With possible arguments:
  numcyc | The number cycle to use.
  JOIN | Generate the EDB_ID for join record (in relation records).

Returns:

  0 | OK
  Else | Error

int nsv_usx_pra | ( | ) |

Edit- or pre-action userexit to generate a number via 'number-server'.

Parameters:

  cp_par | Standard parameter (working mode and current row)

Returns:

  0 | OK
  1 | Error

int sig_pra | ( | ) |

Checks if a record is signed and denies delete actions.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int sig_tab_pra | ( | ) |

Updates the entity id field, which depends on the entity name.

Parameters:

  cpPar | standard paramaters
  cpIgn | not used

Returns:

  0 | on
  1 | off

Note:
  On the first usage of a private key, the key will be verified by the related certificate and the user have to set a new password for the private key.

int tol_pre_act | ( | ) |

Pre-action userexit to calculate fields of the current mask.

Parameters:

  cp_par | Standard parameter defining working mode and current row

Returns:

  0 | OK
  Else | Error

int tpr_doc_art_poa | ( | ) |

Post action userexit for document widgets to assign an item.

The item assignment can be executed in virtual or non-virtual mode.

This userexit deals with the following actions:

'I'nsert | Inserts document item assignment.
'U'pdate | Updates document item assignment.

The userexit can be modified via following default parameters:

TPR-ART-INP | Name of widget to use for item query instead of widget TPR-ART-INP.
TPR-ART-OPN-USX | Userexit to open item input form.
TPR-ART-OPN-PAR | Parameter for userexit to open item input form
TPR-ART-SEL-PAR | Parameter for userexit "iwf_lis_ent" which opens the item select widget.
TPR-ART-DOC-RLI | Parameter for userexit "iwf_lis_ref" which opens the item document widget.

In widget EDB-ART-DOC-RLI pre mask userexit "tpr_glb_docst_prm" must exist.

If the document widget has been opened in virtual mode, the keys for /INS or /UPD arguments changes as following:
If 1st digit is 2 then it is set to 1.
The 2nd, 3rd, 4th, 5th digit is set to 0.

Note:
  This userexit should not be used anymore.

Parameters:

  cp_par1 | Standard parameter defining working mode and current row.
  cp_par2 | Parameter to control the behavior of this function. Syntax is: "/INS=<key> /UPD=<key> /LGV=<proc>" With possible arguments:
  arg |  | Main argument.
  INS | key | Key consists of six digit with
  |  | 1st digit: Insert/update item: 0 - no, 1 - yes, 2 - ask
  |  | 2nd digit: Map item query widget: 0 - no, 1 - yes
  |  | 3rd digit: Map item document relation widget: 0 - no, 1 - yes
  |  | 4th digit: Use item list to insert/update item: 0 - no, 1 - if more than 1 item, 2 - always
  |  | 5th digit: Is more than one item allowed? 0 - no, 1 - yes
  |  | 6th digit: If relation already exists: 0 - do nothing, 1 - update record, 2 - insert record in parallel
  UPD | key | Key consists of six digit with
  |  | 1st digit: Insert/update item: 0 - no, 1 - yes, 2 - ask
  |  | 2nd digit: Map item query widget: 0 - no, 1 - yes
  |  | 3rd digit: Map item document relation widget: 0 - no, 1 - yes
  |  | 4th digit: Use item list to insert/update item: 0 - no, 1 - if more than 1 item, 2 - always
  |  | 5th digit: Is more than one item allowed? 0 - no, 1 - yes
  |  | 6th digit: If relation already exists: 0 - do nothing, 1 - update record, 2 - insert record in parallel.
  LGV | proc | Name of LGV procedure to call to determine item which should be assigned to the document.
  |  | This procedure must write the T_MASTER_DAT.C_ID of the item(s) into the widget buffer of the document widget with key "TPR_LGV_CID". More than one C_ID must be concatenated with " </td><td> ".

Returns:

  0 | OK
  Else | Error

Deprecated:

int xartic_pre_action | ( | ) |

Pre-action userexit for item widgets.

Calls `xedb_pra` for all modes and performs the following additional actions:

'I'nsert | In CopyMode, initializes `LEV_IND` by calling `xstate_put_frs_sta`. Checks unique key for item by calling `xartic_pid_distinct`.
'T'emporary delete | Checks for reservation by calling `xedb_chk_res` and checks for variant assignments.
'D'elete | Update `BOM_FLAG` and `AGG_FLAG` and delete entry in `EDB-ARTICLE` by calling `xtyp_del_elm_from_typ`.
'Q'uery | Sets the view filter by calling `xstate_set_vie_pra`.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Currently none.

Returns:

  0 | OK
  -1 | EPQ error (while checking item keys).
  1 | Item already exists.
  2 | Item is reserved.
  3 | Item is assigned to variant element.
  4 | Item is assigned to variant definition.
  5 | `BVB-ARTICLE` record could not be deleted.

See also:
  xedb_pra

int xartst_pre_action | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for relation widgets with item structures.

- Sets progress indicator if corresponding field is empty.
- Calls transformation pre-action userexit `xtrf_pra`.

Depending on the mode, one of the following actions is then performed:

- For 'Q'uery: Set query values for current release management view by calling userexit `xstate_set_vie_pra`.
- For 'I'nsert:
  - Check for recursion.
  - Check for unique position number.
  - Check and get item number for child, create a temporary item number if necessary.
  - Check unique position number considering the assigned contexts.
- For 'U'pdate:
  - Check for unique position number.
  - Check unique position number considering the assigned contexts.
- For 'T'emporary delete:
  - Check write access on parent record.
  - Update STR/AGG-Flags.

Remarks:
  If an empty string (or a NULL pointer) is passed as a parameter, the parameter string is explicitly set to one of the following values to check for a distinct position number:
  - If change management is activated and parallel versioning is deactivated, it is set to `"POS_NO /VERS=T_MASTER_STR.EDB_IN_CONTEXTS"`.
  - Otherwise, it is set to `"POS_NO /VERS=T_MASTER_DAT.PART_VERSION, T_MASTER_STR.IN_CONTEXT_FAT(+)"`.

This userexit can also be used for inserting in aggregate lists (skipping the unique position number check in 'I'nsert and 'U'pdate mode).

Parameters:

  ctx | The action userexit context.
  param | Parameter to control the behaviour of this userexit. Syntax like: "field [/VERS=field1[, field2[, ...]] /AGG /NO_CHECK"
  AGG |  | Use this flag if the userexit is used in aggregate lists. This skips checking the unique position number and adjusting the BOM and AGG flags in 'I'nsert and 'U'pdate mode.

The following parameters are evaluated by `xedb_chk_chg_pnr` only:

field | table.column or column | Names the field to be checked.
VERS | field list | Option to set the name of the version field and other fields used for identifying different versions of the same element. It is also possible to append a '(+)' to a particular field name. This defines empty fields as matching to any other field contents.
NO_CHECK |  | Do not execute the unique position number check.

Returns:

  0 | OK
  1 | Position number check failed.

int xase_hie_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for heterogeneous structure explosion list.

Sets query condition for OPERATION_ID.

Parameters:

  usxCtx | Preaction userexit context.
  param | Reserved.

Returns:

  0 | OK

int xatt_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre action userexit for classification lists Teh userexit enters the values from the database table (e.g.

T_GRP_ART) in the attributes columns of the classification list. This is necessary as the classification list is not a standard DataView mask, the attribute columns were dynamically created and added in the pre-mask userexit.

This userexit deals with the following actions:

'I'nsert or 'U'pdate | Creates new ATT_NO (number server) for new inserted line in classification/variant list. Checks for double elements in classification list (controlled by default EDB-DUB-SML-ELM)
'T'emporary delete | Sets the C_IDs of all temporarilly deleted records from classification list to negative numbers in the database table containing the attribute values. If parameter /SUB is active (container classes), the delete operation is not allowed.
'D'elete | Deletes the corresponding records from the database and deletes other existing attributes records connected to the deleted line in the classification list from the database table
'Q'uery | If the user searches in attribute fields, a conversion is done: All records which meet selection conditions of each attribute field are stored in table T_REC_DAT. The join condition is dinamically updated for the list with results for T_REC_DAT and the corresponding relation list.
'R'ollback | Resets the negative C_IDs of the attributes records in the database.

Parameters:

  context | Userexit context.
  cp_UserPar | Additional parameter for the pre-action userexit, syntax like: /TABLE=table_name Table name with attribute values (standard value is T_MASTER_ATT). If another table is used, then the option /VAR is mandatory. /VAR if the userexit is called for a variant and if the attributes are updated, only the userexits xatt_prm and xvar_pre_mas can be called. The option /VAR is mandatory if another table than T_MASTER_ATT is used. /SUB if key /SUB is set, the current class is a container class and the delete operation is not allowed.

Returns:

  0 | OK
  Else | Error

Remarks:
  If the pre-mask userexit has not been called yet (e.g. for virtual widgets), it will be called by this userexit.

int xchg_chk_opr_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check assignments to the change operation.

Basic pre-action userexit to create a PLM object under control of a Work Set (e.g. creating new item version). It checks that the PLM object is assigned to a change operation of a Work Set. Called by the system pre-action userexit.

mode 'I'nsert or 'C'opy: Check If entity/relation is controlled by Work Set Check Change operation fields Check Work Order fields Check Work Set fields

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xchg_chk_vie_nam | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Userexit to check whether the database view name exists.

Parameters:

  context | the userexit context
  param | Reserved

Returns:

  0 | OK
  else | Error

int xchg_dup_pos_ok | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check if duplicated position numbers are allowed.

Check for the Change Management if the position number should be unique. For the different configuration modes (currently 0,1,2,3) the following behavior is foreseen:

0 | Change Management is OFF - position numbers should be checked
1 | Change Management is set to MANUAL - no check for position no.
2,3 | Change Management is active and the check, if the position number of the old and the new object differ, should be done.

Do in 'I'nsert mode or 'U'pdate mode:
If the change operation is in mode MANUAL or the position number of the origin object corresponds with the position number of the new object, then return 1, otherwise 0.

Parameters:

  context | The context of this userexit
  param | Reserved

Returns:

  0 | Duplicated position number not allowed
  1 | Duplicated position number is allowed

Note:
  This userexit is called by xedb_chk_pnr

int xchg_ewo_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the Work Order mask.

This userexit should be used for the Work Order mask.

The userexit supports the following modes:

'I'nsert, 'C'opy | If the Change Management is active, the userexit creates the default Work Set and assigns the default Work Set to the Work Order.
'T'emp Delete | If the Change Management is active, the userexit checks if the delete operation was triggered from the Work Request object. In this case initially created Work Sets can be deleted otherwise the deletion of initially Work Sets (e.g. default Work Set) and the deletion of the Work Order is prohibited.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xchg_ewr_ewo_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for refine or aggregate masks that contain Work Orders.

The check of the initial flag is omitted if the widget buffer value 'TRIGGERED_FROM_EWR' is set to an arbitrary value. This behavior is mainly used if a Work Request shall be removed, refer to ChgWorkRequest::deleteInitialWorkOrder().

This userexit covers the following actions:

'T'emp-Delete-Action | If the EWO record has the initial flag, the delete action is prohibited. Deletion of an initial record is only allowed if the related Work Request triggered it.

Parameters:

  context | The context of this userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error.

int xchg_ewr_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the Work Request mask.

The userexit supports the following modes:

'I'nsert | If the Change Management is active, the userexit creates the preliminary Work Order for the newly created work request.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xchg_opr_act_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check if a change operation is currently active.

In 'I'nsert mode or 'U'pdate mode check: If the PLM object is under control of the Change Management and a change operation is currently active, then return 1, otherwise 0

Parameters:

  context | The context of the userexit
  param | Reserved

Remarks:
  This userexit is called by xedb_chk_pnr

Returns:

  1 | Change operation currently active
  0 | Otherwise

int xchg_set_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the Work Set mask.

This pre-action userexit should be used for Work Request masks.

The userexit supports the following modes:

'I'nsert, 'U'pdate | If the EBD_INTERCHANGE field is dirty, the (ChgWorkSet::interchangeabilityChanged ) method of the Work Set is called.
'T'emp delete, 'D'elete | If the Change Management is active the userexit calls the (ChgWorkSet::isDeleteable ) method of the Work Set to determine if the Work Set can be deleted.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcls_agg_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for aggregate relation widgets in lassification.

E.g. class attributes folder in item form.

'I'nsert or 'C'opy | Generates a new ATT_NO. This is needed by inserting in classifcation list.
'I'nsert or 'U'pdate | Checks if the class record which is stored, is compatible with entity1. E.g. Only item classes (EDB-ARTICLE) are stored in class attributes folder of item form.

Parameters:

  context | Pre-action userexit context
  cpArguments | Reserved parameter, not used yet.

Returns:

  0 | Success |  | Else | Error

int xcls_att_set_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the attribute set folder in attribute form.

It checks the primary set usage in the other classes of the class structure. If the attribute set is a primary set in at least one class, then the defined set cannot be deleted.

Parameters:

  context | pre-action userexit context
  param | Reserved, not used yet

Returns:

  0 | OK |  | Else | Error

int xcls_chk_abs_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check the container flag of the parent classes.

'I'nsert or 'U'pdate | Puts an error message on the screen and returns 1 if the class entry is of container class type.

Parameters:

  Context | Pre-action userexit context
  cpArguments | Reserved, not used yet.

Returns:

  0 | OK |  | 1 | the class is of container type

Remarks:
  Is called by xcls_set_abs_pra, but can also be used on its own.

int xcls_chk_cls_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check if the superclass is a container class (class is abstract) and if the parent class contains entries in the classification list.

Is used when a subclass is assigned to a superclass. If the superclass is a container class and there are no entries in the classification list then the new entry is stored. If the superclass is not a container class and there are no entries in the classification list then the entry is stored and the superclass container flag is set to "yes". If the superclass is a container class and if there are entries in the classification list then a message is displayed saying the superclass contains entries in the classification list, the entry is not stored in this case.

Parameters:

  context | Pre-action userexit context
  cpArguments | Reserved parameter, not used yet.

Returns:

  0 | Success |  | Else | Error

int xcls_chk_ent_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pe-action userexit for sub-classes folder of class form.

Checks if the subclass record to be stored is compatible with the parent class type (e.g. you can assign only EDB-ARTICLE classes for an EDB-ARTICLE parent class). Checks if entity1 of the current widget and entity1 of the current class entry (T_GROUPDAT.ENTNAM) are the same.

Parameters:

  context | pre-action usx context
  param | not used yet

Returns:

  0 | Success |  | Else | Error

int xcls_chk_set_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre action userexit for class attributes mask to check the attribute set assignment.

If a primary set is given, the attribute assignment to set(insert or update mode) is checked.

Parameters:

  context | Pre-action userexit context
  cpArguments | Reserved userexit parameter, not used yet.

Returns:

  0 | Success |  | Else | Error

int xcls_set_abs_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check the container flag of the class in update mode.

If the class has sub-classes, the class can only be a container class. If there are entries in the classification list, the class is not a container. If there are no entries in the classification list and no entries in the sub-classes list, the class can be either a container or a normal class. If the class is not a container and there are no entries in the classification list, then the update operation is allowed.

Parameters:

  context | Pre-action userexit context
  cpArguments | Reserved userexit parameter, not used yet.

Returns:

  0 | Success |  | Else | Error

int xcls_set_att_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for attribute folder in set form to check if attribute set is used as primary set in classes.

If the set is given as primary set for the attribute in at least one class, then the attribute cannot be deleted.

Parameters:

  param | Reserved, not used yet

Returns:

  0 | OK |  | Else | Error

int xcls_set_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for class attribute set mask to check class primary set when a class attribute is deleted.

If the set is given as primary set for at least one class attribute, then the class set cannot be deleted.

Parameters:

  context | Pre-action userexit context
  cpArguments | Reserved userexit parameter, not yet used.

Returns:

  0 | Success |  | Else | Error

int xcnf_cat_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for specification widgets (submask of the specification category combined widget).

This userexit covers the following action:

'I'nsert,'U'pdate | Checks if the same specification already exists in the current specification category.

Copies some common fields from the specification category widget (parent) (T_CLA_DAT) into the corresponding fields of the current specification widget (T_AVL_DAT). T_CLA_DAT.INTERN into T_AVL_DAT.INTERN T_CLA_DAT.STEP_INT_ID_REF into T_AVL_DAT.STEP_INT_ID_REF

Parameters:

  cpArguments | Standard parameter defining working mode and current row.

Returns:

  0 | OK
  1 | Specification already exists in the specification category

int xcnf_cpa_spc_cat_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for submask specification category of the Cooperation Partner combined widget.

This userexit covers the following actions:

'Q'uery | Filters all specification categories.
'I'nsert, 'U'pdate | Checks if the same specification category already exists within the current organization.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard parameter (reserved).

Returns:

  0 | OK
  1 | Specification category already exists in the organization.

int xcnf_cpa_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for specification widgets (submask of the cooperation partner combined widget).

'Q'uery | Filters all specification categories
'I'nsert', U'pdate | Checks if the same specification already exists in the current specification category.

Checks if mandatory field C_FLD_NAME of table T_CLA_DAT is filled. Checks if the value of the field STEP_INT_ID_REF from table T_AVL_DAT and T_CLA_DAT is the same, otherwise shows a message. Copies some fields from the specification category widget (parent) (T_CLA_DAT) into the corresponding fields of the current specification widget (T_AVL_DAT). T_CLA_DAT.INTERN into T_AVL_DAT.INTERN T_CLA_DAT.STEP_INT_ID_REF into T_AVL_DAT.STEP_INT_ID_REF

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard parameter (reserved).

Returns:

  0 | OK
  1 | Specification already exists in the category
  2 | Category is from another organization
  3 | Mandatory field is not filled

int xcnf_cps_elm_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for order specific product structure element widgets.

Checks if it is allowed to update the order element. Only order specific elements can be updated.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcnf_cps_elm_str_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for order specific product structure element positions.

'U'pdate | Sets the record and the field T_CPS_ELM_DAT.EDB_STR_REF dirty.
Temp-Delete | Checks if it is allowed to delete the structure element. Only order specific structure elements can be deleted.
'I'insert | Checks the position number, must be greater 0.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcnf_cps_hie_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product structure element hierarchy widgets.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcnf_cps_sol_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product structure element.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcnf_filt_cls_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Post-Mask userexit for product variant specification widget.

Parameters:

  param | Post-Mask userexit parameter, not used yet

Returns:

  0 | OK
  1 | Error

int xcnf_mdl_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for model specification select widgets.

Parameters:

  param |

Returns:
  0 = o.k. 1 = error

private action

int xcnf_ord_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the configuration order widget.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Parameter to control the behavior of this function. Syntax is: "param /NOASK" With possible arguments:
  | param | Main argument.
  NOASK | - | If the parameter NOASK is passed to the userexit, the user will not be asked before the record will be deleted.

Returns:

  0 | OK
  1 | error

int xcnf_ord_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for Order specification aggregate lists.

Sets the corresponding child class record for the order. The userexit covers the following actions:

'U'pdate , Temp Delete | Checks the state and the source of the record if it is allowed to update or to delete the record. If the specification comes from the model (T_GRP_ORD.EDB_SOURCE='MODEL') it is not allowed to update or to delete the specification.
'I'nsert, C'opy | The userexit creates the relation record between the order record and the product variant record specified on the order.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard parameter, (reserved).

Returns:

  0 | OK
  Else | Error

int xcnf_ord_spc_sel_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for specification select widgets to filter those specifications which are assigned to the product variant specified on the order.

Parameters:

  param | Standard userexit parameter, (reserved).

Returns:

  0 | OK
  Else | Error

int xcnf_prd_cla_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product variants.

This userexit checks if the abbreviation for the product variant (T_GROUP_STR.EDB_ABBREVIATION) is already used within this product family.

Parameters:

  context | Standard parameter defining working mode and current row.

Returns:

  0 | OK
  1 | Error

int xcnf_prd_var_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Checks whether a specification is defined for a cooperation partner or not.

Checks STEP_IND_ID_REF of parent (T_AVL_DAT) and child (T_GROUP_DAT) mask. If they are not equal, print message EDB-CNF-COOP-NO-SPEC and return 1

Parameters:

  context | Standard parameter with working mode and current row.
  param | Parameter to control the behavior of this function. Not currently used.

Returns:

  0 | OK
  Else | Error

int xcnf_spc_cat_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the specification category widgets.

This userexit covers the following actions:

'Q'uery | Filter for specification categories, sets T_CLA_DAT.EDB_CLA_TYPE="SPEC_CAT".
'I'nsert,'U'pdate | Checks if the same specification category already exists within the current organization.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Specification category exists already in the organization

int xcnf_spc_del_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to check deletion of a specification constraint record.

Temp-Delete | Checks, if the C_ID is in T_CPS_GRP_CNS.

Parameters:

  context | Standard action userexit parameter
  param | (reserved)

Returns:

  0 | OK
  1 | Constraint is assigned to the product variant

int xcnf_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for specification widget.

'Q'uery | Writes "SPEC_CAT" in the specification category type (T_CLA_DAT.EDB_CLA_TYPE).
'U'pdate, 'I'nsert | Checks if the same specification already exists within the current specification category. Checks if mandatory field specification category (T_CLA_DAT.C_FLD_NAME) is filled in the current widget. When it is filled, write the values of some fields from the specification category (T_CLA_DAT) into the corresponding specification table fields (T_AVL_DAT). T_CLA_DAT.INTERN into T_AVL_DAT.INTERN T_CLA_DAT.STEP_INT_ID_REF into T_AVL_DAT.STEP_INT_ID_REF T_CLA_DAT.EDB_ID into T_AVL_DAT.CLA_REF

Parameters:

  context | Standard action userexit parameter
  param | (reserved)

Returns:

  0 | OK
  1 | Specification already exists in the category
  2 | Mandatory field is not filled

int xcnf_spc_var_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to filter product classes from other classes.

The userexit can be used to separate product class (product families and product variants) from normal classes used in classification lists.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcnf_var_mdl_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product variant model submask.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcnf_var_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product variant specification widget.

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Standard userexit parameter (reserved).

Returns:

  0 | OK
  1 | Error

int xcol_rsl_rul_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for work order masks.

The action userexit creates the default work set to the work order. Defined fields of the assigned work request are copied into the work set.

Parameters:

  context | the current context of the trigger
  param | addition paramaters (none at this time)

Returns:
  the error code (0 = ok)

int xcpa_ali_pra | ( | ) |

Pre-action userexit for the Alias IDs constraint lists (e.g. EDB-CPA-ART-CNS-SLI).

This userexit must be used with the edit-action userexit xcpa_ali_eda and the post-action userexit xcpa_ali_eda.

'I'nsert | Sets the value of the field C_DEFAULT of the current object (for example item or document) when no record exist where the default is already set.
'T'emporary Delete | Deletes the default Alias ID for the different CPA objects (for example T_CPA_ART_DAT or T_CPA_DOC_DAT). It is not allowed to delete the default Alias ID if more than one Alias ID is assigned. If only one Alias ID is assigned (if no other Alias IDs from this object are in the trash) simply delete it. If more than one Alias ID is assigned to the object, the default Alias ID must be set to another Alias ID first.

Parameters:

  param | Additional argument string (reserved).

Returns:

  0 | OK
  1 | Error from EPQ
  2 | Delete default Alias ID at last
  3 | Field not found
  4 | No record in edit mode
  5 | No widget is active

See also:
  xcpa_ali_eda , xcpa_ali_poa

int xcpa_ewo_ali_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit on the widget component displaying the Work Order from/until with the Alias ID of the Work Orders.

Deactivates the standard behavior for selecting the Alias ID if the organization code or another view field is entered in query mode.

Parameters:

  context | Standard parameter defining the working mode and the current row.
  param | Additional argument string (reserved).

Returns:

  0 | OK
  1 | Error from epq.
  2 | Field not found.
  3 | Cannot read field value.
  4 | No widget is active.

int xcpa_obj_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for objects that support Alias ID (for example item or document).

'I'nsert | When an entry exists in a field of the Alias ID table, it will be checked if the mandatory fields (STEP_INT_ID_REF, ALIAS_ID) of the Alias ID table are filled, too. Sets the value of the field C_DEFAULT of the current object (for example item or document) when no record exists where the default is already set.

Example:
  xcpa_obj_pra(/TABLE=V_CPA_ART_DAT /ENTITY=EDB-CPA-ARTICLE)

Parameters:

  context | Standard parameter defining working mode and current row.
  param | Additional argument string. Syntax is: "ARG /TABLE=<view table> /ENTITY=<entity name>" With possible arguments :
  | ARG | Main argument.
  /TABLE | <view table>=""> | Name of the view table (e.g. V_CPA_ART_DAT).
  /ENTITY | <entity name>=""> | Name of the Alias ID entity (e.g. EDB-CPA-ARTICLE).

Returns:

  0 | OK
  1 | Error from EPQ.
  2 | Field not found.
  3 | Error when getting the entity id.
  4 | Error when getting the table name via entity.
  5 | Mandatory CPA fields not filled.
  6 | No parameter set.
  7 | No record in edit mode.
  8 | Key ENTITY not set.
  9 | Cannot read field value.
  10 | Key TABLE not set.
  11 | No widget is active.

See also:
  xcpa_obj_eda, xcpa_obj_poa

int xcpa_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for Cooperation Partner widgets.

'I'nsert | Checks if the current value of the field T_ORG_DAT.STEP_INT_ID already exists in the database.
'U'pdate | Checks if a reference exist with the value from the database before the update of the field STEP_INT_ID will be done. When a reference exists write the value from the database back into the field.

Parameters:

  param | Additional argument string (reserved).

Returns:

  0 | OK
  1 | Error from epq.
  2 | No constraint found.
  3 | No record found.
  4 | Record with value already exist.
  5 | Field not found.
  6 | No record in edit mode.
  7 | Cannot read field value.
  8 | No widget is active.

int xcps_alt_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for variant mask (modular BOM solutions).

This userexit deals with the following actions:

'I'nsert | Assigns the "EDB-NULL" item if the current position is a text position. Checks if the product and the implementing item constraints are valid and unique. Creates and assigns a specification rule. Sets the field access by using the userexit (xutil_acc_fld ).
'U'pdate | Assigns the "EDB-NULL" item if the current position is a text position. Checks if the product and the implementing item constraints are valid and unique. Creates and assigns a specification rule. Sets the field access by using the userexit (xutil_acc_fld ).
'C'opy | Assigns the "EDB-NULL" item if the current position is a text position. Checks if the product and the implementing item constraints are valid and unique. Creates and assigns a specification rule. Sets the field access by using the userexit (xutil_acc_fld ).
'Q'uery | Sets the current filter condition in the appropriate query field buffers.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_cmp_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product components.

This userexit deals with the following actions:

'I'nsert | Assigns the created product structure element to the new created product component. Sets modular product component flag.
'Q'uery | Sets view filter.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_cnf_bom_sel_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for modular BOM selector list.

This userexit deals with the following actions:

'Q'uery | Writes unique user key as query criteria in USERIDD field.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | Ok
  Else | Error

int xcps_cre_spc_rul_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Creates a specification rule for the current variant (modular BOM solutions).

This userexit deals with the following actions:

'I'nsert | Creates a specification rule and assigns the specification rule to the variant.
'U'pdate | Creates a specification rule and assigns the specification rule to the variant if needed. When the value of the field EDB_RULE_SHORT was deleted then the userexit clears the specification rule reference fields.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

See also:
  xcps_cls_spc_rul_eda

int xcps_elm_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product structure elements.

This userexit deals with the following actions:

'I'nsert | Checks that the POS_NO is not empty. Checks for recursion.
'U'pdate | Checks that the POS_NO is not empty. Checks for recursion.
'Q'uery | Sets reference to the parent product structure element (EDB_STR_REF). Sets filter query.

Parameters:

  context | Action userexit context
  param | Parameter to control the behavior of this function. Syntax like: "/TOP /NOCHECK" With possible arguments:
  TOP | Userexit is called from sublist of combined product component widget
  NOCHECK | Do not check for unique positions

Returns:

  0 | Ok
  EDB_CPS_INTERNAL | No widget
  EDB_CPS_NO_ACT_ROW | No current row
  EDB_CPS_NO_FIELD | Field EDB_IS_MODULARBOM is missing in widget
  EDB_CPS_ERR_PAR | Wrong syntax in parameter

int xcps_fam_cmp_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product family - product component relation masks.

This userexit deals with the following actions:

'I'nsert | Checks if the current product family is already assigned to an effective product component and displays a message in this case. Sets the current product component effective if no one else is effective and the parameter /SET_EFF is not set. Checks that the assigned product component is released before the relation can be set effective (if the parameter /CHK_RLS is set).
'T'emp delete | Sets the current product component ineffective if it was effective.

Parameters:

  context | Action userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/SET_EFF=[0|1] /CHK_RLS=[0|1]" With possible arguments:
  SET_EFF | 0 | Do not set the effectivity immediately
  | 1 | Product family/product component relation record is set immediately effective (when no other effective relation record exists)
  CHK_RLS | 0 | No check necessary.
  | 1 | Checks that the assigned product component is released before the relation can be set effective.

Returns:

  0 | OK
  Else | Error

int xcps_flt_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for filters.

This userexit deals with the following actions:

'Q'uery | Copies the value of the EDB_ID field of the product structure element of the parent mask into the query buffer of the EDB_ELM_REF field.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_grp_cmp_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the class - product component relation widgets.

Checks if the class - product component relation is valid.

This userexit deals with the following actions:

'I'nsert | Checks if the assigned classification object is of the type 'EDB-ARTICLE'. Checks if the assigned classification object is not a container class. Checks if the product component is already assigned to a classification object.
'C'opy | Checks if the assigned classification object is of the type 'EDB-ARTICLE'. Checks if the assigned classification object is not a container class. Checks if the product component is already assigned to a classification object.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_bom_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the BOM overview sublist.

This userexit deals with the following actions:

'Q'uery | Writes the user key as query criteria into the USERIDD field.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_bom_sel_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for modular BOM selector list.

This userexit deals with the following actions:

'Q'uery | In "COPY_TO" mode the userexit executes the modular BOM explosion.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_sel_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for product structure element selector form.

Dummy userexit.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK

int xcps_ntr_bom_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the BOM overview widget.

Modifies the widget's query buffer to pass key fields of the current parent to the report view.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_prl_chk_elm_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for parallel structure - product component widgets.

This userexit deals with the following actions:

'I'nsert | Checks that the top level module (modular product component) of the selected module element refers to the same parallel structure.
'U'pdate | Checks that the top level module (modular product component) of the selected module element refers to the same parallel structure.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  1 | Product structure element is not from assigned modular BOM
  2 | No product structure element selected.

int xcps_prl_chk_vie_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for parallel structure view lookup widgets.

This userexit deals with the following actions:

'I'nsert | Checks that the inserted or updated record is a new text category (T_CPS_VIEW_LUT.EDB_KEY (new) != T_TXT_CTG_DAT.EDB_CTG_ID).
'U'pdate | Checks that the inserted or updated record is a new text category (T_CPS_VIEW_LUT.EDB_KEY (new) != T_TXT_CTG_DAT.EDB_CTG_ID).

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  1 | Same name as text category.

int xcps_prl_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for parallel structure widgets.

This userexit deals with the following actions:

'I'nsert | Checks that the position number for the constraint relation is unique.
'U'pdate | Checks that the position number for the constraint relation is unique.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  1 | Element with same position number exists.

int xcps_set_apl_str | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit in classification list.

This userexit deals with the following actions:

'I'nsert | If an item is assigned to a class which is assigned to a product component and for this relation the EDB_APPLY_STRUCTURE flag is set to 'true', then the EDB_APPLY_CPS flag for the item is set to 'true'.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_sol_mul_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for multi-edit solution list.

This userexit deals with the following actions:

'U'pdate | Checks the uniqueness of the solution record and his data. Creates the specification rule. Sets the field access which is defined by using the information of the field userexit 'xutil_acc_fld'.
'Q'uery | Sets the unique user key (user name and widget ID). Sets the filter query by using 'xedb_sea_vie'

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_sol_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for solutions list of neutral product structure elements.

This userexit deals with the following actions:

'I'nsert | Checks if the product and the implementing item constraints are valid. The method displays a message which constaint has to be filled by the user.
'U'pdate | Checks if the product was changed and displays an error message on product changes (products or items cannot be changed). Sets the field access (xutil_set_acc)
'Q'uery | Sets the current filter conditions.

Parameters:

  context | Action userexit context
  param | Parameter to control the behavior of this function. Syntax is: "[/STRICT]" With possible arguments:
  STRICT | Suppresses the insert of a new solution record when any error occurs while creating the BOM position. Without this parameter, the solution is created even if the verification of the BOM fails.

Returns:

  0 | OK
  Else | Error

int xcps_sol_spc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for solution space sublist of product structure element.

This userexit deals with the following actions:

'Q'uery | Sets the query buffer of the C_ID field to "0".

int xcps_vrf_bom_pos_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-transition userexit for BOM position.

If the item structure is verified, the BOM position will be verified against the effective conceptual product structures for the parent item.

The userexit supports the following view scopes:

Production view (PRD) | In production view the product component, product structure element, classification and the relation between them have to be released or set effective to be considered in the verification process. If the flag /SOFT is set, BOM positions that are not released yet are also considered. The objects which will be released are also considered and the effectivity of the assigned work sets is used.
Development view (DEV) | Same as the production view, but product strucure elements of the conceptual product structure that are not released yet are also considered during the verification.

Parameters:

  context | Action userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/PRD|/DEV [/SOFT] [/STRICT][/SILENT][/SHORTMSG][/ALT={ALL|DETECT}][/ANALYSE]" With possible arguments:
  PRD | Verify in production view.
  DEV | Verify in development view (default).
  SOFT | Not released BOM positions are allowed.
  STRICT | Userexit returns an error if verification fails.
  SILENT | Do not print any messages.
  SHORTMSG | Print only "important" messages.
  ALT | ALL: Check all alternatives, DETECT: One successful verification of a BOM position is enough.
  ANALYSE | Uses step-by-step algorithm for verification and displays all verification messages.

Returns:

  0 | OK
  Else | Error

int xctx_ctx_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the list of contexts.

This userexit deals with the following actions:

'T'emp. delete | Checks if a context which is to be deleted is still used by any object.
'I'nsert, 'U'pdate | Clears context cache.

Parameters:

  ctx | Action userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

int xdir_pre_act | ( | ) |

Pre-action userexit for directory list.

This userexit deals with the following actions:

'Q'uery | Writes "+" to query buffer for field "COMPARE".
'T'emporary delete | Action not allowed, displays message.
'D'elete | Action not allowed, displays message.

Parameters:

  cp_par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xdocfi_pra | ( | ) |

Pre-action userexit for document-file relation masks.

The userexit supports the following modes:

'I'nsert | Executed tasks: Copies the file physically into the vault and insert the file characteristics. Checks which file mode is set in the widget buffer "/FILE_MODE={COPY|DUPLICATE}". COPY: The file will be copied from the local location into the vault. DUPLICATE: The file will be duplicated in the same vault or into the vault specified by the field STORAGE_AREA
'T'emporary delete | Executed tasks: Shows informtion that distributed files would be deleted. Checks the reservation state of document. The userexit reports an error if the document is reserved by another user. Checks if the user has the necessay access rights to copy the document - file relation record. The userexit reports an error if the if the user has the necessay access rights.
'D'elete | Executed tasks: Deletes the file from the vault.

Parameters:

  cp_Parameter | standard action parameter
  cp_Arguments | not used

Returns:

  0 | OK
  1 | Server error
  2 | Record is reserved
  3 | Status error
  4 | Aborted by the user, no file deleted (interactive mode)

int xdocfi_sto_pra | ( | ) |

Pre-action userexit for file-vault relation masks.

The userexit supports the following modes:

'T'emporary delete | Executed tasks: Checks if the file - vault relation can be deleted (see. xfile_chk_del_rel() for a detailed description of the executed checks)
'D'elete | Executed tasks: Deletes the relation and the file from the vault.

Parameters:

  cp_Arguments | not used

Returns:

  0 | OK
  Else | Error

int xdocfi_str_pra | ( | ) |

Pre-action userexit for file-vault relation masks.

The userexit supports the following modes:

'I'nsert | Executed tasks: Checks for recursion.

Parameters:

  cp_Arguments | not used

Returns:

  0 | OK
  Else | Error

int xdocst_pre_action | ( | ) |

Pre-action userexit for widgets with document structures.

`xstate_pre_action` is called to set the progress indicator if the corresponding field is empty. Afterwards one of the following actions is performed depending on the execution mode:

- 'Q'uery mode: the query conditions for the current view are set.
- 'I'nsert mode: checks for recursive structure and for unique position numbers.
- 'U'pdate mode: a check for unique position numbers is executed.
- 'T'emporary delete mode: the userexit checks if the element is reserved, if write access on the parent record exists and finally updates the `BOM` and `AGG` flags.

Parameters:

  par | Standard parameter defining working mode and current row.
  cp_Arguments | Parameter to control the behaviour of this userexit. Syntax like: "field [/VERS=vers_field[, field2..]]" with possible arguments:
  field | field name | Primary field to use for the unique position number check.
  VERS | list of field names | Defines the version fields that are used to check for unique position numbers. It is also possible to append the postfix '(+)' for a particular field. This postfix defines empty fields as matching to any other field contents. If no parameter is passed, the parameter string is implicitly set to `"POS_NO /VERS=T_DOC_DAT.DOC_VERSION,T_DOC_STR.STEP_REL_TYPE"`.

Returns:

  0 | OK
  1 | Check not required

int xdocum_pre_action | ( | ) |

Pre-action userexit for document master masks.

The userexit covers the following actions:

'T'emporary delete | Checks for related elements. Then checks if document is used by other elements.
'D'elete | Sets new values for `AGG_FLAG` and `BOM_FLAG`. Deletes all sub-documents.

Parameters:

  par | Standard parameter with working mode and current row

Returns:

  0 | OK
  else | Error

int xedb_hie_pre_act | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for masks with structure explosion or a 'where-used' structure to prevent deletion and to set selection values.

This userexit deals with the following actions:

'Q'uery | Copy combination of user ID and widget ID to the selected buffer of the field "USERIDD".
'T'emp. delete | Prevent delete operation.

Parameters:

  usxCtx | Action userexit context.
  cp_par | Reserved.

Returns:

  0 | OK
  Else | Error.

int xedb_pra | ( | ) |

Basic pre-action userexit.

This userexit deals with the following actions:

'I'nsert | If element has been copied (widget buffer STA_COP is set, then LEV_IND is initialized and reservation fields are cleared. If LEV_IND field is empty, initialize progress indicator.
'U'pdate | If LEV_IND field is empty, initialize progress indicator.
'T'emporary delete | Check if element is reserved.
'D'elete | Check if element exists in the folder and delete it.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | Success
  1 | Element is reserved

int xedb_pra_del_pac | ( | ) |

Delete current record if it is used in one or more folders.

This userexit deals with the following actions:

'D'elete | Delete current record if it is used in one or more folders.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.
  cp_Arguments | Reserved.

Returns:

  0 | OK
  1 | Database error.
  2 | Out of memory.

int xedb_pra_str | ( | ) |

Basic pre-action userexit for relation widgets.

The BOM_FLAG of the parent record of the homogenous structure (entity entity STR) for the deleted record is corrected .

This userexit deals with the following action:

'D'elete | The BOM_FLAG of parent element is corrected.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Reserved.

Returns:

  0 | OK
  1 | Error

See also:
  xedb_rel_pra xedb_rel_poa

int xedb_pra_vie | ( | ) |

Basic pre-action userexit.

This userexit deals with the following action:

'Q'uery | EDB view will be set as query value if fields CUR_FLAG, VAL_FROM and VAL_UNTIL exist in current widget.

Note:
  Userexit should be called in combination with post-action userexit 'xedb_poa_vie'

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

See also:
  xedb_poa_vie

int xedb_rel_pra | ( | ) |

Basic pre-action userexit for relation widgets.

This userexit deals with the following actions:

'I'nsert | Check for recursion if flag /NO_RECU is set. If a field name (e.g. "POS_NO") is given (see argument 'field' and option /VERS) it will be checked if the content of this field is unique within the structure..
'U'pdate | If a field name (for example "POS_NO") is given (see argument 'field' and option /VERS) it will be checked if the content of this field is unique within the structure.
'T'emporary delete | The BOM_FLAG of the parent record and the AGG_FLAG of the current record will be corrected if the widget represents a homogeneous structure (e.g. item-item relation) with relation view 'STR'.

Note:
  Userexit should be called in combination with post-action userexit 'xedb_rel_poa'. Userexit 'xedb_pra_str' should be defined as pre-action userexit for the widget with the master data. Otherwise the STR-/TOP-values might become inconsistent!

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.
  cp_Arguments | Parameter to control the behavior of this function. Syntax is: "[<fieldset> [/VERS=<vers_field>[, <vers_field2>..]]] [/FAT_ACCESS={d|w|r}] [/NO_RECU]" With possible arguments:
  | field | Name of field to be checked (syntax like: "TABLE.COLUMN" or "COLUMN") if unique.
  VERS | vers_field | Option to set the name of the version field and other fields to be used to identify different versions of the same element. If this option is set, another element with identical values for the given fields may exist, if the key attributes are identical but only the version is different. Syntax of 'vers_field', 'vers_field2', ... has to be "TABLE.COLUMN".
  FAT_ACCESS | d | Checks delete access on parent record when trying to delete the current record.
  | w | Checks write access on parent record when trying to delete the current record.
  | r | Checks read access on parent record when trying to delete the current record.
  NO_RECU |  | If you specify this key then it is forbidden to insert the parent record as child record (no recursion).

Returns:

  0 | OK
  1 | Error

See also:
  xedb_rel_poa xedb_pra_str zag_dbi_chk_dis

int xedb_rpl_pra | ( | ) |

Replace a position in the structure.

This userexit deals with the following actions:

'A'bort | If replace position is activated (configuration parameter "Entity-RPL" is set to "REPLACE_POS"), then set for all fields (master and relation) the dirty flag.
'U'pdate | Reset dirty flag for master fields.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Reserved.

Returns:

  0 | OK
  1 | Error

int xewm_ewr_ews_pra | ( | ) |

Only work requests with a release index are selected for adding to a work order.

Parameters:

  cpPar | - Standard userexit parameter of pre-action userexit (working mode and row)
  cpChkName | - Release procedure name

Returns:

  0 | OK
  1 | Error

int xewm_ews_pra | ( | ) |

Checks if mandatory field ELEM_ID is empty.

Parameters:

  CpPar | - Standard userexit parameter of pre-action userexit (working mode and row)

Returns:

  0 | Field ELEM_ID is filled
  1 | Field ELEM_ID is empty

int xfile_chk_del_rel | ( | ) |

Checks if the file - vault relation can be deleted.

The userexit is called by the userexit xdocfi_sto_pra().

The userexit executes the following checks (If a check fails the userexits aborts the checks and report an error):

- Checks the access rights to the assigned document.
- Checks for the original file - vault relation. Use the document - file relation to delete the original relation. The deletion of the original file - vault relation is permitted.
- Checks the vault type. For the deletion of a file - vault relation of a backup vault (type BCK) the user is asked if the operation should be executed.
- For non backup vaults the following checks are executed:
  - Checks the state of the file - vault relation. Outdated files are allowed to be deleted (file state N).
  - If more than one current file exists the file - vault realtion can be deleted. File - vault realtions in the trash are not considered.

Note:
  The userexit does not check the action parameter and should be called by another pre-action userexit!

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | ok
  1 | error

int xgroup_pre_action | ( | ) |

Pre-action userexit for class form or list (e.g.EDB-GRP-CFR, EDB-GRP-SLI).

This userexit covers the following actions:

'I'nsert | Creates new unique number for the new class and writes it into SML_NUM field. Sets the level indicator in LEV_IND field if necessary.
'T'emporary delete | Checks if the class has related records, or if it is used by other elements, or if if it has classified objects. |  | 'D'elete | Corrects values for AGG_FLAG and BOM_FLAG field

Parameters:

  context | Userexit context.

Returns:

  0 | OK
  Else | Error

int xgrpst_pre_action | ( | ) |

Pre-action userexit for classification group structure.

This userexit covers the following actions:

'I'nsert | Fills a possibly empty progress indicator field. Checks for direct recursion.
'U'pdate | Fills a possibly empty progress indicator field.
'T'emp. delete | Increments entry for BOM-flag of parent record. Increments entry for AGG-flag of child record.

Parameters:

  cp_Par | Standard parameter defining working mode and current row.

Returns:

  0 | OK
  1 | Recursion detected.

See also:
  xgrpst_action xgrpst_post_action

int xhisto_pre_action | ( | ) |

Pre-action userexit for object history relation widgets.

This userexit covers the following actions:

'I'nsert | Checks for write access to the parent record. Creates new history ID. If the default `EDB-HIS-MEM-ADD-STA` has the value "on", then the fields `CHANGE_STATUS` and `CHANGE_REV` are set.
'T'emporary delete | Delete is only allowed for "MEMO" entries and if write access to the parent record is granted.

Parameters:

  par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xknl_itm_set_ufk | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to set VONMEHR and NACHMEHR in the Unit Conversions mask based on EDB_VONMEHR and EDB_NACHMEHR.

Parameters:

  context | Context of the userexit
  param | Standard parameter with working mode and current row

Returns:

  0 | OK
  1 | Error

Pre-action userexit to set VONMEHR and NACHMEHR.

int xknl_rel_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Basic pre-action userexit for relation widgets.

This userexit deals with the following actions:

'I'nsert, 'U'pdate, 'C'opy | Checks for recursion in the structure on the first level (parent record is not allowed to appear as child element).

Parameters:

  ctx | Action userexit context.
  param | Reserved

Returns:

  0 | OK
  Else | Recursion on first level detected.

int xknl_set_qry_buf | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Copies specified field values from parent record to query buffer in child widget.

If /OUTER is specified for a target field, the string " | ''" is added to the query buffer.

Parameters:

  context | Pre action userexit context.
  param | Parameter to control the behavior of this function. Syntax is: "childField=parentField[,childField=parentField]*"

Returns:

  0 | OK
  Else | Error

int xmgt_str_pra | ( | ) |

Pre-action userexit for the 'As built item structure' widget.

This userexit deals with the following actions:

'I'nsert | Writes current date into field T_PCO_STR.ASSEMBLY_DATE.

Parameters:

  cp_Mode | Standard parameter defining working mode and current row.
  cp_Parameter | Reserved.

Returns:

  0 | OK
  Else | Error

int xntm_del_pra | ( | ) |

Pre-action userexit to delete related notes when a record is deleted.

If more than one reference exists the note will not be deleted. Except, for document types you need to add this userexit only in the document master list/form. In document type masks this userexit has no effect, because xdocty_post_action deletes in 'T' mode the master record, so that no master record exists when xntm_del_pra (mode 'D') is called.

This userexit deals with the following actions:

'D'elete | Deletes notes related to current record.

Note:
  An index should exist for NTM_REF in the table T_NTM_DAT for performance reasons.

Parameters:

  cp_Par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xntm_pra | ( | ) |

Pre-action userexit for notes administration widgets.

This userexit covers the following actions:

'I'nsert, 'C'opy | Generates a new note reference number and writes it to the field NTM_REF
'D'elete | Deletes notes related to current record.

Note:
  An index should exist for NTM_REF in the table T_NTM_DAT to increase the performance of the note administration userexits.

Parameters:

  cp_Par | Standard parameter defining working mode and current row.

Returns:

  0 | OK
  1 | Error during insert or copy
  Else | Database error

int xord_art_pre_act | ( | ) |

Pre-action userexit for order specific item assignment widget (EDB-ORD-ART-RLI).

This userexit deals with the following actions:

'I'nsert | Checks for unique record and calls number server.
'T'emporary delete | Checks for dependent entries in T_MASTER_VAR

Parameters:

  par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xord_pre_action | ( | ) |

Pre-action userexit for order module widgets.

This userexit deals with the following actions:

'I'nsert | Resets change management fields if record has been copied.

Parameters:

  par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xord_str_pre_act | ( | ) |

Pre-action userexit for lists with order specific item structure (BOM).

The argument string is used to check if the current position number is distinct. A newer feature allows to set the attribute '(+)' for a particular field. This attribute defines empty fields as matching to any other field contents.

This userexit deals with the following actions:

'I'nsert | Sets order key fields.
'U'pdate | Checks for unique position numbers.
'T'emporary delete | Checks for dependent records in T_MASTER_VAR.
'Q'uery | Sets selection values.

Note:
  If you pass an empty string (or NULL pointer) for 'cp_Arguments', the parameter string to check for a distinct position number is set to: "POS_NO,ORD_ID,ORD_VERSION,ORD_REVISION,ORD_POS_NO /VERS=T_MASTER_DAT.PART_VERSION,T_MASTER_VAR.IN_CONTEXT_FAT(+) "

Parameters:

  par | Standard parameter with working mode and current row.
  cp_Arguments | Parameter to control the behavior of this function. Syntax is: "<field>[,<field2>...] [/VERS=<vers_field>[, <vers_field2>..]]" With possible arguments:
  | field | Name of key field
  VERS | vers_field | Name of revision field

Returns:

  0 | OK
  1 | Error

int xpac_pra | ( | ) |

Pre-action userexit at the mask of the master and type element packet.

- If working mode is 'D'elete:
  Element packets are generally deleted by using the trash, together with their content. If the element packet is filled, an interactive delete inquiry takes place.
  If the parameter DELETE is set, no interactive delete inquiry appears. This is necessary for the virtual mode (batch). Type element packets can be deleted either in the master mask or in the type mask.

- If working mode is 'I'nsert:
  When an element packet is copied an interactive copy inquiry appears if the content of the folder should be copied, too. If the parameter COPY is set, no interactive copy inquiry appears. This is necessary for the virtual mode (batch).

Parameters:

  cp_Parameter | Standard parameter with working mode and current row
  cp_Arguments | Additional argument string
  /DELETE | Gets no interactive delete inquiry.
  /COPY={"0</th><td>1"} | 0 : Does not copy content of the folder 1 : Copies content of the folder

Returns:

  0 | OK
  other | Error
  10 | Virual mode set and no DELETE parameter given

int xpdw_frm_acc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the object access mask.

Depending on the mode, the following actions are performed:

- 'Q'uery: The query buffer of the `EDB_USERIDD` field is set to the appropriate value so that only records from the current mask are displayed.
- 'D'elete and 'T'emporary delete: The delete operation is suppressed.

Remarks:
  Has to be attached to the mask that shows the access list.

Parameters:

  usxCtx | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

int xpdw_ksa_ass_act_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Changes the `PDW_GENERATE` project for the child object and creates a history entry for the project alteration.

Parameters:

  ctx | The userexit context.
  param | Additional userexit parameters. Currently none.

Returns:

  0 | OK
  1 | Error

int xpdw_mas_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit to temporarily enable the global multi access rights view.

This userexit disables the multi access rights view in 'Q'uery mode and therefore, enables the global multi access rights view.

Remarks:
  Has to be called in combination with the post-action userexit `xpdw_mas_poa`. Additionally, the count function of the mask (both button and menu) has to be replaced by the userexit `xpdw_men_cnt_lis`.

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/FORCE]" With possible arguments:
  FORCE |  | Force disabling the multi access rights view, without taking care of nested calls to disable or enable the view.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_mas_poa, xpdw_men_cnt_lis, xpdw_lgv_vie_on, xpdw_lgv_vie_off

int xpdw_obj_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for object widgets.

Before the temporary deletion of a record it is checked that you have PDW access for the record.

PDW access: Check if the origin principal of the record is visible from the current selected principal.

The entity specific configuration parameters are grouped under configuration rubric EDB-PDW-ENT-n with n representing a sequence number for the entities under PDW control (e.g. EDB-PDW-ENT-2 / EDB-PDW-CHK-OBJ-ACC-ENT-2 represent the settings for entity EDB-ARTICLE).

If configuration parameter EDB-PDW-CHK-OBJ-ACC-ENT-n for the parent entity has value "no" the PDW access check is skipped.

This userexit deals with the following actions:

'T'emporary Delete | Checks for PDW access and reset relation check flags.
'D'elete | Deletes principal view to origin principal.

Note:
  This userexit has to be the last pre-action userexit in the object widget.

Parameters:

  cpParameter | Standard parameter defining working mode and current row.
  cpArguments | Additional userexit parameters. Currently none.

Returns:

  0 | OK
  PDW_NO_ACCESS (730) | Access denied
  Else | Error

See also:
  xpdw_obj_eda, xpdw_obj_poa

public pre-action

int xpdw_obj_typ_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for object type widgets.

Before the temporary deletion of a record it is checked that you have PDW access for the record.

PDW access: Check if the origin principal of the record is visible from the current selected principal.

The entity specific configuration parameters are grouped under configuration rubric EDB-PDW-ENT-n with n representing a sequence number for the entities under PDW control (e.g. EDB-PDW-ENT-2 / EDB-PDW-CHK-OBJ-ACC-ENT-2 represent the settings for entity EDB-ARTICLE).

If configuration parameter EDB-PDW-CHK-OBJ-ACC-ENT-n for the parent entity has value "no" the PDW access check is skipped.

This userexit deals with the following actions:

'T'emporary Delete | Checks for PDW access.

Note:
  This userexit has to be the last pre-action userexit in the object type widget.

Parameters:

  cpParameter | Standard parameter defining working mode and current row.
  cpArguments | Additional userexit parameters. Currently none.

Returns:

  0 | OK
  PDW_NO_ACCESS (730) | Access denied
  Else | Error

See also:
  xpdw_obj_eda, xpdw_obj_poa

public pre-action

int xpdw_pdw_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for PDW views.

- In 'I'nsert mode, a check for duplicate views is performed.
- In 'T'emporary delete mode, the access to the view is checked.
- In 'D'elete mode, the tolerance is adjusted.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

int xpdw_ppj_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the template project widgets.

Depending on the mode, one of the following actions is performed:

- 'I'nsert: The userexit checks if the template project is already stored.
- 'T'emporary delete: The userexit checks if the template project is currently active, and if this is the case it deactivates it in the current session.

Parameters:

  usxContext | The userexit context.
  param | Additional userexit parameters. Currently none.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_ppj_poa

int xpdw_pro_obj_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for the principal object relation mask.

This userexit has to be attached to relation widgets for relations between the principal object (project or organizational unit) and objects which are under control of multi access rights.

Depending on the mode, the following actions are performed:

- 'Q'uery: The mask join to filter `PDW_STRUCTURE` relation is added if it has not been set by the pre-mask userexit `xpdw_pro_obj_prm`. It is necessary to do this in this pre-action userexit because in virtual mode (that also applies for the browser) no pre-mask userexits are executed.
- 'I'nsert: If the new multi access rights scheme (using the usual relationship tables like `T_PRO_MASTER` instead of special multi access rights tables) is activated, the userexit checks if the object is already assigned to the project. With the new multi access rights scheme, creating an object-project relation automatically creates the multi access rights view so this operation implies an "assign to additional project" operation.
- 'T'emporary delete: If the new multi access rights scheme (using the usual relationship tables like `T_PRO_MASTER` instead of special multi access rights tables) is activated, the userexit checks if the relation is a `PDW_GENERATE` relation. If this is the case, the delete operation is denied because `PDW_GENERATE` relations are not to be deleted manually.

Parameters:

  usxContext | The userexit context.
  param | Additional userexit parameters. Currently none.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_pro_obj_prm

int xpdw_pro_str_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for project or organizational unit structure widgets.

Depending on the mode, the following actions are performed:

- 'I'nsert: Checks
  - if a non-hierarchical project or organizational structure would be created by the insert. If this is the case, the insert operation is denied because multi access rights only allows strict project or organizational unit hierarchies.
  - if the child project or organizational unit is identical to the current project or organizational unit. This is not allowed and in this case the insert operation is denied.
  - if the insert operation would lead to a recursion in the project or organizational unit structure. In this case, the insert operation is also denied.
- 'D'elete: The multi access right views to the child project or organizational unit are deleted.
- 'U'pdate: The multi access rights views to the child project or organizational unit are adjusted according to the inclusion flag. If the inclusion flag was set by the edit operation, the child projects or organizational units are included in the view otherwise, they are excluded.
- 'Q'uery: Sets the mask join to filter `PDW_STRUCTURE` relations, if this join is not already set.
- 'T'emporary delete: If the new multi access rights scheme (using the usual relationship tables like `T_PRO_STR` instead of special multi access rights tables) is activated, it checks if the relation is a `PDW_GENERATE` relation. If it is, the deletion is denied because `PDW_GENERATE` relations are not to be deleted manually.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_pro_str_poa

int xpdw_rel_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for object relation widgets.

PDW access: Check if the origin principal of the parent record is visible from the current selected principal.

The entity specific configuration parameters are grouped under configuration rubric EDB-PDW-ENT-n with n representing a sequence number for the entities under PDW control (e.g. EDB-PDW-ENT-2 / EDB-PDW-CHK-OBJ-ACC-ENT-2 represent the settings for entity EDB-ARTICLE).

If configuration parameter EDB-PDW-CHK-OBJ-ACC-ENT-n for the parent entity has value "no" the PDW access check is skipped.

If configuration parameter EDB-PDW-CHK-OBJ-BY-EDB has value "yes" the PDW access is skipped here but done by xedb_rel_pra. Depending on the value of default EDB_REL_ACT_INS the following access checks are done: Check for access by LogiView decision table EP/Insert_Str. If access is denied then check for "w"rite access to parent record. If access is still denied then check for PDW access to parent record (when EDB-PDW-CHK-OBJ-ACC-ENT-n for parent entity has value "yes").

This userexit deals with the following actions:

'T'emporary delete | Checks for PDW access to parent record.
'D'elete | Updates the tolerance.

Please be aware that the deletion of relation records of homogeous structures (like item-item T_MASTER_STR) is only supported for refine widgets.

Parameters:

  cpParameter | Standard parameter defining working mode and current row.
  cpArguments | Additional userexit parameters. Currently none.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_rel_eda, xpdw_rel_poa

public pre-action

int xpdw_ver_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Post-action userexit for version structures.

Depending on the mode, the following actions are performed:

- 'I'nsert: The multi access rights views for the version predecessors are created.
- 'D'elete: The multi access rights views for the version predecessors are deleted.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

int xpdw_vfg_str_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for object refine structures.

Suppresses display of structure if VIEW_ALL flag is set.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK |  | PDW_NO_STR_ACC | No access to structure because VIEW_ALL flag is set |  | Else | Error

See also:
  xpdw_vfg_str_poa

int xproje_pre_action | ( | ) |

Pre-action userexit for widgets with project data.

The generic pre-action userexit `xedb_pra` is called first. Then performs the following actions depending on the work mode:

- 'Q'uery: Sets the user view by calling the userexit `xstate_set_vie_pra`.
- 'T'emporary delete: Checks for related elements. Checks if the project is used by other elements.
- 'D'elete: Corrects the values of AGG_FLAG and BOM_FLAG.

Parameters:

  par | Standard parameter defining working mode and current row. Not currently used by this userexit, but the parameter string is passed to `xedb_pra`.

Returns:

  0 | OK

int xprost_pre_action | ( | ) |

Pre-action userexit for widget with project structures.

If the corresponding field is empty, the level indicator is set by calling `xstate_pre_action`.

This userexit covers the following actions:

- 'Q'uery: The query values for the current view are set.
- 'I'nsert: Checks for recursion and for a unique position number.
- 'U'pdate: Checks for unique a position number.
- 'T'emporary delete: Checks write access on parent record and updates the BOM and AGG flags.

Remarks:
  This userexit can also be used for inserting in aggregate lists. In this case it does not check for unique position numbers in 'I'nsert and 'U'pdate mode.

Parameters:

  par | Standard parameter defining working mode and current row.
  cp_Arguments | Parameter to control the behavior of this userexit. Syntax like: "field [/VERS=vers_field[, field2..]][/AGG]" With possible arguments:
  field | field name | Primary field to check for unique position numbers.
  VERS | list of field names | Defines the version fields which are used to check for unique position numbers. It is also possible to append the postfix '(+)' for a particular field. This postfix defines empty fields as matching to any other field content. If no parameter is passed, the parameter string is implicitly set to `"POS_NO /VERS=T_PRO_DAT.PROJ_VERSION"`.
  /AGG |  | Used for aggregate lists. In this case does not check for a unique position number.

Returns:

  0 | OK
  1 | Error, action could not be performed

int xpvm_chk_map | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre action user exit to check if the current created mapping is already used.

The property mappings should be initialized before this user exit is used (see xpvm_ini_prp_map).

Parameters:

  context | The context of the userexit
  param | Not used at the moment.

Returns:

  0 | OK
  1 | Error

int xrel_mul_xba | ( | ) |

Check on insert-mode if a valid entry was made.

There must be a record chosen with xtools_chs_rec. Called from Field-Trigger of the Field PAC_LEVEL.

Parameters:

  cp_Parameter | DTV mask parameter

Returns:

  0 | OK
  Else | Error

int xrel_pre_act | ( | ) |

The C_ID, the ori-, and the join-table entries of deleted elements are captured by temporary deleting.

Parameters:

  cp_Parameter | Parameter of the calling function

Returns:

  0 | OK |  | 1 | Parent entity not found
  2 | Error by creating the virtual reference widget
  -1 | No repeated reference
  >10 | Error from original pre-action userexit (error code + 10)

int xrel_ref_xba | ( | ) |

Set EDB-version-view on query mode.

Checks access to parent element on temporary delete operation.(Must have delete access)

Parameters:

  cp_Parameter | DTV mask parameter

Returns:

  0 | OK
  Else | Error

int xrel_ref_xea | ( | ) |

Checks access to the parent element on INSERT-, UPDATE and COPY-operations.

(Must always have write access) Checks access to parent element on temporary delete operations.

Parameters:

  cp_Parameter | DTV mask parameter

Returns:

  0 | OK
  1 | No access to parent element

int xsml_chk_dup | ( | ) |

Pre-action userexit to check double records in classification lists.

This userexit covers the following actions:

'I'nsert |  | 'C'opy | If the default EDB-DUP-SML-ELM has the value 1, it checks if the current record is already assigned to the current classification list. In this case, an error message is displayed on the screen and it returns 1. If the default EDB-DUP-SML-ELM has the value 2, it checks if the current record is already assigned to any classification list.

Parameters:

  cp_par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | The current record is already assigned to the current classification list (EDB-DUP-SML-ELM: 1) or The current record is already assigned to a classification list (EDB-DUP-SML-ELM: 2)
  -1 | Data base error or the ATT_NO field does not exist in the mask.

int xsml_post_action | ( | ) |

Post-action userexit creates a parallel record in 'TYR'relation.

This userexit covers the following actions:

'I'nsert |  | 'C'opy | When a record is assigned to the TYP class, then a parallel record is inserted in the corresponding relation table (with view TYR). When the assigned record in the class (of TYP type) is deleted, the parallel record is used to find the corresponding relation record, which must be deleted together with the master record. If the TYR relation record would not exist, then the query would have to include all existing relation records. This decreases the performance with increasing number of TYP classes.

Parameters:

  par | Userexit context.

Returns:

  0 | OK
  Else | Error

int xsml_pre_action | ( | ) |

Pre-action userexit for master forms which are classified in classes of type TYP.

Checks double records in classification list and deletes the corresponding relation record (TYR relation) for the classified objects.

Parameters:

  par | Userexit context.

Returns:

  0 | OK
  Else | Error

int xsmlc_pra | ( | ) |

Pre-action userexit for the item form with class attributes for ATC classes (e.g.

EDB-ART-CFR-S).

This userexit covers the following actions:

'Q'uery | Query in the shadow widget (virtual widget for classification list) instead of querying in the current item form and folder. To query in the item form is prohibited when setting the query-criteria "WHERE C_ID = 0" in the Id field. For numeric attributes (if the classification attributes folder is activated) set the query criteria only for the I-fields and ignore the S-fields. Every String attribute field has a visible integer field in the class attributes folder and a correspondent invisible string field (the so called S-field). If another folder than the classification attributes folder is activated, then copy the query criteria in the shadow widget and search there.

Parameters:

  cp_Mode | Userexit context.
  cp_Arguments | Userexit parameter, reserved.

Returns:

  0 | OK
  Else | Error

int xsmlc_pra_lis | ( | ) |

Pre-action userexit for the classification attribute folder (for ATC classes) in the item form.

This userexit is called after the post-action userexit of the head item form (which copies the found record in the attributes list folder) is called. The userexit returns 1 so that the copied records are not overwritten by DataView. If the virtual mode is set, then the shadow widget is active and returns 0.

Parameters:

  cp_Mode | Userexit context.
  cp_Arguments | Userexit parameter, not used yet.

Returns:

  1 | OK, the folder records are not overwritten
  0 | The virtual mode is set, allows querying in shadow list

int xsmlc_pra_lis_agg | ( | ) |

Pre-action userexit for the classification aggregate list (only for classes of ATC type).

Updates the attribute titles and deletes the query criteria in the C_ID field (written by xtyp_typ_agg).

Parameters:

  cp_Mode | Userexit context.
  cp_Parameter | Userexit parameter, reserved

Returns:

  0 | OK
  Else | Error

int xsmldf_pre_action | ( | ) |

Pre-action userexit for class attributes definition mask.

This userexit covers the following actions:

'I'nsert |  | 'U'pdate | Checks unique position number
'T'emporary delete | Checks the class access before deleting the attribute definition. For classes of type ATT checks if records with values are already assigned in the calssification list for the correspondent attribute.

Parameters:

  parStandard | Userexit context.

Returns:

  0 | OK
  Else | Error

int xstare_pra | ( | ) |

Pre-action userexit for the vault definition mask.

The userexit supports to following modes:

'I'nsert | Concatenates the contenet of the fields STORE_DISC and STORE_PATH and writes the value into the field STORE_DISCPATH"</b>. </td></tr><tr> <th> 'C'opy </th><td> @li Concatenates the contenet of the fields <b>STORE_DISC</b> and <b>STORE_PATH</b> and writes the value into the field <b>STORE_DISCPATH".
'U'pdate | Concatenates the contenet of the fields STORE_DISC and STORE_PATH and writes the value into the field STORE_DISCPATH". Checks the field T_STORE_AREA.STORAGE_AREA if the value was changed. The user is asked id he is agree with it, because the renaming of the vault is time consuming.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.
  cp_Arguments | Additional argument string.

Returns:

  0 | OK
  Else | Error

int xstate_chk_obj_sta_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit that checks if related objects have a certain state.

This userexit works on relation records and can be used to check the parent- or the child record of the relation record. It further checks if related objects given by the parameter /PARENT, /CHILD or /USX have the state given by the parameter /STATE.

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "/STATE=state /CHILD|/PARENT|/USX [/S][/ALLCTX]" with possible arguments:

STATE | APPROVED|RELEASEDx7c;VERSIONABLE::x7c;WITHDRAWN::x7c;INWORK | The state which related objects must have.
CHILD |  | Checks the child object
PARENT |  | Checks the parent object
USX | userexit | Userexit to use for selecting the related object

Additionally, the following parameters are optional:

S |  | Strict check. Also perform the checks if the current user is a DataView manager user. The default setting is not to check in this case
ALLCTX |  | Checks all related records, not only those which are valid in the currently set context.

Returns:

  0 | The related objects have the right state.
  >0 | At least one of the related objects does not have the right state.

See also:
  xstate_chk_obj_sta_prt, xstate_chk_obj_sta_eda

int xstate_pre_action | ( | ) |

Pre-action trigger for masks with release procedure.

Sets - if necessarey - the start value for the level indicator in dependency of the release procedure.

Parameters:

  cp_par | standard parameter (working mode and row)

Returns:
  - 0 ok
  - 1 error during determination of level indicator

int xstate_pre_mail_act | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Insert the current group as a search string in the query mode.

Sets the query buffer of the field T_CHK_MAL.CHK_GROUP to the current group.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK | Else | Error occurred.

int xstate_set_vie_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Sets the view filter condition in the appropriate field query buffers.

The query buffers in the mask are set according to the currently selected view (including phase and preliminary flag), if the action mode is QUERY and no row is specified. Otherwise the userexit returns immediately.

If a specific table name is passed, the necessary fields are looked up using the given table name. Otherwise they are looked up using the origin table name of the widget. If the fields cannot be found using this approach, the fields are looked up using the join table name of the widget.

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/TAB=tableName]" with possible arguments:
  TAB | tableName | Table name that is used to look up the necessary fields in the mask. Without this parameter, the fields are looked up using the origin table name of the widget; if the fields cannot be found, they are looked up using the join table name of the widget.

Returns:

  0 | OK
  Else | Error occurred.

See also:
  xstate_set_eff_vie, xstate_rst_vie_poa

int xstr_pre_action | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for masks with release procedure.

Sets - if necessary - the start value for the level indicator in dependency of the release procedure when a record is created or copied. This is done by executing the field userexits on the field CHK_NAM, i.e. by simulating that the lifecycle has been changed.

This userexit is used to insert the level indicator if it has not been written before saving the record. This is possible if the release procedure is entered as default and the post-field userexit at the release procedure has not been called. This userexit may be called as C-function from all pre-action userexits which belong to masks with release procedure fields. The caller has to provide a suitable standard parameter (mode and row). Changes in the post-field userexit 'xstate_post_chk_fld' may be performed here if necessary.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred.

int xtrf_pra | ( | ) |

Creates and sets the reference number of a transformation record.

This userexit deals with the following actions:

'I'nsert | Creates and sets reference number of a transformation record.
'U'pdate | Creates and sets reference number of a transformation record.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Unable to create transformation ID

int xtxt_bom_txt_pos | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Handles text position type and EDB_NULL_ITEM.

This userexit deals with the following actions:

'I'nsert |
'U'pdate | Checks for position type text (T).
| Replaces the placeholder in the text instance text with the new values.
| Clears fields QUANTITY_BOM and EDB_UNIT and sets access to r(ead).
| Checks for EDB-NULL-ITEM (EDB-ID = -1).
| Sets C_ID for EDB-NULL-ITEM.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behaviour of this userexit. Not currently used.

Returns:

  0 | OK
  Else | Error

int xtxt_chk_del_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Checks if the selected element relates to a Where-Used object.

If there is a Where-Used-Result, the userexit prints the message EDB-ELMTMPUSED and returns 1. This is very helpful, to avoid the deletion of a Text-Instance or Glossary or Text-Template, which is currently assigned to an object. The information about the Where-Used root element are contained in the widget-buffer:

WHERUSEDTYPE | Type of the Where-Used root element.
WHERUSEDTYPEEDBID | The EDB-ID of the Where-Used root element.

Parameters:

  ctx | Userexit context
  param | Parameter to control the behavior of this function. Not currently used.

Returns:

  0 | OK
  Else | Error

int xtxt_ctg_tmp_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Checks the assignement or deletion of a category to/of a template/glossary.

This userexit covers with the following actions:

'I'nsert | Check if the entered category is in this list unique.
'T'emporary Delete | Checks before deleting a category, if this category is the default category of the corresponding template.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Syntax is: "<arg>" With possible arguments:
  arg |  | Main argument.

Returns:

  0 | OK
  Else | Error

int xtxt_ins_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Creates or updates placeholders for a text instance.

This userexit deals with the following actions:

'I'nsert | Sets field T_TXT_TPL_DAT.EDB_TPL_ID to mandatory.
| Initializes instance text with text template definition.
| Probate placeholders of the corresponding template.
'U'pdate | Sets T_TXT_TPL_DAT.EDB_TPL_ID to mandatory
| Checks if the template Id (T_TXT_TPL_DAT.EDB_ID) has changed.
| Deletes old placeholders of the corresponding template.
| Initializes instance text with text template definition.
| Probate placeholders of the corresponding template.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Not currently used.

Returns:

  0 | OK
  Else | Error

int xtxt_ins_sel_pre | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre-action userexit for instance selection widget which calls the post-field userexit of the field EDB_TXT_GLS_REF_x if the field is dirty and visible and not empty.

Calls the post-field userexit of the field EDB_TXT_PLH__x if the field is dirty and visible. Checks if a existing instance with same placeholder-values already exists. If so, a message is printed asking if the current entered instance should be used or not. Store the created Text-Instance with the defined placeholder-values

Parameters:

  ctx | Field userexit context.
  param | Reserved parameter for the pre-field userexit.

Returns:

  0 | Ok.
  Else | Error

int xtxt_pli_pre_act | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Checks value type of placeholder from the glossary reference.

Note:
  This userexit is is required when a user selects a glossary reference and pushes the Store button directly.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Not currently used

Returns:

  0 | OK
  Else | Error

int xtxt_tpl_ctg_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Checks the assignment or deletion of a category to/of a template/glossary.

This userexit deals with the following actions:

'I'nsert | Check if the entered category is unique in this list.
'T'emporary Delete | Checks before deleting a category, wether this category is the default category of the corresponding template

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Not currently used.

Returns:

  0 | OK
  Else | Error

int xtxt_tpl_ins_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Initializes the instance text with the text template definition.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Not currently used.

Returns:

  0 | OK
  Else | Error

int xtyp_del_mst | ( | ) |

Pre-action userexit to be called from a type mask.

Puts the master record of the current element (type record) into the waste basket, if the working mode is 'T' (temporary delete).

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | OK
  Else | Error

Remarks:

int xutil_acc_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Pre action userexit, checks if mandatory fields are filled by xutil_acc_fld.

This userexit deals with the following actions:

'I'nsert | Checks that mandatory fields are filled by xutil_acc_fld.
'U'pdate | Checks that mandatory fields are filled by xutil_acc_fld.

Parameters:

  context | Userexit context
  param | Reserved.

Returns:

  0 | OK
  1 | Mandatory field is empty.

See also:
  xutil_acc_fld

int xutil_chk_ent_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Checks whether entity1-entity2-view combination is valid for current relation mask.

*

This userexit deals with the following actions:

'I'nsert | Checks valid entity1-entity2-view combination.
'U'pdate | Checks valid entity1-entity2-view combination.

Parameters:

  context | Action userexit context.
  cpParameter | Parameter to control the behavior of this function. Syntax is: "/EN1=<field_entity1> /EN2=<field_entity2> /VIEW=<field_view>" With possible arguments:
  EN1 | field_entity1 | Fieldname containing entity1 name.
  EN2 | field_entity2 | Fieldname containing entity2 name.
  VIEW | field_view | Fieldname containing view name.

Returns:

  0 | OK
  Else | Error

int xutil_cpy_fld_by_prf_pra | ( | const char * | param1,
|  | const char * | param2
| ) |  |

Copies the field content to the same field with the prefix.

In the mask this userexit is called for, the contents of all fields for which a field with the same name but an additional specific prefix exists, are copied from the field without prefix to the field with prefix. The default prefix is "ORG_".

This userexit deals with the following actions:

'I'nsert | Copies the field content to the same field with the prefix.
'U'pdate | Copies the field content to the same field with the prefix.

Parameters:

  usxCtx | Action userexit context.
  cpParameter | Parameter to control the behavior of this function. Syntax is: "[/PREFIX=<prefix>]" With possible arguments:
  PREFIX | prefix | Prefix to use (default: "ORG_").

Returns:

  0 | OK
  1 | Error

Example:
  If the following fields exist in the mask:

        T_DOC_PRS.ORG_COMPANY
        T_DOC_PRS.ORG_COMPANY2
        T_PERSON.COMPANY
        T_PERSON.COMPANY2
        T_PERSON.EDB_ID
        T_PERSON.NAME
        T_PERSON.CITY

  then this userexit copies the contents of T_PERSON.COMPANY and T_PERSON.COMPANY2 to T_PERSON.ORG_COMPANY and T_PERSON.ORG_COMPANY2.

int xvar_art_prefer_pra | ( | ) |

Pre-action userexit for 'Preferred Variants' list (EDB-ART-PRF-RLI) and 'Products to preferred variant' (EDB-ART-PRF-ALI).

This userexit covers the following actions:

'I'nsert | The VAR_NUM field is set to 0, so that only product variants can be inserted.
'Q'uery | Sets 0 as query criteria for VAR_NUM field, so only product variants are found.

Parameters:

  cp_Paramter | Userexit context.

Returns:

  0 | OK
  Else | Error

int xvar_pre_action | ( | ) |

Pre-action userexit for the variant list.

This userexit covers the following actions:

'I'nsert |  | 'C'opy | Checks if the item is a variant.
'Q'uery | Sets the version number corresponding to the variant placeholder as a query value for the reference field VERS_REF. The query value for the C_ID field includes empty values in order to consider the case when the item has no version (T_MASTER_DAT.PART_VERSION is NULL).
'D'elete | Deletes the TYP table for TYP variants.

Parameters:

  par | Userexit context.

Returns:

  0 | OK
  Else | Error

int xvardf_pre_var_act | ( | ) |

Pre-action userexit for variant attributes list.

This userexit covers the following actions:

'Q'uery | Allows queries only for variant parts.
'T'emporary delete | Checks if variant has defined attributes, if parts exist in the variant form and if the variant is used somewhere else.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.
  cp_Arguments | Userexit parameter, syntax like:
  /TABLE = VariantAttributesTable | Table with defined variant attributes. If this option is not given, then the table T_MASTER_FLD is used.

Returns:

  0 | OK
  Else | Error

int xvardf_pre_vfl_act | ( | ) |

Pre-action userexit for variant masks (e.g.

EDB-ART-VAR-SLI, EDB-ART-VAR-SFR).

This userexit covers the following actions:

'I'nsert | Checks the unique position number before inserting a new one.
'U'pdate | Checks the unique position number.
'T'emporary delete | Checks if the current user has 'w'rite access to the variant to be deleted.

Parameters:

  cp_Parameter | Userexit context.
  cp_Arguments | Userexit parameter, syntax like: /TABLE=TableName where TableName is the table with the defined variant attributes. This option must be used, when another table than T_MASTER_ATT must be used.

Returns:

  0 | OK
  Else | Error

int xver_chk_max | ( | ) |

Checks the current revision number.

The number must be equal or higher than any existing revision number of the records with identical keys.

This userexit deals with the following actions:

'I'nsert | Checks that current revision number is valid.
'U'pdate | Checks that current revision number is valid.

Parameters:

  cpPar | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Invalid revision number

int xwfl_process_preaction | ( | ) |

Pre-action userexit to fill the EDB_ID attribute of a process.

This userexit covers the following actions:

'I'nsert | Copies the content of the ACT_REF field to the EDB_ID field.

The content of the field "T_PRC_DAT.ACT_REF" is copied to "T_PRC_DAT.EDB_ID". This userexit returns an error if one of the fields do not exist in the currently active widget.

The primary key attribute of a process is "ACT_REF". Unfortunately the "EDB_ID" attribute cannot be used without having a deep impact on the application code.

Parameters:

  cpPar | Working mode and row of the pre-action userexit
  cpIgn | Currently not used

Returns:

  0 | OK
  1 | Error

Copyright © 2007-2012, Oracle and/or its affiliates.