# Userexits

Functions

## Select-Menu userexits
[Menu userexits]

### Functions
int | bvb_usx_cmb_rpl ()
| Replaces the current folder in a combined mask with another folder.
int | bvb_usx_cns_frm_lis ()
| Opens the combined mask corresponding to the passed name of the constraint.
int | bvb_usx_opn_agg ()
| Opens the aggregate list or (combined) aggregate form.
int | bvb_usx_opn_ent ()
| Opens the entity list or (combined) entity form.
int | bvb_usx_opn_ref ()
| Opens the refine list or (combined) refine form.
int | bvb_usx_opn_typ ()
| Opens the type list or (combined) type form.
int | bvb_usx_son_set_fat ()
| Sets a selected record of the sublist as parent record of the combined mask.
static int | jcl_cre_url ()
| This userexit creates a url to execute a pre-defined task.
int | sig_chg_pwd ()
| Changes the password of the selected private key by using a password dialog.
int | sig_cre_sgn_men ()
| Creates a digital signature of a data record.
int | sig_imp_cer ()
| Imports a certificate file.
int | sig_imp_key ()
| Imports a private key.
int | sig_imp_p12_cer ()
| Imports a certificate from a private exchange file.
int | sig_imp_p12_key ()
| Imports a private key from a private exchange file.
int | sig_loc_key ()
| Locks the selected key record.
int | sig_set_tmp_pwd ()
| Stores the temporary password of the given user into a temporary buffer.
int | sig_shw_cer ()
| Shows the main data of a certificate in a form.
int | sig_shw_win_cer ()
| Shows a certificate by using the Windows ActiveX component.
int | sig_unl_key ()
| The userexit unlocks a locked key record.
int | sig_usr_pra ()
| Selects the keys of the current user.
int | tol_select ()
| Select-menu userexit to calculate fields of the current mask.
int | xartic_bom ()
| Select-menu userexit to open the list containing child items for the currently selected item.
int | xartic_var_agg ()
| Select-menu userexit to open variant list for selected item.
int | xase_cfg_brw (const char *param, const char *ignore)
int | xase_cfg_ent (const char *param, const char *ignore)
int | xase_cfg_fld (const char *param, const char *ignore)
int | xase_cre_tab_vie_sel (const char *param, const char *ignore)
int | xase_fil_tab (const char *param, const char *ignore)
int | xase_opn_frm (const char *param, const char *ignore)
int | xase_shw_hie (const char *param, const char *ignore)
int | xchg_asg_obj (const char *param, const char *ignore)
int | xchg_ask_nxt_sta (const char *param, const char *ignore)
int | xchg_det_aff_prd (const char *param, const char *ignore)
int | xchg_ewr_del (const char *param, const char *ignore)
int | xchg_ina_obj (const char *param, const char *ignore)
int | xchg_log_opr_und (const char *param, const char *ignore)
int | xchg_nxt_sta (const char *param, const char *ignore)
int | xchg_opn_crr_lis (const char *param, const char *ignore)
int | xchg_opr_del_obj (const char *param, const char *ignore)
int | xchg_opr_mov (const char *param, const char *ignore)
int | xchg_sel_ord (const char *param, const char *ignore)
int | xchg_set_cre_id (const char *param, const char *ignore)
int | xchg_upg_obj (const char *param, const char *ignore)
int | xcnf_ord_bom_del (const char *param, const char *ignore)
int | xcnf_ord_bom_exp (const char *param, const char *ignore)
int | xcol_cre_art_ntr (const char *param, const char *ignore)
int | xcopm_start_mmn ()
| Copies elements of a path to a new revision or to a new number.
int | xcpa_cpy_ali (const char *param, const char *ignore)
int | xcpa_cpy_col_itm (const char *param, const char *ignore)
int | xcpa_set_default_men ()
| Menu userexit to set the default (field C_DEFAULT) of the Alias IDs in the different CPA objects (for example T_CPA_ART_DAT or T_CPA_DOC_DAT).
int | xcps_cmp_opn_frm (const char *param, const char *ignore)
int | xcps_elm_tak (const char *param, const char *ignore)
int | xcps_flt_att_men_sel (const char *param, const char *ignore)
int | xcps_grp_cmp_rst_eff (const char *param, const char *ignore)
int | xcps_grp_cmp_set_eff (const char *param, const char *ignore)
int | xcps_grp_del_var_inf (const char *param, const char *ignore)
int | xcps_mdl_bom_shw (const char *param, const char *ignore)
int | xcps_mdl_cpy_elm (const char *param, const char *ignore)
int | xcps_mdl_dup_elm (const char *param, const char *ignore)
int | xcps_mdl_jmp_dwn (const char *param, const char *ignore)
int | xcps_mdl_jmp_up (const char *param, const char *ignore)
int | xcps_mdl_mov_dwn (const char *param, const char *ignore)
int | xcps_mdl_mov_elm (const char *param, const char *ignore)
int | xcps_mdl_mov_up (const char *param, const char *ignore)
int | xcps_ntr_bom_shw (const char *param, const char *ignore)
int | xcps_ntr_cop_str (const char *param, const char *ignore)
int | xcps_ntr_jmp_dwn (const char *param, const char *ignore)
int | xcps_ntr_jmp_up (const char *param, const char *ignore)
int | xcps_ntr_mov_dwn (const char *param, const char *ignore)
int | xcps_ntr_mov_up (const char *param, const char *ignore)
int | xcps_opn_cmp_str_brw (const char *param, const char *ignore)
int | xcps_opn_sol_brw (const char *param, const char *ignore)
int | xcps_prl_cpy_str (const char *param, const char *ignore)
int | xcps_prl_mov_dwn (const char *param, const char *ignore)
int | xcps_prl_shw_bom (const char *param, const char *ignore)
int | xcps_prl_shw_ord_bom (const char *param, const char *ignore)
int | xcps_rsl_itm (const char *param, const char *ignore)
int | xcps_rsl_ref (const char *param, const char *ignore)
int | xcps_rsl_ref_pos (const char *param, const char *ignore)
int | xcps_set_cur_prd (const char *param, const char *ignore)
int | xcps_set_man_typ (const char *param, const char *ignore)
int | xcps_sol_opn_mul (const char *param, const char *ignore)
int | xcps_vrf_bom_pos (const char *param, const char *ignore)
int | xcps_vrf_cpl_bom (const char *param, const char *ignore)
int | xcps_vrf_sgl_bom (const char *param, const char *ignore)
int | xcpy_agg (const char *param, const char *ignore)
int | xcpy_ref (const char *param, const char *ignore)
int | xcpy_str (const char *param, const char *ignore)
int | xcpy_typ (const char *param, const char *ignore)
int | xdiff_start_mmn ()
| Compares two bills of materials (BOMs).
int | xdir_usx ()
| Select menu userexit to call a function from the directory manager.
int | xdocty_change_typ ()
| Select-menu userexit to change the type of a document.
int | xdocum_typ_frm ()
| Opens the type form for a selected document according to its document type.
int | xedb_agg_ver ()
| Select-menu userexit.
int | xedb_cop_slv ()
| Copies a slave record into the structure list of a document widget.
int | xedb_del_ref ()
| Select-menu userexit.
int | xedb_del_slv ()
| Puts the selected slave record into the trash.
int | xedb_dup_ref ()
| Copies the selected record and its relations (copy with structure).
int | xedb_hierarcy_ver (const char *param, const char *ignore)
int | xedb_iwf_lis_ref ()
| Select-menu userexit.
int | xedb_quantity_ver (const char *param, const char *ignore)
int | xedb_ref_ver ()
| Select-menu userexit.
int | xedb_tre_wlk ()
| Menu userexit to walk recursively through a complete "tree" structure (for example a Bill of Material) and perform any action by calling a passed userexit.
int | xedb_usage_ver (const char *param, const char *ignore)
int | xeer_req_sel ()
| Marks all selected records for EER replication.
int | xfile_bck_up ()
| Creates a backup of the selected file.
int | xfile_chg_are (const char *param, const char *ignore)
int | xfile_chk_out ()
| Checks out a file from a vault.
int | xfile_cki_dis_sec ()
| Checks in a file into a distributed vault.
int | xfile_cki_res ()
| Checks in a file and reset the document reservation.
int | xfile_cko_res ()
| Checks out a file and reserve the document.
int | xfile_dis_fil ()
| Distributes a file into another vault.
int | xfile_dis_pvm_fil ()
| Distributes a file into another vault.
int | xfile_fil_rep ()
| Distributes the current file in another vault.
int | xfile_get_eif_inf ()
| Prints the path and filename of the crypted file within the vault of the kind 'EIF'.
int | xfile_mov_in ()
| Moves (copy) the file from the external vault to the original vault.
int | xfile_mov_out ()
| Moves a file from the original vault to an external vault The name of the external vault is written into the field T_FILE_DAT.EXTERNAL_AREA and the file status is changed.
int | xfile_ret_bck_up ()
| Copies a file back from the backup vault into the original vault.
int | xfile_sec_are ()
| Sets, gets or resets the vault for the global document-file mask.
int | xfile_sel_fil ()
| Shows a file dialog to select a file for the document - file mask.
int | xfile_set_cop ()
| Sets the copy mode (COPY or DUPLICATE).
int | xfile_set_flg ()
| Sets the file status flag.
int | xfile_upd_fil ()
| Copies a file from the current ('A'), origin ('O') or choice ('C') directory into the vault.
int | xfms_adm_bat_chk_are ()
| Checks all files in a vault in batch mode.
int | xfms_adm_chk_are ()
| Checks all files in a vault.
int | xfms_adm_chk_fil ()
| Checks a file in a vault, by using the file size stored in the database.
int | xfms_chk_pth_acc (const char *param, const char *ignore)
int | xform_dlg_exc ()
| Starts the dialog steps of selected assistant.
int | xhisto_get_his_all ()
| Select menu userexit to create a history overview for the selected record.
int | xief_loa_exp_fin ()
| Writes marked records to a loader file.
int | xief_loa_exp_rec ()
| Marks selected records and related records to be exported.
int | xmgt_men_cnf_emb ()
| Menu userexit to confirm embodiment of an item typically with a serial number) for a 'Should build' component.
int | xmgt_men_upd_del ()
| Menu userexit to set records of the 'As built' item structure in update or delete mode.
int | xmtx_opn ()
| Opens matrix list for selected variant placeholder (item).
int | xntm_opn ()
| Calls the notes administration for the current record.
int | xntree_wlk ()
| This menu userexit processes a n-dimensional tree structure.
int | xord_cre_ord_str ()
| Select-menu userexit to create an order specific bill of material.
int | xord_del_ref ()
| Deletes the complete structure of an order specific bill of material for the selected order.
int | xord_var_lis ()
| Opens relation widget with order specific BOM.
int | xpdw_frm_acc (const char *param, const char *ignore)
int | xpdw_ksa_art_oth_pro (const char *param, const char *ignore)
int | xpdw_men_add_pro (const char *param, const char *ignore)
int | xpdw_men_chg_pro (const char *param, const char *ignore)
int | xpdw_men_cnt_lis (const char *param, const char *ignore)
int | xpdw_men_cpy_str (const char *param, const char *ignore)
int | xpdw_men_del_ass_pro (const char *param, const char *ignore)
int | xpdw_men_del_ver (const char *param, const char *ignore)
int | xpdw_men_exi_edt (const char *param, const char *ignore)
int | xpdw_men_set_res (const char *param, const char *ignore)
int | xpdw_men_vfg (const char *param, const char *ignore)
int | xpdw_pdw_chg_pro (const char *param, const char *ignore)
int | xprm_fre_lck (const char *param, const char *ignore)
int | xprm_set_pwd (const char *param, const char *ignore)
int | xprt_edt ()
| Edits the RPG printer definition file (RPG_PDF_DAT) of the selected records.
int | xpvm_bat_doc (const char *param, const char *ignore)
int | xpvm_bat_fil (const char *param, const char *ignore)
int | xpvm_mrk_doc (const char *param, const char *ignore)
int | xpvm_mrk_doc_new (const char *param, const char *ignore)
int | xpvm_mrk_fil_new (const char *param, const char *ignore)
int | xpvm_set_act (const char *param, const char *ignore)
int | xpvm_set_not_act (const char *param, const char *ignore)
int | xqry_cnd_sav ()
| Assigns the query conditions to the logical name given by the user for the query to be stored, and stores the query conditions and condition values in the table T_QRY_CND.
int | xqry_dat_rec_sav ()
| Stores the record Id's of the records which are selected by the user in a form or list.
int | xqry_rnk_exc ()
| Menu userexit to perform a 'Best matching'-query for the conditions given in the condition mask.
int | xqry_str_exc ()
| Menu userexit to perform a logical query.
int | xqry_str_log_op ()
| Menu userexit to connect several logical queries by an "AND" or "OR" operation.
int | xrel_mul_res ()
| For each selected record (or, if the flag /SINGLE is set, just for the first record) the given reservation function is called.
int | xres_opn_res ()
| Opens form with all information about the reservation of the selected element.
int | xres_rst_res ()
| Resets the reservation of a record.
int | xres_set_res ()
| Sets the reservation for a record.
int | xsml_frm_typ ()
| Select menu userexit for a selected record to open classification or variant list if the record was assigned to a class or variant before.
int | xsmlc_upd_att ()
| Select menu userexit to update the attribute fields in item head form and attribute folder.
int | xsmlc_usr_sav ()
| Select menu userexit for class form to save the user specific settings for the current class.
int | xsmldf_cre_typ_ref ()
| Select menu userexit to reorganize the class of TYP type.
int | xsmldf_del_sml ()
| Select menu userexit to delete the class definition for the selected TYP class.
int | xsmldf_sml_def ()
| Select menu userexit for class mask to create the type table for classes of TYP type (one type table for each class) or a classification form for ATT.
int | xstate_ask_nxt_sta (const char *param, const char *ignore)
int | xstate_frm_nxt_sta (const char *param, const char *ignore)
int | xstate_nxt_sta (const char *param, char *ignore)
int | xstr_ask_nxt_sta (const char *param, const char *ignore)
int | xstr_nxt_sta (const char *param, char *ignore)
int | xtxt_tmp_men_rep (const char *param, const char *ignore)
int | xtxt_whr_use_up1_men (const char *param, const char *ignore)
int | xvar_cal_mas_gen ()
| Select menu userexit to start the mask generator for the variant form created for the current variant.
int | xvar_opn_var_prf ()
| Select menu userexit to open a list with prefered variants (mask EDB-ART-VAR-PRF-RLI).
int | xvar_var_lis ()
| Select menu, opens the variant list or variant form (for variants of type VARATT) for a selected variant.
int | xvardf_del_var ()
| Select menu userexit to delete the attributes definition for the selected variant.
int | xvardf_var_def ()
| Select menu userexit to create the table and mask for variants of type 'ATT' (mask EDB-ART-VAR-SLI or EDB-ART-VAR-SFR).
int | xver_agg_ver ()
| Opens aggregate list with predecessor of selected record.
int | xver_cre_ver (const char *param, const char *ignore)
int | xver_del_ver (const char *param, const char *ignore)
int | xver_del_ver_pur (const char *param, const char *ignore)
int | xver_ref_ver ()
| Opens refine list with successor of selected record.
int | xwfl_prc_abort ()
| Menu userexit to cancel a process.
int | xwfl_prc_chg_own (const char *param, const char *ignore)
int | xwfl_prc_resume ()
| Menu userexit to resume a process.
int | xwfl_prc_start ()
| Menu userexit to start a process.
int | xwfl_prc_suspend ()
| Menu userexit to suspend a process.
int | zag_dlg_iwf_lis_ref ()
| Opens refine list for selected records.
int | zag_mas_opn_xas ()
| Select menu/button userexit that opens widget for current record.
int | zag_men_wri ()
| Writes text of selected menu selection into the current field.

### Function Documentation

int bvb_usx_cmb_rpl | ( | ) |

Replaces the current folder in a combined mask with another folder.

The userexit provides the same features like userexit iwf_cyc_lis() with some extensions.
Field group
A field group can be one field or a set of fields. A field group is defined by a list or a range.

- List /i=TAB_A.F_A,TAB_A.F_B,TAB_C,F_A
- Range /i=TAB_A.F_A..TAB_C,F_A or /i=TAB_A.F_A..

The field group can be used to set the fields visible or invisible.
Main form
See bvb_usx_chk_mfr() for a definition of the main form.
The /MAINFORM option indicates that the sub form is a part of the main form. A sublist is typically not part of the main form.
Folder identification
To identify the current folder, a customizable text can be defined that will be set in widget buffer.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "E>entity list [field_group] [/MAINFORM] [/DYNAMIC] [/FOLDER=TXT]" "F>entity list [field_group] [/MAINFORM] [/DYNAMIC] [/FOLDER=TXT]" "C>constraint list [field_group] [/MAINFORM] [/DYNAMIC] [/FOLDER=TXT]" "R>entity_2 view [list] [field_group] [/MAINFORM] [/DYNAMIC] [/FOLDER=TXT]" "A>entity_2 view [list] [field_group] [/MAINFORM] [/DYNAMIC] [/FOLDER=TXT]" "field_group [/MAINFORM] [/DYNAMIC] [/FOLDER=TXT]" With possible arguments:
  E> |  | Keyword for entity (behavior by pre-action in sublist.)
  F> |  | Keyword for entity which has a 1:1 relation to the header form.
  C> |  | Keyword for refine relation.
  R> |  | Keyword for refine relation.
  A> |  | Keyword for aggregate relation.
  constraint |  | Name of the constraint.
  entity_2 |  | Name of second entity of the relation.
  list |  | Name of new list to be used.
  field_group |  | List with field names and access to be set. Syntax: /i=field1,field2,.. invisible. /v=field1,field2,.. visible. Capital letters (I, V) are valid too. If this is the only argument, the current sublist will be removed.
  MAINFORM |  | Flag to define that the combined mask is displayed as main form (-> main group of fields). Some operations (like insert, update etc.) are only permitted if the combined mask is displayed as main form.
  DYNAMIC |  | This flag is only interpreted by ECI clients and tells them to reopen the subfolder every time the tab is opened or every time the parent record changes. This flag is ignored by the server side implementation.
  /FOLDER | TXT | This option can recognize which folder is currently displayed (TXT is customizable).

Returns:
  Return-Code of function 'iwf_cyc_lis'

Example:
  The entity ENTITY_1 is defined by the table TAB_1 and has the following fields TAB_1.A, TAB_1.B, TAB_1.C, ..., TAB_1.F. There are two relations defined:
  - Structure relation ENTITY_1 -> ENTITY_1 view STR
  - Relation to another entity ENTITY_1 -> ENTITY_2 view INP
  You will define two field groups which should be displayed in the sublists SUB-1 and SUB-2.
  - The first field group is TAB_1.A, TAB_1.B, TAB_1.C and TAB_1.D
  - The other field group is TAB_1.E and TAB_1.F
  The fields are arranged in the order TAB_1.A, TAB_1.B etc. in the sublist SUB-1 and SUB-2.
  You have to define a combined mask with four folders:
  - The first folder should display all fields of the structure relation with no field of the field groups
  - The second folder should display all fields of the relation to ENTITY_2 with both field groups
  - The next folder should display all fields of the structure relation with the first field group
  - The last folder should display all fields of the relation to ENTITY_2 with the second field group
  The parameters to control this behavior for the four folders are:
  - "R>ENTITY_1 STR SUB-1 /i=TAB_1.A.."
  - "R>ENTITY_2 INP SUB-2 /v=TAB_1.A.."
  - "R>ENTITY_1 STR SUB-1 /v=TAB_1.A..TAB_1.D /i=TAB_1.E.."
  - "R>ENTITY_2 INP SUB-2 /v=TAB_1.A..TAB_1.D /i=TAB_1.E,TAB_1.F"
  The example shows several formats to define the field groups.

int bvb_usx_cns_frm_lis | ( | ) |

Opens the combined mask corresponding to the passed name of the constraint.

Parameters:

  cp_par | Parameter, analogue to iwf_frm_lis().

Returns:
  return code of iwf_frm_lis()

int bvb_usx_opn_agg | ( | ) |

Opens the aggregate list or (combined) aggregate form.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "entity view [/EDB-L=edb-list [/EDB-F=edb-form[...]]] [/NO_MAINFORM] [/FORCEFORM] [@>]" With possible arguments:
  entity |  | Name of entity.
  view |  | Name of view.
  EDB-L | edb-list | If this option is chosen, this mask will be used to open a list.
  |  | If this option is not chosen, the standard list will be used.
  EDB-F | edb-form | If this option is chosen, this mask will be used to open a form.
  |  | If this option is not chosen, the standard form will be used.
  NO_MAINFORM |  | Flag for (combined) forms to define, that this is not the main form. This means that it is necessary to replace the sublist with the main group of fields (-> main form) to be able execute some operations (like insert, update etc.). See also option MAINFORM of userexit bvb_usx_cmb_rpl().
  FORCEFORM |  | Opens form independent of defaults.
  @> |  | Opens the first sublist.

Returns:
  Return-Code of function iwf_lis_agg() or iwf_frm_agg()

Example:

        // working example
        int iRc = bvb_usx_opn_agg("EDB-ARTICLE STR /EDB-L=EDB-ART-DOC-ALI /EDB-F=EDB-ART-DOC-ASR @>");

int bvb_usx_opn_ent | ( | ) |

Opens the entity list or (combined) entity form.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "entity [/EDB-L=edb-list [/EDB-F=edb-form[...]]] [/NO_MAINFORM] [/FORCEFORM] [@>]" With possible arguments:
  entity |  | Name of entity.
  EDB-L | edb-list | If this option is chosen, this mask will be used to open a list.
  |  | If this option is not chosen, the standard list will be used.
  EDB-F | edb-form | If this option is chosen, this mask will be used to open a form.
  |  | If this option is not chosen, the standard form will be used.
  NO_MAINFORM |  | Flag for (combined) forms to define, that this is not the main form. This means that it is necessary to replace the sub-list with the main group of fields (-> main form) to be able to execute some operations (like insert, update etc.). See also option MAINFORM of userexit bvb_usx_cmb_rpl().
  FORCEFORM |  | Opens form independent of defaults.
  @> |  | Opens the first sublist.

Returns:
  Return-Code of function iwf_lis_ent() or iwf_frm_lis()

Example:

        // working example
        int iRc = bvb_usx_opn_ent("EDB-ARTICLE /EDB-L=EDB-ART-SLI /EDB-F=EDB-ART-SFR @>");

int bvb_usx_opn_ref | ( | ) |

Opens the refine list or (combined) refine form.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "entity view [/EDB-L=edb-list [/EDB-F=edb-form[...]]] [/NO_MAINFORM] [/FORCEFORM] [@>]" With possible arguments:
  entity |  | Name of entity.
  view |  | Name of view.
  EDB-L | edb-list | If this option is chosen, this mask will be used to open a list.
  |  | If this option is not chosen, the standard list will be used.
  EDB-F | edb-form | If this option is chosen, this mask will be used to open a form.
  |  | If this option is not chosen, the standard form will be used.
  NO_MAINFORM |  | Flag for (combined) forms to define that this is not the main form. This means that it is necessary to replace the sublist with the main group of fields (-> main form) to be able to execute some operations (like insert, update etc.). See also option MAINFORM of userexit bvb_usx_cmb_rpl().
  FORCEFORM |  | Opens form independent of defaults.
  @> |  | Opens the first sublist.

Returns:
  Return-Code of function iwf_lis_ref() or iwf_frm_ref()

Example:

        // working example
        int iRc = bvb_usx_opn_ref("EDB-ARTICLE STR /EDB-L=EDB-ART-DOC-ALI /EDB-F=EDB-ART-DOC-ASR @>");

int bvb_usx_opn_typ | ( | ) |

Opens the type list or (combined) type form.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "entity view [/EDB-L=edb-list [/EDB-F=edb-form[...]]] [/NO_MAINFORM] [/FORCEFORM] [@>]" With possible arguments:
  entity |  | Name of entity.
  type |  | Name of type.
  EDB-L | edb-list | If this option is chosen, this mask will be used to open a list.
  |  | If this option is not chosen, the standard list will be used.
  EDB-F | edb-form | If this option is chosen, this mask will be used to open a form.
  |  | If this option is not chosen, the standard form will be used.
  NO_MAINFORM |  | Flag for (combined) forms to define, that this is not the main form. This means that it is necessary to replace the sublist with the main group of fields (-> main form) to be able to execute some operations (like insert, update etc.). See also option MAINFORM of userexit bvb_usx_cmb_rpl().
  FORCEFORM |  | Opens form independent of defaults.
  @> |  | Opens the first sublist.

Returns:
  Return-Code of function iwf_lis_typ() or iwf_frm_typ()

Example:

        // working example
        int iRc = bvb_usx_opn_typ("EDB-ARTICLE STR /EDB-L=EDB-ART-DOC-ALI /EDB-F=EDB-ART-DOC-ASR @>");

int bvb_usx_son_set_fat | ( | ) |

Sets a selected record of the sublist as parent record of the combined mask.

This record will be displayed in the header form.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "C> tab1.key1[,tab1.key2,...] tab2.key1[,tab2.key2,...]" "R> entity" "A> entity" With possible arguments:
  entity | Name of first entity.
  tabx.keyx | Key field(s) of first or second entity.

Returns:

  0 | OK
  Else | Error

static int jcl_cre_url | ( | ) | `[static]`

This userexit creates a url to execute a pre-defined task.

The tasks are defined in the Privilege list. As default, there are four TASKs defined:
OPN-EDB-ARTICLE open items
OPN-EDB-DOCUMENT open documents, with which the default document mask (All Documents) will be used
OPN-EDB-PROJECT open projects
OPN-EDB-WRK-ORD open work orders

There are two configuration parameters defined for base URL: EDB-JCL-URL-INTERN and EDB-JCL-URL-EXTERN in system, which are used to set up the internal and external base URLs.

Parameters:

  cpParameter | the parameter for userexit. Syntax: "[TASK] [/TYPE={I,E}]" With possible arguments:
  TASK | (optional) the privilege name. Default is "OPN-" + entity name of the object.
  TYPE | (optional) the type of base URL (internal or external). The valid values are I and E. If the TYPE value is not set: for standalone JavaClient, E is default, for JavaClient via Java Web Start, the codebase will be used.
  I | use the internal base URL: EDB-JCL-URL-INTERN.
  E | (default) use the external base URL: EDB-JCL-URL-EXTERN.
  cpIgn | Reserved

Returns:

  0 | OK
  1 | No such task
  2 | No code base url found
  3 | Illegal arguments
  4 | Option value is invalid
  5 | Base url is invalid

Example:

        // working example
        int iRc = jcl_cre_url(OPN-EDB-ARTICLE /TYPE=I) ;

int sig_chg_pwd | ( | ) |

Changes the password of the selected private key by using a password dialog.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int sig_cre_sgn_men | ( | ) |

Creates a digital signature of a data record.

The function get the private key and the certificate of the current user for the selected usage of the key. The user have to authenticate themself via password. The created digital signature will be stored into the database. The configuration data for the function is stored in the configuration table (EDB-SIG).

Parameters:

  cpPar | Parameter to control the behaviour of this function. Syntax like: "/USAGE=type /ADDITIONAL=object /OBJ=object" with possible arguments:
  USAGE | type | Available usage types: "RELEASE" Signing on release. "EMAIL" Not supported jet. "NETMEETING" Not supported jet.
  ADDITIONAL | object | Additional usage (specialize): Standards for RELEASE: "ART" = Use only for items. "DOC" = Use only for documents. "PRO" = Use only for projects. "NONE" = Default.
  OBJ | object | Entity option: "AUTO" = automatic check for the actual entity. "ART" = EDB-ARTICLE. "DOC" = EDB-DOCUMENT. "PRO" = EDB-PROJECT.
  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 sig_imp_cer | ( | ) |

Imports a certificate file.

The userexit uses the configuration parameter EDB-SIG-CER-PATH to get the base path of the certificate tranfer directory.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_imp_key | ( | ) |

Imports a private key.

The useexit uses the configuration parameter EDB-SIG-KEY-PATH to get the base path of the key tranfer directory.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_imp_p12_cer | ( | ) |

Imports a certificate from a private exchange file.

The userexit uses the configuration parameter EDB-SIG-CER-PATH to get the base path of the certificate tranfer directory.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_imp_p12_key | ( | ) |

Imports a private key from a private exchange file.

The userexit uses the configuration parameter EDB-SIG-KEY-PATH to get the base path of the key tranfer directory.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_loc_key | ( | ) |

Locks the selected key record.

A locked key cannot be used to sign data.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_set_tmp_pwd | ( | ) |

Stores the temporary password of the given user into a temporary buffer.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int sig_shw_cer | ( | ) |

Shows the main data of a certificate in a form.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int sig_shw_win_cer | ( | ) |

Shows a certificate by using the Windows ActiveX component.

The certificate is exported to a temporary directory on client side. The userexit calls the Certificate ActiveX component with the exported certificate file.

Note:
  The certificate will not be removed!

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_unl_key | ( | ) |

The userexit unlocks a locked key record.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | OK
  Else | Error

int sig_usr_pra | ( | ) |

Selects the keys of the current user.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int tol_select | ( | ) |

Select-menu userexit to calculate fields of the current mask.

Parameters:

  cp_par | Reserved

Returns:

  0 | OK
  Else | Error

The records of the current mask will not be written (into the database) from this function - unless a calling userexit (written by yourself) does it. Therefore it usually makes only sense to write calculatory fields of the current mask.

int xartic_bom | ( | ) |

Select-menu userexit to open the list containing child items for the currently selected item.

For variants (column `TYP` has value "VAR"), the new title for the list (Message "EDB-VAR-STR-TIT") is determined. Call `xctx_set_nxt` (with the set context value) to perform a pre-selection according to the context.

Parameters:

  CpPar | Parameter to open the relation list. Syntax like: "entity2 view [/CTX=context]"

with possible arguments

entity2 | entity name | Name of the second entity for the relation.
view | view name | Name of the view for the relation.
CTX | context id | Specifies the context id for the child items. `context` can be one of the defined contexts (e.g. `PRD`, `DSG`). To open a list with all child items ignoring the context filter, a dash '-' can be passed as context id.

Returns:

  0 | OK
  1 | No record has been selected
  else | Return code of `iwf_lis_ref`

See also:
  xctx_set_nxt

int xartic_var_agg | ( | ) |

Select-menu userexit to open variant list for selected item.

Parameters:

  cp_Par | Parameter to open relation list. The parameter is passed to `iwf_lis_ref`. If no parameter is provided, the standard list and the view `ATT` will be used.

Returns:

  0 | OK
  else | Return code from `xtyp_typ_agg`

int xase_cfg_brw | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Opens browser configuration for a single selected element in the heterogeneous structure configuration list.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Reserved.

Returns:

  0 | OK

int xase_cfg_ent | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Opens entity form for a single selected element in the heterogeneous structure configuration list.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Reserved.

Returns:

  0 | OK

int xase_cfg_fld | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Opens field mapping list for a single selected element in the heterogeneous structure configuration list.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Reserved.

Returns:

  0 | OK

int xase_cre_tab_vie_sel | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Creates temporary table and view for selected heterogeneous structure use cases.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Reserved.

Returns:

  0 | OK

int xase_fil_tab | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Fills temporary heterogeneous structure table for usecase.

The data is read from the browser configuration (entry with same name as usecase).

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Reserved.

Returns:

  0 | OK

int xase_opn_frm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Opens the corresponding form for selected record.

Parameters:

  usxCtx | Menu userexit context.
  param | Reserved.

Returns:

  0 | No error

int xase_shw_hie | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Opens heterogeneous structure explosion list for a single selected element.

The heterogeneous structure configuration for use case "/USE" is used. If "/NO_ROOT" option is set then the top element is not included in the structure explosion list. If "/NO_MASKLIMIT" option is set then the whole structure explosion list will be shown even if the record number exceeds the mask limit.

Parameters:

  usxCtx | Menu userexit context.
  param | /USE=<useCaseName> [/NO_ROOT] [/NO_MASKLIMIT]

Returns:

  0 | OK
  1 | Use case not found.

int xchg_asg_obj | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Assigns selected objects to a Work Set.

If one of the objects is already assigned to a Work Set, an error message is printed and nothing is changed.

Otherwise, a dialog allows the user to select the new Work Order/Work Set combination. A new change operation of the type `ASSIGN` is created, and all selected objects will refer to this change operation via their FROM link.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

Exceptions:

  IllegalArgumentException | The object is not controlled by the Change Management

int xchg_ask_nxt_sta | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Displays possible next states for an object.

Menu userexit which calls the appropriate userexit of the Release Management to show the possible next states of an object.
This userexit can be attached to any entity or relation.
Depending on the change management settings and the type of the object, it calls either:

If the object is an entity | `xstate_ask_nxt_sta()` or `xstr_ask_nxt_sta()`
If the object is a relation | `xstate_ask_nxt_sta()`

Further the Change Management configuration is checked:

- If Change Management is not enabled for the relation, `xstate_ask_nxt_sta()` is called to query the possible next states of the child object.
- Otherwise, it is checked if the field `LEV_IND` from the structure table is available in the mask.
  - If this field is not available, again `xstate_ask_nxt_sta()` is called.
  - If the field is available, `xstr_ask_nxt_sta()` is called to query the possible next states of the relation.

Parameters:

  context | The userexit context.
  param | The userexit parameters. This parameter is simply passed to xstate_ask_nxt_sta()/xstr_ask_nxt_sta().

See also:
  xstate_ask_nxt_sta(), xstr_ask_nxt_sta()

int xchg_det_aff_prd | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to determine affected products of a Work Set.

This menu trigger performs the Change Impact Analysis (CIA). The context may contain several selected Work Sets. The CIA is called for each selected Work Set and the impact-analysis date as well as the impact-analysis-required attribute is refreshed.

Parameters:

  context | The context of this trigger.
  param | Reserved

Returns:

  0 | OK
  else | Error

The following scenarios shall be covered at least:

- Setwise and non-setwise changes must create a conflict if overlapping. EWS-1 affects P2 only, EWS-2 affects P2 and P4. Thus, a conflict for P4 must be reported after CIA of EWS-1 and EWS-2.
- Even products that don't have a top element must be affected. Thus, after CIA of EWS-0 P1 shall be affected in EWO-0.
- Affected objects of inhomogeneous relations (e.g. item/document) must be handled correctly. Thus, affected products of EWS-3 are P2 and P4.
- Replace-All operations must affect all relations of the concerned object. As long as the replace-all operation is not specified, affected products of EWS-1 are P1, P2, P3 and P4. After the specification only P2 is affected.
- Affected products of an EWR or EWO must be adjusted if the affected objects of a Work Set change and the CIA is executed. Thus the conflict of EWS-1 and EWS-2 must disappear if the specified replace-all operation is undone and CIA is performed.
- The effectivity of relations must be considered correctly. The special view 'all objects that are not yet ineffective' must be used.
- The "CIA date" and "CIA required" attributes must be set correctly. For instance, the "CIA required" attribute of EWS-1 must be true, if the specified replace-all operation is undone.
- Affected products are assigned to the EWR (if it's not released) or to the EWO (if the EWR is already released).
- The impact analysis can be executed as often as the user desires.

int xchg_ewr_del | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Deletes the currently selected Work Request(s).

DataView's trashbasket must be empty. Otherwise the user will get an appropriate error message and the userexit is aborted.

If the Change Management is not activated this userexit simply calls DataView's iwf_del_lis(). Otherwise the deletion of the initially assigned preliminary Work Order is triggered.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xchg_ina_obj | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Inactivate selected objects.

If the first selected object is a relation record, the action is handled by Change Management's high sophisticated combined form (so called monster form).

If this is not the case and one of the master records is already assigned to a Work Set, an error message is printed and nothing is changed.

Otherwise, a dialog allows the user to select the new Work Order/Work Set combination. A new change operation of type `INACTIVATE` is created, and all selected master records will refer to this change operation via their UNTIL link.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xchg_log_opr_und | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Undo the currently selected change operation.

Exactly one change operation must be selected to call this userexit and DataView's trashbasket must be empty. Otherwise the user will get an appropriate error message and the userexit is canceled.

If all prerequisites are fulfilled, all changes that are caused by the selected change operation are undone.

Parameters:

  context | The context of the userexit
  param | Parameter to control the behavior of this function. Syntax like: "[/CONFIRMATION]" With possible arguments:
  CONFIRMATION |  | The user is asked to confirm the undo process.
  |  | If this option is not passed, the operation is undone without confirmation.

Returns:

  0 | OK
  Else | Error

int xchg_nxt_sta | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Change the state of an object.

Menu userexit which calls the userexit of the Release Management to change the state of an object.
This userexit can be attached to any entity or relation.
Depending on the Change Management settings and the type of the object it is attached to, it calls either `xstate_nxt_sta()` or `xstr_nxt_sta()`:

- If the object is an entity, `xstate_nxt_sta()` is called.
- If the object is a relation, the Change Management configuration is checked:
  - if the Change Management is not enabled for the relation, `xstate_nxt_sta()` is called to change the state of the child object.
  - Otherwise, it is checked if the field `LEV_IND` from the structure table is available in the mask.
    - If this field is not available, again `xstate_nxt_sta()` is called.
    - If the field is available, `xstr_nxt_sta()` is called to transfer the state of the relation.

Parameters:

  context | The userexit context.
  param | The userexit parameters. This parameter is simply passed to xstate_nxt_sta() / xstr_nxt_sta().

See also:
  xstate_nxt_sta(), xstr_nxt_sta()

int xchg_opn_crr_lis | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to open the correction list of the selected change operation.

This select-menu userexit opens the constraint list to show the corrections of a selected change operation.
The userexit executes the following checks:

- Checks the correction flag and prints a message (EDB-CHG-NO-CRR-FLG) if the change operation was not corrected.
- Checks if one record is selected and prints a message (EDB-BAS-SEL-ONE-REC) on multi selections. The used list mask can be configured.

Parameters:

  context | The context of the userexit
  param | The information to open the constraint list (iwf_cns_lis).

Returns:

  0 | OK
  1 | More than one record selected

Example:

       int iRc = xchg_opn_crr_lis("<EDB-CHG-LOG-EWR-CRC EDB-CHG-OPR-CRC-SLI");

int xchg_opr_del_obj | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Deletes the currently selected object(s) as provided by the context object.

This userexit is the default delete userexit called if a change operation is undone. It simply removes all records from the database that are provided as selected rows by the passed context object.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xchg_opr_mov | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Moves one or more selected change operations to another Work Set.

Opens a form to select the Work Set and reassign the selected change operations to this set.

If a selected operation has a parent operation, the user is asked to confirm the operation.

Add the option /SEL_EWO to allow the user to select a new Work Order, too. If this option is omitted, the Work Order is fixed.

Caution: Changing the Work Order is considered to be a manager functionality, so it should not be presented to a standard end user.

Virtual mode:
  In virtual mode, the current default Work Set and Work Order is used.

Parameters:

  context | The menu userexit context
  param | Parameter to control the behavior of this function. Syntax like: "[/SEL_EWO|/NO_CONFIRMATION]" If the option /SEL_EWO is specified, the user may choose a new Work Order. If the option /NO_CONFIRMATION is specified, the confirmation dialog is not displayed when related change operations are moved.

Returns:

  0 | OK
  Else | Error (no record selected)

Example:

         int iRc = dal_usx_cal_typ(NULL, "xchg_opr_mov", "/SEL_EWO", dal_USXTYPE_MENUSELECTION);

int xchg_sel_ord | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Open a selection widget to search and select the default EWO.

This userexit is usually used for select menus. It opens the modal selection dialog 'EDB-EWO-ORD-SEL-SLI' and copies the current values of alias id, organization id and alias version to the query buffer. Then the dialog is refreshed and displayed in selection mode.

The context may contain several selected rows, but only the first selected row is used to read the alias and organization values.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

- The cooperation partner functionality shall work correctly.
- Check the functionality of 'Take Entry' and 'ESC' button.

int xchg_set_cre_id | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Userexit that calls the "Create persistent ID" userexit for all preliminary objects assigned to a Work Set.

Exactly one Work Set must be selected as otherwise the user will get an error message and the execution of this userexit is aborted.

The default implementation removes the preliminary flag of the assigned objects and corrects the current flag of the predecessor (see CRM ). A specific implementation may be defined by the customizer to control the creation of persistent IDs. In this case the default implementation does nothing except managing the preliminary and the current flag.

Parameters:

  context | The context of the userexit
  param | [/NO_CURFLAG] if /NO_CURFLAG option is set then the correction of the current flag of the predecessor is not done (not recommended!).

Returns:

  0 | OK
  Else | Error

int xchg_upg_obj | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Upgrades legacy data for the Change Management.

If one of the objects is already assigned to a Work Set, an error message is printed and nothing is changed.

Otherwise, a dialog allows the user to select the new Work Order/Work Set combination. A new change operation of the type `UPGRADE` is created, and all selected objects will refer to this change operation via their FROM link.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcnf_ord_bom_del | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-Menu userexit to delete an order BOM.

Parameters:

  param | Parameter to control the behavior of this function. Syntax is: "[/NOASK]" With possible arguments:
  NOASK | - | If the parameter NOASK is passed to the userexit, the user will not be asked before Order BOM will be deleted.

Returns:

  0 | OK
  1 | Error

int xcnf_ord_bom_exp | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-Menu userexit for exploding the order BOM from the order widget.

If parameter is empty then following string is used to open the order BOM explosion "EDB-CPS-ELEMENT EDB-ORD-ELM-HIE-CFR E>EDB-CPS-ELM-HIE EDB-EFF-ELM-HIE-SLIC". The order BOM explosion is executed by stored procedure EPQ_EDB_EFF_ELM_BOM.

Parameters:

  param | Parameter to control the behavior of this function. Syntax is: "[/HIER=openString][/BOM=bomFlagValue]" With possible arguments:
  HIER | openString | String to use as input parameter for iwf_frm_lis to open the order BOM explosion widget instead of the default string (EDB-CPS-ELEMENT EDB-ORD-ELM-HIE-CFR E>EDB-CPS-ELM-HIE EDB-EFF-ELM-HIE-SLIC).

int xcol_cre_art_ntr | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Create a neutral item from an item master by retrieving a unique number from the number server and set the field TYP to VARATT.

Parameters:

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

Returns:
  the error code (0 = ok)

int xcopm_start_mmn | ( | ) |

Copies elements of a path to a new revision or to a new number.

The beginning and end of the path will be defined interactively by listing the top elements of a selected record. With the parameter /STOP it is possible to define some cancel conditions. If an element in the path matches the cancel condition this element will be the end of the path to be copied. By default, the whole path is copied. The parameter /CPAR controls the behavior of the functions which copies the path elements to new versions or numbers. The parameter /UPAR controls the behavior of the function which lists the parents of an element.

Parameters:

  cpParameter | Parameter to control the behavior of this function. Syntax like: "/MOD={N|V} [/STOP=<lgv>] /CPAR=<def> /UPAR=<def>" With possible arguments:
  MOD | N | Copy to new number.
  | V | Copy to new revision.
  STOP | lgv | Decision table to check cancel condition for copy process. Format: LogicModel BLANK DecisionTable.
  CPAR | def | Name of default entry which contains parameters for function xcpy_str() or xedb_dup_ref().
  UPAR | def | Name of default entry which contains parameters for function for xedb_usage_ver().

Returns:

  0 | OK
  -1 | User cancelled
  1 | No selected record found
  2 | More than one record selected
  3 | Required parameter /MOD not found
  4 | Required parameter /CPAR not found
  5 | Default-entry not found for parameter /CPAR
  6 | Required parameter /UPAR not found
  7 | Default entry not found for parameter /UPAR
  9 | Error creating path of the elements to be copied
  10 | Error checking path elements for cancel condition
  11 | First element of path matches cancel condition
  12 | Error during 'copy modify' of path
  13 | No authorization to copy elements

int xcpa_cpy_ali | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Copies the Alias IDs for an object if a new revision is created.

This userexit is intended to be used in the object specific Logic Model procedure <object name>="">_VerPost from the Logic Model EP_CPY. These procedures are called after creating a new revision of a record.

Parameters:

  parameter |
  /OBJ_ENT | Name of the entity e.g. EDB-ARTICLE
  /ALI_ENT | Name of the corresponding Alias ID entity, e.g. EDB-CPA-ARTICLE where Alias IDs are stored.
  /ORI_CID | Internal unique system identifier C_ID from the original record. This value is stored in the Logic Model variable EP_CPY_CID_ORG.
  /DUP_CID | Internal unique system identifier C_ID from the new record. This value is stored in the Logic Model variable EP_CPY_CID_DUP.

Example:

       30             if (EP_CPY_CID_DUP>0)
       40               RES = @xcpa_cpy_ali(strcat("/OBJ_ENT=EDB-ARTICLE /ALI_ENT=EDB-CPA-ARTICLE  /ORI_CID=",strprint("%i",EP_CPY_CID_ORG),"  /DUP_CID=",strprint("%i",EP_CPY_CID_DUP)))
       50               CheckResult()
       60             endif

Returns:

  0 | OK
  Else | Error

See also:
  See Logic Model procedure EP_CPY/EDB_ARTICLE_VerPost

int xcpa_cpy_col_itm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Special copy function for items, copies an Item and additionally the value of the default Alias ID.

This userexit could only be used for objects that support Alias IDs.

Returns:

  0 | OK
  Else | Error

Parameters:

  cpParameter | Standard menu parameter (reserved)

int xcpa_set_default_men | ( | ) |

Menu userexit to set the default (field C_DEFAULT) of the Alias IDs in the different CPA objects (for example T_CPA_ART_DAT or T_CPA_DOC_DAT).

Parameters:

  param | Additional argument string (reserved).

Returns:

  0 | OK.
  1 | Error from epq.
  2 | Field not found.
  3 | No record selected.
  4 | No record selected.
  5 | Too many records selected.
  6 | No widget is active.

Menu userexit to set the default Alias ID.

int xcps_cmp_opn_frm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for product structure element forms.

Opens a neutral or modular product component form. If a product structure element was created for a modular BOM the modular BOM form will be used to display the product component else the neutral BOM form. The function to open the form and the forms itself are configurable.

Parameters:

  context | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax like: "/USX=<opn_usx> /NTR=<ntr_form> /MDL=<mdl_form>" With possible arguments:
  USX | opn_usx | Userexit to open a neutral or modular BOM form (e.g. bvb_usx_opn_ent)
  NTR | ntr_form | Parameter to open a neutral BOM form
  MDL | mdl_form | Parameter to open a modular BOM form

Returns:

  0 | OK
  Else | Error

int xcps_elm_tak | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the modular BOM product structure element selector.

The userexit implements the "Take entry" functionality for the product structure element selector. The userexit uses the selected element to execute the current move or copy operation of the element selector.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_flt_att_men_sel | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Choose menu userexit for filter masks.

Writes the attribute data of the choosen attribute into the filter record and updates the temporary field values.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_grp_cmp_rst_eff | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for classification - product component relation masks.

The userexit sets the selected record ineffective.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_grp_cmp_set_eff | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for classification - product component relation masks.

This userexit sets the selected record effective.

Parameters:

  context | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/MASK=list /CHK_RLS=[0|1]" With possible arguments:
  MASK | list | Name of list to use for a product family/product component relation. If not set, the list EDB-CNF-GRP-CMP-RLI is used.
  CHK_RLS | 0 | No check necessary.
  | 1 | Check that assigned product component is released before you set relation effective.

Returns:

  0 | OK
  Else | Error

int xcps_grp_del_var_inf | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for product family masks.

Removes the variant information of the assigned product components from the variant cache. The product variant cache is used to optimize the creation of the product variant select-menu in the variant sub lists of the modular BOM.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_bom_shw | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for product component / product structure element masks.

Opens the multilevel modular structure for a product component (similar to the structure explosion but now for constraints).

Parameters:

  context | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax is: "[/ALL][/EDB_ID=<edbid>][/LIST]" With possible arguments:
  ALL |  | If the option is set then the complete modular BOM explosion elements are displayed. If the option is not set then only modular BOM explosion elements are displayed which have assigned solutions (and all level above).
  EDB_ID | edbid | Execute structure explosion for element with T_CPS_ELM_DAT.EDB_ID=<edbid>.
  LIST |  | Use list instead of combined form.

Returns:

  0 | OK
  Else | Error

int xcps_mdl_cpy_elm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the product element structure list.

Copies the element to another position within the CPS. The element selector is used to detemine the destination position.
The element, all sub elements and the solutions will be copied.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_dup_elm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the product element structure list.

Copies the element to another position within another CPS. The element selector is used to detemine the destination position.
The element and all sub elements will be copied.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_jmp_dwn | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the modular product component sublist "Where Used".

Puts the selected record to the main form of the combined modular product component widget.

Parameters:

  context | Menu userexit context
  param | Reserved

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_mdl_jmp_up | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the modular product component sublist "Structure".

It puts the selected record to the main form of the combined product component widget.

Parameters:

  context | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/ENT=<ent_nam> /MASK=<usx_par>" With possible arguments:
  ENT | ent_nam | Entity name
  MASK | usx_par | bvb_usx_opn_ent parameter to open form.

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

Example for parameter in sublist "Structure" in "Product Component - Modular" form:

        /ENT=EDB-CPS-ELEMENT /MASK="EDB-CPS-MDL-CFR @> /FORCEFORM"

int xcps_mdl_mov_dwn | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the combined module structure widget.

Moves the parent record to the main record module widget. By providing a parameter this userexit can handle other structures (e.g. Parallel structures), too.

Note:
  If the parameter is empty then following default values are valid: src_fld: V_CPS_CMP_ELM.EDB_ELM_ID pos_fld: V_CPS_CMP_ELM.POS_NO trg_fld: T_CPS_ELM_DAT.EDB_ID

Parameters:

  context | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax is: "[/SRC=<src_fld> /POS=<pos_fld> /TAR=<trg_fld>]" With possible arguments:
  SRC | src_fld | Source field name
  POS | pos_fld | Position field name
  TAR | trg_fld | Target field name

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_mdl_mov_elm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the product element structure list.

Moves the element to another position within a CPS. The element selector is used to detemine the destination position.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_mdl_mov_up | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the modular product component sublist "Structure".

Puts the selected record to the main form of the module element widget.

Parameters:

  context | Menu userexit context
  param | Reserved

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_ntr_bom_shw | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to show the hierarchy of a neutral product component.

Opens a multi-level structure explosion widget.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  1 | Error

int xcps_ntr_cop_str | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to copy the product structure element with its relations.

The product structure element itself and its relations to document and filter objects are copied.
If "sel" is given then a dialog is opened where the user can select which relations should be copied.

Parameters:

  context | Menu userexit context
  cpArguments | Parameter to control the behavior of this function. Syntax like: "{sel | all}" With possible arguments:
  sel | Copies selective relations
  all | Copies all relations

Returns:

  0 | OK
  1 | Error

int xcps_ntr_jmp_dwn | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for neutral product component sublist "Where Used".

Puts the selected record to the main form of the combined neutral product component widget.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  EDB_CPS_INTERNAL | No widget
  EDB_CPS_NO_ACT_ROW | No current row

int xcps_ntr_jmp_up | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for neutral product component sublist "Structure".

Puts the selected record to the main form of the combined product component - neutral widget.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  EDB_CPS_INTERNAL | No widget
  EDB_CPS_NO_ACT_ROW | No current row

int xcps_ntr_mov_dwn | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for combined neutral product structure element form.

Moves the parent record to main record product structure element widget.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  EDB_CPS_INTERNAL | No widget
  EDB_CPS_NO_ACT_ROW | No current row

int xcps_ntr_mov_up | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the sublist "Structure" of a combined product structure element form.

Puts the selected record to the main form of the combined product structure element widget.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  EDB_CPS_INTERNAL | No widget
  EDB_CPS_NO_ACT_ROW | No current row

int xcps_opn_cmp_str_brw | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the browser mask.

Gets the EDB_ID of the product structure element and writes it as query criteria in the product structure element list (field T_CPS_ELM_DAT.EDB_STR_REF).
This userexit is used in the browser mask (EDB-CPS-MLD-STR) to get the product structure elements for a product component.

Parameters:

  context | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax like: "usx_par" With possible arguments:
  usx_par | Userexit parameter for iwf_lis_ent to open browser mask e.g. EDB-CPS-ELEMENT EDB-CPS-MDL-STR-SLB or EDB-CPS-ELEMENT EDB-CPS-NTR-STR-SLB

Returns:

  0 | Ok
  Else | Error

int xcps_opn_sol_brw | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to open the browser mask for solution space for a product structure element.

The userexit gets product component EDB_ID of field V_CPS_ELM_ITM.EDB_CMP_REF for selected browser element, opens the browser list passed as parameter by iwf_lis_ent and writes the product component EDB_ID in the constraint field T_CPS_ELM_DAT.EDB_CMP_REF.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_prl_cpy_str | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to copy complete assigned parallel structure.

Copies the constraint product component - parallel structure and copies sub-structure of the parallel structure and its module relations. The method calls "xcpy_str" to copy the parallel structure node element and then copies the sub-elements with their assigned modules. To copy the parallel structure node relations the form provided by "/NOD" parameter is used (in the standard dump the value is "/NOD=EDB-CPS-PRL-TOP-STR"). If "all" parameter is passed then the relations to modules are copied. If "sel" parameter is passed then the user is asked if the relations to the module should be copied, too. To store the user decision, the LGV system variable EP_PRL_NOD_ELM is used.

Note:
  Configuration parameter EDB-CPS-PRLNODE-REL is used by xcpy_str.

Parameters:

  context | Menu userexit context
  cpParameter | Parameter to control the behavior of this function. Syntax is: "[all|sel] /NOD=name_of_node_widget" With possible arguments:
  | all | Copy parallel structure nodes and assigned module relations.
  | sel | Copy parallel structure nodes and ask for copy of assigned module relations.
  NOD | name | Name of node widget.

Returns:

  0 | OK
  1 | Error

See also:
  xcpy_str

int xcps_prl_mov_dwn | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit for parallel structure node widgets.

Navigates upwards the parallel structure node hierarchy. If the top level is reached, the userexit opens the parallel structure form for the top element.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK

int xcps_prl_shw_bom | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit for parallel structure widgets.

Opens structure explosion widget for parallel structure.

Note:
  Widget is opened with iwf_lis_ent("EDB-CPS-PRL-HIE-VIE EDB-CPS-PRL-HIE-SLI").

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK

int xcps_prl_shw_ord_bom | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit for order BOM parallel structure widgets.

Opens the structure explosion widget for order specific parallel structure.

Note:
  Widget is opened with bvb_usx_opn_ent("EDB-ORDER /EDB-F=EDB-CPS-PRL-ORD-BOM @>").

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK

int xcps_rsl_itm | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to resolve items within the modular BOM overview.

The userexit resolves item master entries to the current item revision entry.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_rsl_ref | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu trigger to resolve the references of a conceptual product structure.

Resolves the full multi-level structure of a modular BOM and displays the data in a multi-level BOM form.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_rsl_ref_pos | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu trigger to resolve the references of a CPS position.

Resolves the full multi-level structure of a modular structure element and displays the data in a multi-level BOM form.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_set_cur_prd | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for classification list to set the default EDB-CPS-SOL-PRD.

Sets the PART_ID of the current item to the default value EDB-CPS-SOL-PRD.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_set_man_typ | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to toggle the value for the mandatory flag.

The userexit is used in the sub-list "Structure" of product component widget (Neutral) to toggle the value of mandatory flag.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  1 | Error

int xcps_sol_opn_mul | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for multi-edit solution list.

The userexit opens the multi-edit solution list and writes the EDB-ID of the selected product structure element into the widget buffer.

Parameters:

  context | Mask userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

int xcps_vrf_bom_pos | ( | const char * | param,
|  | const char * | ignore
| ) |  |

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 xcps_vrf_cpl_bom | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to verify an item with its complete BOM.

Checks if the item has the verify structure flag set. In this case the BOM will be verified against the conceptual product structure of the 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 | Menu userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/PRD|/DEV [/SOFT][/STRICT][/SILENT][/ANALYSE]" With possible arguments:
  PRD | Verifies in production view.
  DEV | Verifies in development view (default).
  SOFT | Not released BOM positions are allowed.
  STRICT | Returns an error if verification fails. |  | SILENT | Do not print any messages.
  ANALYSE | Uses step-by-step algorithm for verification and displays all verification messages.

Returns:

  0 | OK
  1 | Verification failed (only if option /STRICT is set)

int xcps_vrf_sgl_bom | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Pre-transition userexit for items.

If the structure of an item is verified the BOM positions will be verified against the effective conceptual product structures for the 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 | Transition userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/PRD|/DEV [/SOFT][/STRICT][/SILENT][/ANALYSE]" With possible arguments:
  PRD | Verifies in production view.
  DEV | Verifies in development view (default).
  SOFT | Not released BOM positions are allowed.
  STRICT | Returns an error if verification fails. |  | SILENT | Do not print any messages.
  ANALYSE | Uses step-by-step algorithm for verification and displays all verification messages.

Returns:

  0 | OK
  1 | Verification failed (only if option /STRICT is set)

int xcpy_agg | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Copies all aggregate relations defined by a surrounding xcpy_str call.

Copying is either done via direct EPQ access (using the function `xedb_dup_rel`), or relation records are copied in the standard refine relation widget.

Using widgets might be a little bit slower than copying with `xedb_dup_rel`, but the widget copy uses the current view and context settings, calls the appropriate mask triggers, and it is needed to support the e6 Change Management.
The standard LogiView aggregate triggers check if the relation is under Change Management control. If so, the option /USEWIDGET is passed to this method.

This method does not use the aggregate widget to copy records, because normally records cannot be inserted in the standard aggregate list. In addition, most functionality - like Change Management checks and fields - is only available in the relation list.
To copy an aggregate relation, the code opens the refine relation list of the parent record and duplicates the corresponding refine relation record.

Parameters:

  [in] | context | userexit context
  [in] | param | userexit parameter. Syntax is "<view-name> /FAT_ACCESS={0|1|2} /BOM_AGG={0|1} /USEWIDGET" with:
  view-name |  | Name of the relation view to copy
  FAT_ACCESS |  | Controls access check for parent record (default is 1)
  | 0 | No checks regarding parent access are done.
  | 1 | Write access to the parent record must exist
  | 2 | The DataView Default `EDB_REL_ACT_INS` will be evaluated: 0 - Write access on parent record needed. 1 - Access granted by decision table `EP/Insert_Str`. 2 - Both checks are done.
  BOM_AGG |  | Update the BOM/AGG flag? (default is 1)
  | 0 | No update is done
  | 1 | Attributes `BOM_FLAG` and `AGG_FLAG` are updated
  USEWIDGET |  | Copy record references in a DataView widget instead of calling `xedb_dup_rel` (which uses EPQ).

Returns:

  0 | OK
  9 | ERR_XCPY_ILL_PARAM | illegal argument passed
  12 | ERR_XCPY_ILL_HANDLE | must be called within a `xcpy_str` call
  99 | ERR_XCPY_INTERNAL | Something unexpected happened

Remarks:
  This is a wrapper function for calls to `xedb_dup_rel`.

int xcpy_ref | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Copies all refine relations defined by a surrounding xcpy_str call.

In copy reference mode - which is the mode most often used - copying is either done via direct EPQ access (function `xedb_dup_rel`), or relation records are copied in the standard refine relation widget.

Using widgets might be a little bit slower than copying with `xedb_dup_rel`, but the widget copy uses the current view and context settings, calls the appropriate mask triggers, and it is needed to support the e6 Change Management.
The standard LogiView refine triggers check if the relation is under Change Management control. If so, the option /USEWIDGET is passed to this method.

In copy element or copy tree mode, copying is always done using a widget. If the standard refine widget is not suitable, the userexit and the pre/post mask triggers can be specified.
All arguments in this mode are passed to `xedb_cop_tre`.

Parameters:

  [in] | context | userexit context
  [in] | param | userexit parameter. Syntax is: "<view-name> /MODE={R|E|T} /PRE=<usx> /POST=<usx> /BUF=<text> /OPN_USX=<usx> /BOM_AGG={0|1} /USEWIDGET" with:
  view-name |  | Name of the relation view to copy
  MODE |  | Controls how elements are copied:
  | R | Only copy references to child elements
  | E | Copy child elements themselves
  | T | Perform a recursive tree copy
  |  | If elements are to be copied (/MODE=E or /MODE='T') further options may be set for the virtual widget where the elements are created:
  OPN_USX | usx | Userexit to be used to open relation widget. This is only used in case of a tree or element copy.
  PRE | usx | Pre-Action to be set. This is only used in case of a tree or element copy.
  POST | usx | Post-Action to be set. This is only used in case of a tree or element copy.
  BUF | text | Text to be inserted into buffer of the virtual widget (key will be 'COP_BUF').
  BOM_AGG |  | Update the BOM/AGG flag? (default is 1)
  | 0 | No update is done
  | 1 | Attributes `BOM_FLAG` and `AGG_FLAG` are updated
  USEWIDGET |  | Copy relation record references in a DataView widget instead of calling `xedb_dup_rel` (which uses EPQ). This option only applies if `/MODE=R` is used, if `MODE` is `E` or `T`, the elements are always copied inside a widget.

Returns:

  0 | OK
  9 | ERR_XCPY_ILL_PARAM | Illegal argument passed
  12 | ERR_XCPY_ILL_HANDLE | Must be called within a `xcpy_str` call
  99 | ERR_XCPY_INTERNAL | Something unexpected happened

Remarks:
  Regard the possibility to copy either references or the referenced elements themselves.
  If elements are copied this will be done in a virtual widget. You may define the pre- and post-action userexit to be used (see options /PRE and /POST), otherwise the standard userexits of the widget will be executed. In this case, the function `xedb_cop_ret_val` can be used to get the internal ID (C_ID) of the copied elements.
  The function uses the mode "R" for files, because the mode "E" is not supported for file relations.
  This is a wrapper function for calls to `xedb_cop_tre` and `xedb_dup_rel`.

See also:
  xedb_cop_tre
  xedb_dup_rel

int xcpy_str | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to copy the selected element and its relations (copy with structure).

The configuration rubric 'Entity1'-REL stores all relations that can be duplicated within this userexit - for instance `EDB-ARTICLE-REL` for items.
This default definition may be changed by either specifying another configuration rubric using the parameter `SEL_FROM`, or by modifying the LogiView system variable `EP_CPY_SEL_FROM` during the Pre-Trigger (see below).

If this is a selective copy (parameter `mode` is `sel`), the user may choose from the specified set of relations.

The following LogiView functions of the `EP_CPY` logic model are called with 'Ent' as the name of the entity and 'Mode' as either `Num` for copy to new number or `Ver` for versionizing:

- 'Ent'_'Mode'Pre: The Pre-trigger
  1. EP_CPY_CID_ORG: C_ID of original element.
  2. EP_CPY_CID_DUP: 0 (not yet copied)
  The LogiView value `actual` is set to the original C_ID.
- 'Ent'_'Mode'Post: The Post trigger
  1. EP_CPY_CID_ORG: C_ID of original element.
  2. EP_CPY_CID_DUP: C_ID of duplicated element (or 0)
  The LogiView value `actual` is set to the new C_ID.

If one of these two triggers does not exist or terminates with an `exit`, the whole process is aborted and a database rollback is performed.

For each type of relation (Aggregate/Refine/Type), the following respective LogiView functions of the logic model `EP_CPY` are called with the specified system variables set to these respective values:

- 'Ent'_'Mode'Agg: The Aggregate trigger

  1. EP_ENT1: Name of entity1.
  2. EP_ENT2: Name of entity2.
  3. EP_CPY_CID_ORG: C_ID of original element.
  4. EP_CPY_CID_DUP: C_ID of duplicated element.
  5. EP_VIEW_NAME: Selection parameter.

  The default aggregate trigger calls `xcpy_agg`.

- 'Ent'_'Mode'Ref: The Refine trigger

  1. EP_ENT1: Name of entity1.
  2. EP_ENT2: Name of entity2.
  3. EP_CPY_CID_ORG: C_ID of original element.
  4. EP_CPY_CID_DUP: C_ID of duplicated element.
  5. EP_VIEW_NAME: Selection parameter.

  The default refine trigger calls `xcpy_ref`

- 'Ent'_'Mode'Typ: The Type trigger
  1. EP_ENT1: Name of entity1.
  2. EP_ENT2: Name of entity2.
  3. EP_CPY_CID_ORG: C_ID of original element.
  4. EP_CPY_CID_DUP: C_ID of duplicated element.
  5. EP_TYPE_NAME: Name of the type.
  The default type trigger calls `xcpy_typ`.

Example
  For instance, the triggers for the entity `EDB-ARTICLE` in `EP_CPY` are:

  Copy with structure | `EDB-ARTICLE_NumPre` | Pre-trigger
  | `EDB-ARTICLE_NumPost` | Post-trigger
  | `EDB-ARTICLE_NumRef` | Refine-trigger
  | `EDB-ARTICLE_NumAgg` | Aggregate-trigger
  | `EDB-ARTICLE_NumTyp` | Type-trigger
  Version with structure | `EDB-ARTICLE_VerPre` | Pre-trigger
  | `EDB-ARTICLE_VerPost` | Post-trigger
  | `EDB-ARTICLE_VerRef` | Refine-trigger
  | `EDB-ARTICLE_VerAgg` | Aggregate-trigger
  | `EDB-ARTICLE_VerTyp` | Type-trigger

If a trigger does not exist, the copy operation is aborted. The Ref/Agg/Type-triggers are responsible for calling the respective sub-function `xcpy_agg`, `xcpy_ref` or `xcpy_typ`. Otherwise, no structures will be copied at all.

Parameters:

  [in] | context | userexit context
  [in] | param | Parameter to control this function. Syntax is: "<mode> /BATCH=<lgv> /TPR /VER /SEL_FROM=<cfgRubric> /OPR=<oprType>" "/NAME={...} /FIELD_TYPE={...} /NO_DEFAULT=<field> /NO_CHK_RES /ALLOW_GLOBAL" with possible argument:
  mode |  | Define which relations shall be copied:
  | none | Copy no structure at all (this is the default)
  | sel | Copy selective structure
  | ref | Copy refine relations only
  | agg | Copy aggregate relations only
  | all | Copy all relations
  BATCH | lgv | Copy element in batch mode instead of an interactive copy. If set, 'lgv' is the name of a LogiView decision table / procedure to be called (especially to set the elements name). To separate the name of the logic model and the decision table / procedure a '-' may be used.
  TPR | Automatic item assignment (tpr_doc_art_men) is called for new version of item (not available if parameter /BATCH is set).
  VER | mode | Versionize the selected element and use the given mode to copy file references:
  | FIL_IS_MDT | The file reference is always copied.
  | FIL_IS_OPT | The file reference is copied if user selects.
  | FIL_IS_IGN | The file reference is never copied.
  | empty | Behave like EDB234: don't copy if mode == none always copy if mode == all or sel
  SEL_FROM | cfgRubric | Name of configuration rubric containing all relations to be duplicated.
  OPR | oprType | Name of change operation type to use instead of the default operation determined by the `mode` and `VER` arguments. The specified operation must be a subtype of `COPY_SEL` or `VERSION_SEL` depending on the `VER` argument.
  NAME | ... | Will be passed to `xedb_put_dfv_eda`.
  FIELD_TYPE | ... | Will be passed to `xedb_put_dfv_eda`
  | NO_DEFAULT=<field> | Do not set the field default for the given field in the master record; provided for compatibility with `xedb_cre_ver`.
  | NO_CHK_RES | Do not check if the element to be copied is currently reserved. Copy the element even if it is reserved.
  ALLOW_GLOBAL |  | Pass this option to allow copy/version operation in global view. Otherwise, an error is returned.

Returns:

  0 | OK |
  1 | ERR_XCPY_ONE_ROW | No row selected
  2 | ERR_XCPY_ONE_ELEM | None or more than one element selected
  3 | ERR_XCPY_LGV_INI | LogiView init failed
  4 | ERR_XCPY_DB_ERROR | Internal database error
  6 | ERR_XCPY_DUP_FAILED | Element could not be duplicated
  8 | ERR_XCPY_ILL_MODE | Mode 'sel' not allowed in batch mode
  9 | ERR_XCPY_ILL_PARAM | Illegal parameter
  10 | ERR_XCPY_NO_MEM | Not enough memory
  11 | ERR_XCPY_FLD_DEF | Illegal field definition
  14 | ERR_XCPY_ILL_STATE | Element has wrong state
  15 | ERR_XCPY_ONE_VER | Element is versionized already
  16 | ERR_XCPY_ELEM_LOCKED | Element is locked by someone else
  17 | ERR_XCPY_ABORT | Aborted by user or transaction
  99 | ERR_XCPY_INTERNAL | Something unexpected happened

Change Management considerations

If the top element is controlled by the e6 Change Management, all new objects created by this method - if they are under control themselves - will be assigned to the work order and set as selected by the user.
In case of a non-interactive copy, the current work order and set are used.

Copying in global view is not allowed (unless option /ALLOW_GLOBAL is passed).
Preliminary relation records are never copied.

For instance, a Copy with Structure operation of an item with two BOMs will result in the following Change Log entry of the work order:

>> | Effectivity | Change Operation | Type | ...
1 | |> | Copy with structure | Item |
.2 | |> | Add | Item |
.2 | |> | Add | Item |

If a new version is created, the only difference is the top-level change operation:

>> | Effectivity | Change Operation | Type | ...
1 | |> | Version with structure | Item |
.2 | |> | Add | Item |
.2 | |> | Add | Item |

Different top-level operations are used to indicate whether the user performed a selective copy (e.g. Copy with Structure), or if all or no relations have been copied (Copy all Structures or Copy w/o Structure).
The same pattern applies when creating a new version.

Remarks:
  Regard the possibility to copy either references or the referenced elements themselves. If elements are copied this will be done in a virtual widget.
  You may define the pre- and post-action userexit to be used (see options /PRE and /POST), otherwise the standard userexit of the widgets will be executed. In this case, the function `xedb_cop_ret_val` may be used to get the internal ID (C_ID) of the copied elements.

If the element is versionized, the file relations are copied regardless of the parameter 'mode'!

Note that copying references only, or references and referenced elements, can be customized with the corresponding LogiView trigger.
For example, the default for `EP_CPY/EDB-DOCUMENT_VerRef` is

             10 RES = @xcpy_ref( strprint( "%s /MODE=R /BOM_AGG=1", EP_CPY_VIEW_NAME ) )
             20 CheckResult()

which has the effect that only references are copied for all related entities. This can be changed, for instance, so that for related documents, the related entities themselves are also copied.
This LogiView procedure can be used to achieve that:

             10  RES = scan(EP_CPY_VIEW_NAME,"%s",MY_CPY_ENTITY)
             20  if (MY_CPY_ENTITY == "EDB-DOCUMENT")
             30    RES = @xcpy_ref(strprint("%s /MODE=E /PRE=xslv_cop_xba /POST=xslv_ver_xaa /BUF=T_DOC_DAT.DOC_VERSION",EP_CPY_VIEW_NAME))
             40  else
             50    RES = @xcpy_ref( strprint( "%s /MODE=R /BOM_AGG=1", EP_CPY_VIEW_NAME ) )
             60  endif
             70  CheckResult()

If the reference to be copied points to an `EDB-DOCUMENT`, `xcpy_ref` is called with `/MODE=E`, and the specified pre- and post- triggers are executed before/after the element has been copied. For all other entities, `xcpy_ref` is called with `/MODE=R` to copy references only.

See also:
  copyRefineRelation (xcpy_ref)
  copyAggregateRelation (xcpy_agg)
  copyTypeRelation (xcpy_typ)
  Change management documentation

int xcpy_typ | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Copies all type relations defined by a surrounding xcpy_str call.

This method copies type relations (like classification, variants and DataView types). It just calls `xedb_dup_typ`, which uses direct EPQ programming to duplicate the relation.

Parameters:

  [in] | context | userexit context
  [in] | param | userexit parameter with syntax like "type-name"

Returns:

  0 | OK
  9 | ERR_XCPY_ILL_PARAM | Illegal argument passed
  12 | ERR_XCPY_ILL_HANDLE | Must be called within a `xcpy_str` call
  99 | ERR_XCPY_INTERNAL | Something unexpected happened

Remarks:
  This is a wrapper function for calls to `xedb_dup_typ`.

See also:
  xedb_dup_typ

int xdiff_start_mmn | ( | ) |

Compares two bills of materials (BOMs).

Select menu userexit to compare two bills of materials. The result of the comparison is written into a temporary file and is displayed in the file widget "EDB-LISTING".

Note:
  You can use the '|' character in the parameter list and specify all parameters for a second comparison to the same master record in table T_DIF_DAT.

Parameters:

  cpPar | Parameter to control the behavior of this function. Syntax is: "relpar|<key1> [/SILENT] [/OUT={FILE|TABLE}] [/DEP=<num>] /ET={<dtname>|<key2>} /VIE={<view>|<key3>} [/WDG={respar|<key4>}] [/NOKEYF] [/CKEY=<fld>] [/CNTFNC={R|L}] [/SIGFNC={W|X}] [/LENCMP=<len>] [/CMPWRP=>num>] /SIE" With possible arguments:
  | relpar | Parameter to open BOM widget ("EDB-ARTICLE EDB-ARTICLE STR")
  | <key1> | Parameter to open BOM widget is stored in default "DIF-<key1>-DEF".
  SILENT |  | Silent mode: Only differences will be reported.
  OUT | FILE | Output is written to file (default).
  | TABLE | Output is written to table.
  DEP | num | Number of possible recursions (default: 15)
  ET | dtname | Name of decision table.
  | <key2> | Name of decision table is stored in default "DIF-<key2>-DEF".
  VIE | view | Defines the view.
  | <key3> | View name is stored in default "DIF-<key3>-DEF".
  WDG | respar | Parameter to open widget for result (default "EDB-DIFF EDB-DIF-SLI")
  | <key4> | Parameter to open widget is stored in default "DIF-<key4>-DEF".
  NOKEYF |  | Compares if item numbers are different.
  CKEY | fld | Name of compared field (default: POS_NO).
  | <empty> | Use significant fields.
  CNTFNC | R | Use zag_wdh_cnt_rec to count records.
  | L | Use zag_wdh_cnt_lis to count records.
  SIGFNC | W | Use wdh_ret_sig to get significant fields.
  | X | Use xdiff_ret_sig to get significant fields (default)
  LENCMP | len | Maximum length for compare string
  | <empty> | Maximum length for compare string is 1000.
  CMPWRP | num | Wrap after 'num' lines
  | <empty> | Wrap after 10 lines
  SIE |  | Only for INTERNAL use (comparison of level 0 is not in output)

Returns:

  0 | OK
  1 | Error

int xdir_usx | ( | ) |

Select menu userexit to call a function from the directory manager.

Note:
  If the default 'EDB-DIR-NEW-WDG' has the value 1, a new widget will be used to display a sub-directory, otherwise the same widget will be used.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax is: "{O <dir> <ent> | C | N <ent> | S <wdg> | E | P | X | /DYN}" With possible arguments:
  O <dir> <ent> | Opens widget of entity <ent> to display directory <dir>.
  C | Closes current widget.
  N <ent> | Displays a sub directory for the selected row in the directory manager (otherwise return to the top directory)
  S <wdg> | Displays an ASCII file using a file widget.
  E | Edits a file using the editor of the OS.
  P | Prints a file without using RPG.
  X | Executes a file (if executable).
  /DYN | Writes all files in EDB-DIR-SLI.

Returns:

  0 | OK
  Else | Error

int xdocty_change_typ | ( | ) |

Select-menu userexit to change the type of a document.

The document may not be reserved and the current user must have delete access on the (type) record.

Parameters:

  cp_par | Parameter to control behaviour of this userexit. Syntax like: "[doc_type] /NOCONFIRM /CLOSE"
  doc_type | Name of new document type (optional).
  /NOCONFIRM | Option to supress confirmation.
  /CLOSE | Option to close form with created document again.

Returns:

  0 | OK
  1 | Unable to change document type.

int xdocum_typ_frm | ( | ) |

Opens the type form for a selected document according to its document type.

A default can be used to define the name of the form to open a specific document type. The name of the default must be the same as the document type. The value for the default is either "0", which means that the default form is opened, or it has to contain the name of the form to open.

Example for the document type DRAWING:

  DRAWING | 0 | The system will use the default form.
  DRAWING | EDB-OWNER-FORM | The system will use the form EDB-OWNER-FORM as type form for the document type DRAWING.

Parameters:

  cpPar | Parameter to control the behavior of this function. Syntax like: "[/VIR]" With possible arguments:
  VIR |  | If this option is chosen, the widget will be opened in virtual mode. Otherwise, the widget will be opened in interactive mode.

Returns:

  0 | OK
  else | Unable to open the form

int xedb_agg_ver | ( | ) |

Select-menu userexit.

Deprecated:
  Use xver_agg_ver instead.

Parameters:

  par_str | Parameter to open aggregate list. Syntax like: "<entity2> <view> [<list>]" With possible arguments:
  entity2 | Name of entity2 (child).
  view | Name of relation view.
  list | Name of aggregate list.

Returns:

  0 | OK
  Else | Error code from 'iwf_lis_agg'

See also:
  xver_agg_ver

int xedb_cop_slv | ( | ) |

Copies a slave record into the structure list of a document widget.

Note:
  The selection EDB-SLV-TYP-COP with userexit xedb_cop_slv is available in the dump.

Parameters:

  cp_parameter | Parameter to control the behavior of this function. Syntax is: "<entityname> [/T=<typname>][/F=<fieldname>]" With possible arguments:
  | entityname | Name of entity.
  T | typname | Name of type.
  F | fieldname | Name of field to set default.

Returns:

  0 | OK
  Else | Error

See also:
  xedb_ins_slv,xedb_del_slv

int xedb_del_ref | ( | ) |

Select-menu userexit.

Deprecated:
  Use xrel_del_ref instead.

Returns:

  0 | OK

See also:
  xrel_del_ref

int xedb_del_slv | ( | ) |

Puts the selected slave record into the trash.

If the selected record (in structure widget of document) has a slave lifecycle (lifecycle starts with "SLV_"), the document record itself and the relation record are moved into the trash. Records without a slave lifecycle are ignored. It is not checked if the slave lifecycle corresponds to the parent.

Note:
  The selection EDB-SLV-TYP-DEL with userexit xedb_del_slv is available in dump.

Parameters:

  cp_entNam | Parameter to control the behavior of this function. Syntax is: "<entityname>" With possible arguments:
  entityname | Name of entity.

Returns:

  0 | OK
  1 | Field CHK_NAME does not exist

See also:
  xedb_cop_slv,xedb_ins_slv

int xedb_dup_ref | ( | ) |

Copies the selected record and its relations (copy with structure).

Note:
  To copy either references or the referenced records themselves: If records are copied this will be done in a virtual widget. You may define the pre- and post-action userexit to be used (see options /PRE and /POST), otherwise the standard userexit of the widgets will be executed. In this case, the function 'xedb_cop_ret_val' may used to get the internal id (C_ID) of the copied records.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "/MODE={R|E|T} /ALL={R|A} /BATCH=<lgv> /N=<fld> /PRE=<usx> /POST=<usx> /BUF=<text> /TPR" With possible arguments:
  MODE |  | Without MODE parameter: User is asked for copy mode for relations.
  | R | Copies only references to child records.
  | E | Copies also child records.
  | T | Copies recursively a complete "tree".
  ALL |  | Without ALL parameter: User is asked for what kind of relation to be copied.
  |  | ALL without argument: Copies all relations.
  | R | Copies only refine relations.
  | A | Copies only aggregate relations.
  DEFAULT |  | Default 'EDB_REL_ACT_INS' will be evaluated: Value 0: Checks write access to parent record. Value 1: Access permission by LGV DT . Value 2: Value 0 and value 1 check.
  BATCH | lgv | Copies record in batch mode using <lgv> (LGV DT or procedure) e.g. to set new record name. To separate the name of the logic model and the decision table / procedure a '-' may be used.
  N | fld | Field of master record where field default should be set.
  TPR |  | Automatic item assignment (tpr_doc_art_men) is called for new version of item (not available if parameter /BATCH is set).
  |  | Additional options for /MODE=E or /MODE=T to set virtual widget where records are created:
  PRE | usx | Pre-Action to be set.
  POST | usx | Post-Action to be set.
  BUF | usx | Text inserted in widget buffer with key 'COP_BUF'.

Returns:

  0 | OK
  Else | Error

int xedb_hierarcy_ver | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Creates an "element structure explosion" for a single selected element.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Parameter to control the behavior of this function. Syntax is: "<entity> <list> <table> [/IN_FORM=<form>] [/CTX=<context>] [/CUR_REL={<ENT> | <REL>}]" With possible arguments:
  | entity | Name of entity (e.g. EDB-ARTICLE).
  | list | Name of list.
  | table | Table of the relation (e.g. T_MASTER_STR).
  IN_FORM | form | Name of the form to be used to display the parent element. If the title of this form is "-", the title of the list (argument 'list') will be used.
  CTX | context | Context to be used. If the value is "-" then no context will be used. If this option is not set, the content of the field 'T_MASTER_STR.IN_CONTEXT_SON' (if existing) or the value of the default 'EDB-CTX' will be used.
  CUR_REL | ENT | The join table (e.g. T_MASTER_DAT) will be considered in xedb_hie_usg_qua().
  | REL | The relation table (e.g. T_MASTER_STR) will be considered in xedb_hie_usg_qua().

Returns:

  0 | OK
  -1 | Database error.
  2 | Element has no structure or user canceled this function.
  3 | Element has a recursive structure.
  Else | Error.

int xedb_iwf_lis_ref | ( | ) |

Select-menu userexit.

Deprecated:
  Use zag_dlg_iwf_frm_ent instead.

Parameters:

  cp_name | Parameter to control the behavior of this function. Syntax is: "<entity2> <view> [<listname>]" With possible arguments:
  entity2 | Name of entity2 of relation.
  view | Name of view.
  listname | Name of relation list.

Returns:

  0 | OK
  Else | Error code from iwf_lis_ref

See also:
  zag_dlg_iwf_lis_ref

int xedb_quantity_ver | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Creates a "element quantity overview" for a single selected element.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Parameter to control the behavior of this function. Syntax is: "<entity> <list> <table> [/IN_FORM=<form>] [/CTX=<context>] [/CUR_REL={<ENT> | <REL>}]" With possible arguments:
  | entity | Name of the entity (e.g. EDB-ARTICLE).
  | list | Name of the list.
  | table | Table of the relation (e.g. T_MASTER_STR).
  IN_FORM | form | Name of form to be used to display the parent element. If the title of this form is "-", the title of the list (argument 'list') will be used.
  CTX | context | Context to be used. If the value is "-" then no context will be used. If this option is not set, the content of field 'T_MASTER_STR.IN_CONTEXT_SON' (if existing) or the value of the default 'EDB-CTX' will be used.
  CUR_REL | ENT | The join table (e.g. T_MASTER_DAT) will be considered in xedb_hie_usg_qua().
  | REL | The relation table (e.g. T_MASTER_STR) will be considered in xedb_hie_usg_qua().

Returns:

  0 | OK
  -1 | Database error.
  2 | Element has no structure or user canceled this function.
  Else | Error.

int xedb_ref_ver | ( | ) |

Select-menu userexit.

Deprecated:
  Use xver_ref_ver instead.

Parameters:

  par_str | Parameter to open refine list. Syntax is: "<entity2> <view> [<list>]" With possible arguments:
  entity2 | Name of entity2 (child).
  view | Name of relation view.
  list | Name of refine list.

Returns:

  0 | OK
  Else | Error code from 'iwf_lis_ref'

See also:
  xver_ref_ver

int xedb_tre_wlk | ( | ) |

Menu userexit to walk recursively through a complete "tree" structure (for example a Bill of Material) and perform any action by calling a passed userexit.

This userexit will walk through the structure of all selected records.

The complete function will be performed using virtual (relation-)widgets. To open the relation widget, it is not necessary to pass the name of the first (parent) entity, since the parent record will be selected / marked before the userexit to open the relation widget will be called.

Parameters:

  cp_Parameter | Parameter to control the behavior of this function. Syntax is: "<relation> /OPN_USX=<usx> /PRM_USX=<usx>[(<param>)] /CALL=<usx>[(<param>)] /CLOSE=<usx>[(<param>)]" With possible arguments:
  | relation | Name of relation to open widget, usually the same syntax like iwf_lis_ref(). You may use "EDB-ARTICLE STR" or "EDB-ARTICLE STR EDB-ART-STR-RLI" for instance.
  OPN_USX | usx | Name of userexit to use to open the passed relation. If this option is not set, the standard function iwf_lis_ref() will be used.
  PRM_USX | usx(param) | Name (and optional parameters) of the pre-mask userexit to be called. If this option is not set, the standard pre-mask userexit will be used. If "NO" is passed as the userexits name, no pre-mask userexit will be called at all.
  CALL | usx(param) | Name (and optional parameters) of userexit to be called after query has been executed in opened relation widget.
  CLOSE | usx(param) | Name (and optional parameters) of userexit to be called before the relation widget will be closed again.

Returns:

  0 | OK
  1 | Unable to open relation widget

Example:

        // working example
        int iRc = xedb_tre_wlk("EDB-QUERY STR EDB-QRY-USR-SLI /CALL=xqry_str_exc_call /CLOSE=xqry_str_exc_cls");

int xedb_usage_ver | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Creates an "element usage explosion" for a single selected element.

Note:
  Uses the selection value '0' in the field 'AGG_FLAG' to display top records only. Pressing the 'Remove' button in the search mode will remove this selection value and the elements of all higher structures are displayed.

Parameters:

  usxCtx | Menu userexit context.
  cp_par | Parameter to control the behavior of this function. Syntax is: "<entity> <list> <table> [/IN_FORM=<form>] [/CTX=<context>] [/TOP] [/CIA]" with possible arguments:
  | entity | Name of the entity (e.g. EDB-ARTICLE).
  | list | Name of the list.
  | table | Table of the relation (e.g. T_MASTER_STR).
  IN_FORM | form | Name of the form to be used to display the parent element. If the title of this form is "-", the title of the list (argument 'list') will be used.
  CTX | context | Context to be used. If the value is "-" then no context will be used. If this option is not set, the content of field 'T_MASTER_STR.IN_CONTEXT_SON' (if existing) or the value of the default 'EDB-CTX' will be used.
  TOP |  | Show top elements only.
  CIA |  | Calls the specific where-used-query for the Change Management's impact analysis.

Returns:

  0 | OK
  -1 | Database error.
  2 | Element has no structure or user canceled this function.
  3 | Element has a recursive structure.
  Else | Error.

int xeer_req_sel | ( | ) |

Marks all selected records for EER replication.

The selected records are stored in the "SEND_TO" table and the request flag 'W' (wait for replication) is set. The following fields are filled:

Attribute | Value
--- | ---
EDB_ID | The internal ID of the record
VERSION | The internal version of the record
TABLE_NAME | The table of the record
STATE | The state of the record
DISPATCH_TYPE | The type of the distribution
MASTER_FLAG | 'y' = Record is a replication master record
SEND_UID | UIC of the user that created the request

Parameters:

  cp_Parameter | Parameter to control the behavior of this function. Syntax like: "[/DISPATCH=<DispatchType> [/VERSION=<DispatchVersion> | /USE={V|F}]]" with possible arguments:
  DISPATCH | DispatchType | Pass this option to describe the extension of the replication.
  |  | If this option is not passed, the user has to select the dispatch type via select menu.
  VERSION | DispatchVersion | Pass this option to describe the version of the dispatch type.
  |  | If the version is invalid, the highest version of the dispatch type will be used.
  USE | V | Pass this option if the highest version of the dispatch type shall be used.
  | F | Pass this option if the dispatch type with the current flag shall be used.

Note:
  The options "/VERSION" and "/USE" are not yet implemented!

Returns:

  EER_REQ_NO_ERROR | OK
  EER_REQ_NO_WIDGET_OPEN | No mask is open
  EER_REQ_MASK_OPEN_ERROR | Can't open default form of T_EER_DIS

int xfile_bck_up | ( | ) |

Creates a backup of the selected file.

The userexit creates a backup (copy) of the current file in the vault to the backup vault. The backup vault must be of the vault type "BCK" other vault types are permitted.

Parameters:

  cp_Parameter | Parameter to control the behaviour of this userexit. Syntax is: "[name of backup vault]" With possible arguments:
  name of backup vault | If the option is chosen, this backup vault will be used
  | If the option is not chosen, the system shows a menu that allows the user to select the backup vault

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_bck_up("backupVault");

int xfile_chg_are | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit for the file - vault relation mask.

The userexit transfers the selected file from the source vault into the target vault. The target vault name can be passed as parameter.
If there is no target vault passed the user can select the target vault via select widget.
If the file already exists in the target vault, the old file version will be deleted and the current version checked in.
The vault kind of source and target vault must be the same (FMS->FMS, EIF->EIF, PUB->PUB).
The relation would be checked, when the file was distributed before:

State of the source file | State of the target file | Result
--- | --- | ---
'A' (current) | 'A' (current) | Change the vault
'A' (current) | 'N' (not current) | Change the vault
'N' (not current) | 'N' (not current) | Change the vault
'N' (not current) | 'A' (current) | Do not change the vault

Parameters:

  context | the trigger context
  param | reserved

Returns:

  0 | OK
  Else | Error

int xfile_chk_out | ( | ) |

Checks out a file from a vault.

This userexit can be used to check-out a file from a vault.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "<A | O | C | B> [/SERVER=#SERVER] [/DISCPATH=<disc+path>] [/FILE=<filename>]" With possible arguments:
  A |  | The file is checked-out into the current directory.
  O |  | The file is checked-out into the origin directory. The origin directory has to be exsit!
  C |  | The file is checked-out into an user selected directory. The system shows a "Save As" dialog to select the target directory. If an error occur during a multi check-out operation this file will be skipped.
  B |  | Same as the check-out mode 'C', but the system will abort the execution of a multi check-out operation if an error occurs.
  SERVER | #SERVER | If this option is chosen, the file will be checked-out on the application server location. In this case the option DISCPATH has to be set! This option works with the modes 'B' and 'C' only.
  |  | If this option is not chosen, the file will be checked-out on the client location.
  DISCPATH | disc+path | If this option is chosen, the userexit uses thes specified path and does not show the "Save As" dialog. On multi check-out operations all files are checked-out into this directory. This option works with the modes 'B' and 'C' only.
  |  | If this option is not chosen, the system shows a "Save As" dialog to specify the destination directory.
  FILE | filename | If this option is chosen, the userexit uses the filename to check-out the file (not useable with multi check-out). This option works with the modes 'B' and 'C' only.
  |  | If this option is not chosen, the original file name is used to check-out the file

Note:
  - The userexit do not use the original disc+path to check out a file in virtual mode. In this case the userexit returns an error if the passed DISCPATH option is not passed.
  - If DFM is active, the userexit saves the global vault settings of the mask at the begin of the execution and restores this information after the execution.
  - For distributed files the system shows a DFM mode dialog ,where the user can decide if the online replication or batch replication should be used. To suppress the DFM mode dialog you can set the configuration parameter EDB-FIL-COPY-ORIGINAL (get copy from the original, if distributed file is not actual. '0' = no (default), '1' = yes).
  - With the default EDB-FMS-CKO-NO-RES (type integer set in table T_DEFAULT) you can configure that the record should be not locked if a file is checked out. By setting this default the same file can be checked out parallel by an other process. 0 = lock the record (default), 1 = do not lock the record);

Returns:

  0 | OK
  1 | Internal error
  10 | Wrong disc+path target to check the file out (in virtual mode)
  16109 | No record selected

Example:

        // working example
        int iRc = xfile_chk_out("C /SERVER=#SERVER /DISCPATH=/tmp/test /FILE=checkout.dat");

int xfile_cki_dis_sec | ( | ) |

Checks in a file into a distributed vault.

Note:
  - The userexit checks if the off-line transfer is active (configuration parameter EDB-FIL-OFFLINE-TRANSFER).
  - It is not allowed to check-in a file in the original vault.
  - It is only possible to check-in a file in a distributed vault if a file exists there or when the reference to this vault is set.
  - You can choose check-in current actual files only or to allow to check-in old versions too (configuration parameter EDB-FIL-CKI-OLDVERSION).
  - The status of the file depends on the version between the original and the distributed file:
    original version = passed version -> file status 'A' (actual).
    original version <> passed version -> file status 'N' (not actual).

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "/SEC_AREA=vault /ORG_VERSION=originalVersion /DISCPATH=disc+path /FILE=filename" With possible arguments:
  SEC_AREA | vault | vault to check-in the file
  ORG_VERSION | original version | version of the original file
  DISCPATH | disc+path | disc and path specification
  FILE | filename | filename specification

Returns:

  0 | OK
  1 | Internal error
  2 | Missing option
  3 | Only one selection allowed
  4 | Check-in in the original vault is not allowed
  5 | Vault is not distributed before
  6 | Vault not found
  -10 | Configuration parameter EDB-FIL-OFFLINE-TRANSFER not active
  -11 | Check-in no older version (config parameter EDB-FIL-CKI-OLDVERSION)
  -12 | Check-in version is higher than the original version of the file

Example:

        // working example
        int iRc = xfile_cki_dis_sec("/SEC_AREA=TESTVAULT /ORG_VERSION=1 /DISCPATH=/tmp/test /FILE=checkin.dat");

int xfile_cki_res | ( | ) |

Checks in a file and reset the document reservation.

Note:
  - The userexit checks if the document is reservated and if the user that wants to check-in the file has access on it.
  - The userexit reads the content of field NOTE_DISCPATH and uses this information to find the file on the client location. If the field is empty the system shows the "Open file" dialog to select the file.
  - The userexit clears the information entered into the field NOTE_DISCPATH if the check-in operation was successful.
  - If the option UNRESERVE is chosen, the document reservation will be deleted if no other file is checked-out.
  - The configuration parameter EDB-FIL-CKI-RST-RES can be used to control wheter a a question dialog is shown to ask the user if the document reservation should be deleted.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "[/UNRESERVE] [/DISCPATH=disc+path] [/FILE=filename]" With possible arguments:
  UNRESERVE |  | If this option is chosen, the document reservation will be deleted.
  |  | If this option is not chosen, the document reservation will not be deleted.
  DISCPATH |  | If this option is chosen, the system will check-in the file from the specified location.
  |  | If this option is not chosen, the system uses the information entered in this field NOTE_DISCPATH.
  FILE |  | If this option is chosen, the file will be renamed with the passed file name.
  |  | If this option is not chosen, the original file name will be used.

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_cki_res("/UNRESERVE /DISCPATH=/tmp/test /FILE=checkin.dat");

int xfile_cko_res | ( | ) |

Checks out a file and reserve the document.

Note:
  - The document is not reserved if the option ROC (read-only copy) is passed.
  - The userexit stores the check-out location into the field NOTE_DISCPATH. This information is used by the userexit xfile_cki_res() to recheck-in the file.
  - If a check-out location is already present, the system asks if you want to check-out a new copy of the file.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "[/ROC] [/DISCPATH=disc+path] [/FILE=filename]" With possible arguments:
  ROC |  | If this option is chosen, the document is not reserved and the destination location is not stored (read-only copy)
  |  | If this option is not chosen, the document is reserved and the destination location is stored (working copy)
  DISCPATH | disc+path | destination location
  FILE | filename | check-out filename

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        // get a read-only copy of the file (the document is not reserved)
        int iRc = xfile_cko_res("/ROC /DISCPATH=/tmp/test /FILE=checkin.dat");

        // get a copy of the file (the document is reserved)
        int iRc = xfile_cko_res("/DISCPATH=/tmp/test /FILE=checkin.dat");

int xfile_dis_fil | ( | ) |

Distributes a file into another vault.

Multi selection is supported to distribute as set of files.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "[/SOURCE=vault] [/TARGET=vault] [/FILE={Y|N}]" With possible arguments:
  SOURCE | vault | If this option is chosen, the specified vault is used as source of the file.
  |  | If this option is not chosen, the system checks if a global vault is set. The original vault is used if no global vault is set.
  TARGET | vault | If this option is chosen, the specified vault is used as target of the file.
  |  | If the option is not chosen, the system shows a menu to select the target vault.
  FILE | Y | The file is copied physically.
  | N | The file is not be copied physically.
  |  | If this option is not chosen, the user is asked whether the file should be copied.

Returns:

  0 | OK
  16101 | Document is not reserved
  16102 | Field not found
  16110 | No current widget
  16112 | Vault not found
  16114 | Wrong parameter format

Example:

        // working example
        int iRc = xfile_dis_fil("/SOURCE=vault1 /TARGET=vault2 /FILE=test.dat");

int xfile_dis_pvm_fil | ( | ) |

Distributes a file into another vault.

Multi selection is supported to distribute as set of files.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "[/SOURCE=vault] [/TARGET=vault] [/FILE={Y|N}]" With possible arguments:
  SOURCE | vault | If this option is chosen, the specified vault is used as source of the file.
  |  | If this option is not chosen, the system checks if a global vault is set. The original vault is used if no global vault is set.
  TARGET | vault | If this option is chosen, the specified vault is used as target of the file.
  |  | If the option is not chosen, the system shows a menu to select the target vault.
  FILE | Y | The file is copied physically.
  | N | The file is not be copied physically.
  |  | If this option is not chosen, the user is asked whether the file should be copied.

Returns:

  0 | OK
  16101 | Document is not reserved
  16102 | Field not found
  16110 | No current widget
  16112 | Vault not found
  16114 | Wrong parameter format

Example:

        // working example
        int iRc = xfile_dis_fil("/SOURCE=vault1 /TARGET=vault2 /FILE=test.dat");

int xfile_fil_rep | ( | ) |

Distributes the current file in another vault.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "/MODE={GET|PUT} [/SOURCE=vault] [/TARGET=vault] [/FILE={Y|N}]" With possible arguments:
  MODE | GET | Gets a file from another vault
  | PUT | Puts a file into another vault
  SOURCE | vault | If this option is chosen, the specified vault is used as source of the file.
  |  | If this option is not chosen, the system checks if a global vault is set. The original vault is used if no global vault is set.
  TARGET | vault | If this option is chosen, the specified vault is used as target of the file.
  |  | If this option is not chosen, the system shows a menu to select the target vault.
  FILE | Y | The file is copied physically
  | N | The file is not be copied physically
  |  | If this option is not chosen, the user will be asked whether the file should be copied

Returns:

  0 | OK
  2 | Field STORAGE_AREA or ORG_NAME not found in mask
  3 | Current record is in status 'A', 'E' or 'I' (FILE_STATUS)
  4 | No storage area set
  5 | Different kinds between the storage areas (STORE_KIND)
  99 | Error from file server
  16101 | Document is not reserved
  16102 | Field not found
  16110 | No current widget
  16111 | Parameter not set
  16112 | Vault not found
  16114 | Wrong parameter format
  -1 | File would not be copied, it is actual in distributed vault

Example:

        // working example
        int iRc = xfile_fil_rep("/MODE=GET /SOURCE=vault1 /TARGET=vault2 /FILE=test.dat");

int xfile_get_eif_inf | ( | ) |

Prints the path and filename of the crypted file within the vault of the kind 'EIF'.

The information about the EIF file is shown in the message window.

Parameters:

  cp_Parameter | not used

Returns:

  0 | Ok
  1 | Error
  10 | No manager privileges
  11 | Field in mask not found
  12 | Vault not found in definition mask of vaults
  13 | Infos of the file not found (structure)
  14 | Error from the file server call
  99 | No current widget (check virtual mode)
  -10 | Vault is not from the kind EIF

Example:

        // working example
        int iRc = xfile_get_eif_inf("");

int xfile_mov_in | ( | ) |

Moves (copy) the file from the external vault to the original vault.

The userexit resets the file status.

Parameters:

  cp_Parameter | not used

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_mov_in("");

int xfile_mov_out | ( | ) |

Moves a file from the original vault to an external vault The name of the external vault is written into the field T_FILE_DAT.EXTERNAL_AREA and the file status is changed.

To move the file from the original vault in an external vault. This is allowed if the ind of the vaults are equal (FMS->FMS, EIF->EIF, PUB->PUB) only.
If the file is distributed in more than one vaults, it is not moved out in the external vault, the distributed files must be deleted first, unless the files were from the type "BCK".

Parameters:

  cp_Parameter | vault name to move the file in [or empty]

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_mov_out("vault1");

int xfile_ret_bck_up | ( | ) |

Copies a file back from the backup vault into the original vault.

If the backup vault is not passed, the system shows a menu to select a backup vault. The backup vault and the original vault must be from the same vault kind (FMS->FMS, EIF->EIF, PUB->PUB).

Parameters:

  cp_Parameter | backup vault to copy the file from it [or empty]

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_ret_bck_up("vault1");

int xfile_sec_are | ( | ) |

Sets, gets or resets the vault for the global document-file mask.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "/STATUS={G|R|S} /STORE_AREA=vault /USX" With possible arguments:
  STATUS | G | Get current vault
  | R | Reset current vault
  | S | Set current vault
  STORE_AREA | vault | With the status 'S' you can specify the vault else the system shows a menu with all vaults.
  USX |  | Return the vault in the status 'G' when you call the userexit from another userexit.

Returns:

  0 | OK
  Else | Error

Note:
  "cp_Parameter" must be a pointer to a array with the length of the field "STORAGE_AREA" + "\0")

Example:

        // working example
        int iRc = xfile_sec_are("/STATUS=S /STORE_AREA=vault");

int xfile_sel_fil | ( | ) |

Shows a file dialog to select a file for the document - file mask.

Parameters:

  cp_Parameter | not used

Returns:

  0 | OK
  1 | Error
  2 | Disc+path+filename to long

int xfile_set_cop | ( | ) |

Sets the copy mode (COPY or DUPLICATE).

The userexit sets the value "/FILE_MODE={COPY|DUPLICATE}" in the widget buffer of the current widget and calls the function dal_iwf_dup_elm() to duplicate the current record.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "/FILE_MODE={COPY|DUPLICATE}" With possible arguments:
  FILE_MODE | COPY | Copy entry and check-in new file.
  | DUPLICATE | Copy entry and duplicate file within the vault.

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_set_cop("/FILE_MODE=COPY");

int xfile_set_flg | ( | ) |

Sets the file status flag.

Sets the status 'A' for moving the file out of the vault.
Sets the status 'E' for moving the file in the vault.
Or resets the file state.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax like: "/CHECK=<OUT|IN> /REQUEST=<Y|N><" With possible arguments:
  CHECK | OUT | State 'A' -> file move out
  | IN | State 'E' -> file move in
  REQUEST | Y | Set the state
  | N | Reset the state

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfile_set_flg("/CHECK=OUT /REQUEST=Y");

int xfile_upd_fil | ( | ) |

Copies a file from the current ('A'), origin ('O') or choice ('C') directory into the vault.

The option ('C') allows to set the options DISCPATH and FILE.

The configuration parameter EDB-FIL-CPY-DIS-REF can be used to control the behavior of the userexit during the creation of a new revision of a document.

- 0 (Off) The file is copied. This is the default behavior.
- 1 (On) The file reference is copied.

Note:
  Be careful by using the parameter NORESCHECK. If the reservation of the document is not checked the file may be overwritten by the file which the owner of the reservation may recheck-in later.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax: "<A | O | C | B> [/NORESCHECK] [/DISCPATH=<disc+path>] [/FILE=<filename>]" With possible arguments:
  A |  | The file is checked-out into the current directory.
  O |  | The file is checked-out into the origin directory. The origin directory must exsiting!
  C |  | The file is checked-out into an user selected directory. The system shows a "Save As" dialog to select the target directory. If an error occurs during a multi check-out operation this file will be skipped.
  B |  | Same as the check-out mode 'C', but the system will break the execution of a multi check-out operation if an error occurs.
  NORESCHECK |  | If this option is chosen, reservation of the document will not be checked.
  DISCPATH | disc+path | If this option is chosen, the userexit uses thes specified path and does not show the "Save As" dialog. On multi check-out operations all files will be checked-out the this directory. This option works with the modes 'B' and 'C' only.
  |  | If this option is not chosen, the system shows a "Save As" dialog to choose the destination directory.
  FILE | filename | If this option is chosen, the userexit uses the filename to check-out the file (not useable with multi check-out). This option works with the modes 'B' and 'C' only.
  |  | if this option is not chosen, the original file namr will be used to check-out the file

Returns:

  0 | OK
  Else | error

Example:

        // working example
        int iRc = xfile_upd_fil("C /NORESCHECK /DISCPATH=/tmp/test /FILE=checkout.dat");

int xfms_adm_bat_chk_are | ( | ) |

Checks all files in a vault in batch mode.

The select-menu userexit uses the file size stored in the database to validate the checked-in file. The Log file is created in the temp directory of the application (axalant_tmp) with the pre fix "fms_check".

Parameters:

  cpPar | not used
  cpIgn | ignored

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfms_adm_bat_chk_are("");

int xfms_adm_chk_are | ( | ) |

Checks all files in a vault.

The userexit uses the file size stored in the database to validate the checked-in file.

Parameters:

  cpPar | not used
  cpIgn | ignored

Returns:

  0 | OK
  Else | error

Example:

        // working example
        int iRc = xfms_adm_chk_are("");

int xfms_adm_chk_fil | ( | ) |

Checks a file in a vault, by using the file size stored in the database.

Parameters:

  cpPar | not used
  cpIgn | ignored

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xfms_adm_chk_fil("");

int xfms_chk_pth_acc | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to check if path is allowed.

The directories which are allowed for file transfers are defined in configuration rubric "EDB-FMS-ALLOWED-PATHS". This userexit checks wether the provided path is defined in the configuration list.

Parameters:

  context | The trigger context
  param | The absolute path name with terminating "/" (UNIX) or "\" (MS Windows)

See also:
  xfms_chk_fil_pth_acc

Returns:

  0 | Directory not allowed
  1 | Directory allowed

int xform_dlg_exc | ( | ) |

Starts the dialog steps of selected assistant.

Parameters:

  cp_Parameter | Reserved.

Returns:

  0 | OK
  1 | Error

int xhisto_get_his_all | ( | ) |

Select menu userexit to create a history overview for the selected record.

Parameters:

  par_str | Parameter to control the behavior of this function. Syntax is: "listname" With possible arguments:
  listname | Name of the history list to use.

Returns:

  0 | OK
  1 | Error

int xief_loa_exp_fin | ( | ) |

Writes marked records to a loader file.

All environment variables contained in the filename are substituted with real values. The export is initialized using xloa_exp_ini() with the session id created in xief_loa_exp_rec(). The query part of the loader file will be created without passing a special user / group name or creation / modification date.

This trigger determines the name of all tables with marked records using the following SQL statement (the timestamp is created during the first call of xief_loa_exp_rec()):

      select distinct T_REC_DAT.REC_TABLE
      from   T_REC_DAT
      where  T_REC_DAT.USERIDD  = <session id>
      and    T_REC_DAT.APPL_KEY = 'XIEF'
      and    T_REC_DAT.INT_VAL  = <timestamp>;

Then a loop over all table names is performed and the table description part is created by calling xief_loa_gen_dsc() until the user enters a correct or an empty filename or an error occurs.

The export is finished by calling xloa_exp_fin(). This function does the "real" work and writes the data part to the loader file. Finally the timestamp is reset for the next export order.

Parameters:

  cpArguments | Parameter to control the behavior of this function. Syntax like: "[<filename>][/SET_ACCESS_OGW]{/<field>=<value>}*" With possible arguments:
  filename |  | Pass this argument to define the complete path and name of the loader file (might contain environment variables that must be substituted).
  |  | If this argument is not passed, a dialog is presented allowing the user to enter a filename.
  SET_ACCESS_OGW |  | If this option is passed, the value of the field(s) C_ACC_OGW will be set to '***' for records that don't belong to the user currently logged on (similar to DTV's ASCII-Loader).
  field | value | A field can be specified using the format "<table>.<fieldname>" or if the given value shall be attached to several entities simple "<fieldname>". If this option is passed the given value will be written to the specified field

Returns:

  0 | OK
  1 | Error
  2 | Export has been aborted

Example:

        int iRc = xief_loa_exp_fin("/tmp/MyLoaderFile.dat");
        // or
        int iRc = xief_loa_exp_fin("");

int xief_loa_exp_rec | ( | ) |

Marks selected records and related records to be exported.

References to the selected records are stored in the table T_REC_DAT. Before a record can be inserted into T_REC_DAT, a session id has to be generated by calling xrec_get_idd() and a timestamp is created to identify related export orders.

You can call this trigger several times - even for different widgets - and all selected records will belong to the same export order as long as xief_loa_exp_fin() is not executed (calling xief_loa_exp_fin() will reset the timestamp).

The name of the origin and join table is retrieved from the current widget using wdg_ret_tbo() and wdg_ret_tbj() and the corresponding origin and join C_ID is read. This trigger will then perform a loop over all selected rows and will insert records into T_REC_DAT as follows (depending on the present keyword(s)):

Keyword | Action
--- | ---
_ENTITY | If origin table == 'T_ENTIY' Insert into T_REC_DAT, table = 'T_ENTITY', C_ID = origin C_ID. Get C_ID of all related records in T_ENT_REL and T_ENTITY. Loop for all C_IDs found and insert corresponding records into T_REC_DAT.
_TABLE | If origin table == 'T_TABLE' Insert into T_REC_DAT, table = 'T_TABLE', C_ID = origin C_ID. Get C_ID of all related records in T_TAB_FLD and T_FIELD. Loop for all C_IDs found and insert corresponding records into T_REC_DAT.
_MASK | If origin table == 'T_MASK' Insert into T_REC_DAT, table = 'T_MASK', C_ID = origin C_ID. Get C_ID of all related records in T_MAS_FLD and T_FIELD. Loop for all C_IDs found and insert corresponding records into T_REC_DAT.
_MENU | If origin table == 'T_MENU' Insert into T_REC_DAT, table = 'T_MENU', C_ID = origin C_ID. Get C_ID of all related records in T_MEN_SEL and T_SELECTION. Loop for all C_IDs found and insert corresponding records into T_REC_DAT.
_ORIGIN | Insert into T_REC_DAT, table = origin table, C_ID = origin C_ID.
_JOIN | Insert into T_REC_DAT, table = join table, C_ID = join C_ID.

Parameters:

  cpArguments | Parameter to control the behavior of this function. Syntax like: "{<ief-format> | (<keyword> )*}" With possible arguments:
  | ief-format | Pass this argument to define the IEF format that shall be used for export.
  keyword | _ENTITY | Export the selected entity definition and all related entities and types.
  | _TABLE | Export the selected table definition and all related fields.
  | _MASK | Export the selected form or list definition and all related fields.
  | _MENU | Export the selected menu definition and all related selections.
  | _ORIGIN | Export the origin record only.
  | _JOIN | Export the join record (that's the data record stored at the entity table of the current widget.
  |  | If no argument is passed, the default behavior is to export the origin record ("_ORIGIN").

Note:
  The argument "ief-format" is not yet implemented (for future use)!

Returns:

  0 | OK
  1 | A C_ID of any selected record is 0
  2 | IEF format is not yet supported
  3 | Could not activate the widget
  Any other value | EPQ error

Example:

        int iRc = xief_loa_exp_rec("_ENTITY _TABLE _MASK _MENU");
        // or
        int iRc = xief_loa_exp_rec("_ORIGIN _JOIN");
        // etc., any combination of keywords is allowed ...

int xmgt_men_cnf_emb | ( | ) |

Menu userexit to confirm embodiment of an item typically with a serial number) for a 'Should build' component.

Note:
  Replaces the LogiView procedure EDB_CM1_PCO_RLI/Men_SetSerialNumber

Parameters:

  cp_Parameter | Reserved.

Returns:

  0 | OK
  1 | Error

int xmgt_men_upd_del | ( | ) |

Menu userexit to set records of the 'As built' item structure in update or delete mode.

If the item has an embodiment, the userexit calls the standard update and delete functions. Otherwise it displays an error message.

Parameters:

  cp_Parameter | Parameter to control the behavior of this function. Syntax is: "<mode>" With possible arguments:
  U |  | Update mode.
  D |  | Delete mode.

Returns:

  0 | OK
  Else | Error

int xmtx_opn | ( | ) |

Opens matrix list for selected variant placeholder (item).

Note:
  A matrix list cannot be opened if the selected variant placeholder is of type "VAR" (variant placeholder with type specific table).

Parameters:

  cp_Parameter | Parameter to open the matrix list. Syntax like: "<entity_list> [/CID=<parent_cid>]" With possible arguments:
  | entity_list | Name of entity and list to be used (e.g. 'EDB-ARTICLE ART-VAR-MTX-SLI').
  CID | parent_cid | Option to pass the C_ID of the variant placeholder (if userexit has not been called for a selected variant placeholder).

Returns:

  0 | OK
  1 | Error

See also:
  xmtx_prm,xmtx_poa

int xntm_opn | ( | ) |

Calls the notes administration for the current record.

Parameters:

  cp_par | Parameter to open notes widget. Syntax like: "EDB-NTM <name of notes widget>"

Returns:

  0 | OK
  1 | Error

int xntree_wlk | ( | ) |

This menu userexit processes a n-dimensional tree structure.

This function may be called as a menu userexit for one or more selected records (in a list/form widget). If no structure is specified the name of the current mask is used as selection criteria to find all possible n-tree structures. The user is then asked to select one of the found structures. The definition of the n-tree structure is loaded into memory. It is necessary to clone the current widget because it is not possible to open a virtual relation widget for a selected master record of an interactive widget. Now the C_ID of each marked record is determined, is saved in a local array and the start-userexit is executed.

Then each marked record is processed:

1. update the virtual widget with the record's C_ID
2. set values in the widget buffer (/ROW, /FMTVERSION, /FORMAT and /FUNCTION), see xntree_set_buf_elm()
3. the pre-action userexit will be executed
4. all sub-definitions of the n-tree structure will be determined
5. go into depth for all sub-definitions with xntree_walk_through_tree()
6. the post-action userexit will be executed

Finally before removing the cloned virtual widget the end-userexit will be executed (if defined).

Note:
  The environment variable "EDB_NTREE_DBG" can be set to produce a comprehensive trace of the "walk" process. If the variable is set to "1" the trace is written to stderr. If the variable is set to any other value, this value is treated as filename (with path) and the trace is written to that file.

Parameters:

  cpParameter | Parameter to control the behavior of this function. Syntax like: "[structure [version]] [/PROGRESS /ABORTABLE /NOMSG]" with possible arguments:
  | structure | Name of the n-tree structure
  | version | Version of the n-tree structure
  PROGRESS |  | If this option is passed a progress reporter will be displayed
  ABORTABLE |  | If specified, the user is allowed to abort the operation
  NOMSG |  | If specified, mes_xof/mes_xon is used to supress messages
  cpIgnore | Default parameter provided by DataView (reserved)

Returns:

  0 | OK
  -3 | User aborted (XNTREE_USER_ABORTED)
  Else | Error

int xord_cre_ord_str | ( | ) |

Select-menu userexit to create an order specific bill of material.

The selected item is already related to an existing order.

Note:
  By setting the EDB view (see option /VIEW) it is possible to determine, which items and elements of a bill of material are to be considered when creating the order specific bill of material.

Parameters:

  cpParameter | Parameter to control the behavior of this function. Syntax is: "<entity2> {<str_view> | <var_view>} [/VIEW={1|2|3} /DEPTH=depth]" With possible arguments:
  entity2 |  | Name of second entity of relation (e.g. "EDB-ARTICLE").
  str_view |  | Name of view of order independent relation (e.g. "STR").
  var_view |  | Name of view of order specific relation (e.g. "VAR").
  VIEW |  | Used EDB view (default is 2):
  | 1 | Production (User will be prompted for date).
  | 1 | Production (Current date is used).
  | 2 | Development
  | 3 | Global
  DEPTH | depth | Maximum depth of hierarchy to be processed. If omitted then the complete item structure will be processed.

Returns:

  0 | OK
  1 | Error

int xord_del_ref | ( | ) |

Deletes the complete structure of an order specific bill of material for the selected order.

Note:
  Access and locking will be checked for each record to be deleted. There is no possibility to undo this action since the trash will not be used. The parameter is passed to userexit 'iwf_lis_ref'.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax is: "<entity1> <entity2> <view> [<listname>]" With possible arguments:
  entity1 | Entity1 name.
  entity2 | Entity2 name.
  view | Variant view name.
  listname | List name.

Returns:

  0 | OK
  Else | Error

int xord_var_lis | ( | ) |

Opens relation widget with order specific BOM.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax is: "<entity2> <view>" With possible arguments:
  entity2 | Entity2 name.
  view | View name.

Returns:

  0 | OK
  1 | Could not get order key.

int xpdw_frm_acc | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Displays the object access mask.

The object access mask shows the privileges granted to the current object through multi project or multi organization access rights. If the current object is not an entity which is under control of multi project or multi organization access rights (or neither multi project nor multi organization access rights is enabled), the usual DataView access mask is shown. Therefore, this userexit can be used as a drop-in replacement for `iwf_frm_acc`.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/HIGHEST_ONLY][/NO_COLLAPSE_VIEW_ALL]" With possible arguments:
  HIGHEST_ONLY |  | This optional parameter is used to display the highest privilege for each user or group. If this parameter is not passed, each privilege granted through any role is displayed, together with the role through which the privilege is granted. If this parameter is passed, only the highest privilege is displayed, i.e. if the same user has read access and additional write access through a specific role, only the write access is displayed.
  NO_COLLAPSE_VIEW_ALL |  | By default, only one entry is created for read access if the `VIEW_ALL` flag of the record is set, showing that "Everyone" has "Read" access. If this parameter is passed, the various read access entries for the groups and users who would have read access, if the `VIEW_ALL` flag was not set, are created instead.

Returns:

  0 | OK
  1 | Error

int xpdw_ksa_art_oth_pro | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Assigns an item including its structure and assigned documents to another project or organizational unit.

Parameters:

  ctx | The userexit context
  param | Parameter to control the behavior of this userexit. Syntax like: "[listName]" With possible arguments:
  listName |  | The name of the list to use to select the project.

Returns:

  0 | OK
  1 | Error

int xpdw_men_add_pro | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to assign an object to an additional principal (project or organizational unit).

The additional principal can either be defined by passing its `PROJ_ID` (for projects) or `EDB_ID` (for organizational units) as parameter, or it can interactively be selected from a list.

Remarks:
  The new principal assignment is a `PDW_ASSIGN` relationship. The old principal assignment is unchanged.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax is: "[principalCid|maskName]" With possible arguments:
  principalCid |  | The id of the principal (the `PROJ_ID` of the project or the `EDB_ID` of the organizational unit) to assign. If no principal was found with this id, a list is opened to allow interactive selection of the principal.
  maskName |  | The name of the mask to use for the principal selection.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_men_chg_pro, xpdw_men_del_ass_pro

int xpdw_men_chg_pro | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to change the generated project of an object.

This userexit changes the `PDW_GENERATE` assignment of an object to a project or organizational unit.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[principalCid|maskName]" With possible arguments:
  principalCid |  | The `PROJ_ID` of the project or the `EDB_ID` of the organizational unit to change. If no project or organizational unit was found with this id, a list is opened to allow the interactive selection of the project or organizational unit.
  maskName |  | The name of the mask to use to select the project or organizational unit.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_pdw_chg_pro

int xpdw_men_cnt_lis | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Wrapper for the userexit `wdh_cnt_lis` in a multi access rights environment.

Parameters:

  ctx | The userexit context
  param | Parameter to control the behavior of this userexit. Syntax like: "[/FORCE]" With possible arguments:
  FORCE |  | Optional parameter to force resetting the multi access rights view after the count operation has been executed, without taking care of currently active nested calls for activating and deactivating the multi access rights view. Without this parameter the multi access rights view is reactivated according to the current nesting level.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_mas_pre, xpdw_mas_poa

int xpdw_men_cpy_str | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Wrapper function for "copy with structure" in a multi access rights environment.

The standard function "Copy with structure" (userexit `xcpy_str`) is replaced by this menu userexit when working with multi access rights to take care of the multi access rights views.

Remarks:
  This userexit is called only for the first record that is selected.

Parameters:

  ctx | The userexit context
  param | Parameter to control the behavior of this userexit. Syntax like: "xcpy_str-parameters" With possible arguments:
  xcpy_str-parameters |  | The same parameters as `xcpy_str`.

Returns:

  0 | OK
  Else | Error

See also:
  xcpy_str, xver_del_ver, xpdw_men_del_ver

int xpdw_men_del_ass_pro | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to delete an assignment from a project or organizational unit of an object.

The assignment with `i_Status = PDW_ASSIGN` is deleted from the multi access rights view table.

If no principal-ID is passed, an interactive list is opened to let the user select the project or organizational unit. The list displays all projects or organizational units that are assigned to the object through a `PDW_ASSIGN` relationship.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax is: "[principal-ID|/ALL]" With possible arguments:
  principal-ID |  | The `PROJ_ID` of the project or the `EDB_ID` of the organizational unit from which to delete the assignment.
  /ALL |  | For each selected record the interactive list is displayed.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_men_add_pro, xpdw_men_chg_pro

int xpdw_men_del_ver | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Wrapper to call the userexit to delete an object version (`xver_del_ver`) in a multi access rights environment.

Parameters:

  ctx | The userexit context
  param | Parameter to control the behavior of this userexit. Syntax is: "xver_del_ver-parameters" With possible arguments:
  xver_del_ver-parameters |  | The same parameters as `xver_del_ver`.

Returns:

  0 | OK
  Else | Error

See also:
  xver_del_ver, xcpy_str, xpdw_men_cpy_str

int xpdw_men_exi_edt | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Wrapper userexit for the userexit `iwf_exi_edt` in a multi access rights environment.

Parameters:

  ctx | The userexit context
  param | Parameter to control the behavior of this userexit. Syntax is: "iwf_exi_edt-parameters" With possible arguments:
  iwf_exi_edt-parameters |  | The same parameters as `iwf_exi_edt`.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_mas_pre, xpdw_mas_poa, iwf_exi_edt

int xpdw_men_set_res | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Wrapper userexit to reserve an element in a multi access rights environment.

Checks if access to the record is granted and then calls the userexit `xres_set_res` to reserve the element.

Parameters:

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

Returns:

  0 | OK
  Else | Error

int xpdw_men_vfg | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to set or reset the global visibility of an object.

The `VIEW_ALL` flag of the selected objects is set or reset. If the `VIEW_ALL` flag is set for an object, the object is visible to all users, even if access to the object is not granted through multi access rights.

Parameters:

  ctx | The userexit context
  param | Parameter to control the behavior of this userexit. Syntax is: "/DO={SET|RESET}" With possible arguments:
  DOSET, RESET |  | Sets or resets the `VIEW_ALL` flag for all selected records.

Returns:

  0 | OK
  Else | Error

int xpdw_pdw_chg_pro | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to change the explicit assignment of an object to a project or organizational unit.

This userexit changes assignments of the type `PDW_ASSIGN` so that the object is explicitly assigned to another project or organizational unit.

Remarks:
  Only the first selected record is used.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax is: "[principalCid|maskName]" With possible arguments:
  principalCid |  | The `PROJ_ID` of the project or the `EDB_ID` of the organizational unit to change. If no project or organizational unit was found with this id, a list is opened to allow interactive selection of the project or organizational unit.
  maskName |  | The name of the mask to use to select the project or organizational unit.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_pdw_oth_pro

int xprm_fre_lck | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to unlock the selected users in the user list.

Note:
  Field T_USER.C_FAI_CNT is set to 0.

Parameters:

  ctx | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

int xprm_set_pwd | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to set the password for the selected users in the DataView user list.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Currently none.

Returns:

  0 | OK
  Else | Error

int xprt_edt | ( | ) |

Edits the RPG printer definition file (RPG_PDF_DAT) of the selected records.

Deprecated:

Returns:

  0 | OK

int xpvm_bat_doc | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Adds a new document batch job.

The method adds all files of the document, which are viewable with AutoVue to the batch job.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

int xpvm_bat_fil | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Adds a new file batch job.

The method adds the selected file of the document, which is viewable with AutoVue to the batch job.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

int xpvm_mrk_doc | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Loads a markup with the assigned base file into the viewer.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

int xpvm_mrk_doc_new | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Loads the document into the viewer and switch the viewer into markup mode.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

int xpvm_mrk_fil_new | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Loads the file into the viewer and switch the viewer into markup mode.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

int xpvm_set_act | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select menu userexit to activate a property mapping (is used flag of current property = y, other properties with the same name are set inactive).

Parameters:

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

Returns:

  0 | OK
  1 | Error

int xpvm_set_not_act | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select menu userexit to inactivate a property mapping (is used flag = n).

Parameters:

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

Returns:

  0 | OK
  1 | Error

int xqry_cnd_sav | ( | ) |

Assigns the query conditions to the logical name given by the user for the query to be stored, and stores the query conditions and condition values in the table T_QRY_CND.

Parameters:

  cp_Par | Parameter to control if a 'SAVE' or a 'SAVE AS' option should be performed. The default option is 'SAVE'. Syntax like:
  /SAVE_AS | A 'SAVE AS' option is performed.
  /SILENT | Saves the query without user interaction.
  /ALL_FIELDS | Saves conditions from all fields (including invisible ones)

Returns:

  0 | OK
  1 | Error

int xqry_dat_rec_sav | ( | ) |

Stores the record Id's of the records which are selected by the user in a form or list.

The record Id's are stored in the table T_REC_DAT and assigned to a logical name entered by the user. The logical name is stored in the table T_QRY_DAT with the type "DAT". (Stored records (type "DAT"), query conditions (type "CND"), or results of a logical connection between more queries (type "STR") can be stored under a logical name). These stored records are accessible later through the correspondent logical name.

Parameters:

  cp_Parameter | Syntax like: /SAVE_AS /SILENT /MODE /CURRENT_ONLY
  /SAVE_AS | Defines logical name to be used for query.
  /SILENT | Saves the query without user interaction.
  /MODE={INSERT | OVERWRITE | APPEND} | Save mode. Possible arguments are: INSERT New query is created. OVERWRITE Query with given name is overwritten (or a new one is created with this name). APPEND Records are appended to query (or a new one is created with this name). If /MODE is not set or argument is missing, INSERT is the default behavior.
  /CURRENT_ONLY | Saves the current record only, not all records in a form.

Returns:

  0 | OK
  1 | Error

int xqry_rnk_exc | ( | ) |

Menu userexit to perform a 'Best matching'-query for the conditions given in the condition mask.

The query is performed in the initial mask, so that the user can concurrently see the matching records (in the initial mask) and the query conditions (in the condition mask).

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit - reserved.
  lp_Fields | Long array with fields Id of the first condition fields in the condition line.

Returns:

  0 | OK
  1 | Error

int xqry_str_exc | ( | ) |

Menu userexit to perform a logical query.

(A logical query can have the type "DAT", "CND", "RNK", "AND" or "OR".) If query type is "AND" or "OR" then this logical query is a complex query, that means it has a tree structure of logical connections.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit, not used yet.

Returns:

  0 or 2 | OK
  1 | Error

int xqry_str_log_op | ( | ) |

Menu userexit to connect several logical queries by an "AND" or "OR" operation.

The user has to select more then one logical names and choose from the select menu the logical operation to be performed for the selected logical names.

Parameters:

  cp_Parameter | Parameter to determine the logical operation to be performed. Syntax like: AND - if a logical "AND" should be performed. OR - if a logical "OR" should be performed.

Returns:

  0 | OK
  1 | Error

int xrel_mul_res | ( | ) |

For each selected record (or, if the flag /SINGLE is set, just for the first record) the given reservation function is called.

At the beginning, the field-discriptor of the second field of the list (join-C_ID) is set to the current entity name because the multi list can contain more than one different entity.

Parameters:

  cp_Parameter | Parameter to control the behavior of this userexit. Syntax like: "/FNC=res_func [/PAR=param] [/SINGLE]"

With possible arguments:

FNC | functionName | Defines the name of the reservation function.
PAR | param | Optional parameter to set parameters for the reservation function.
SINGLE |  | Optional flag to call reservation function for first selected record only.

Returns:

  0 | OK
  1 | Error, name of reservation function is missing

int xres_opn_res | ( | ) |

Opens form with all information about the reservation of the selected element.

Note:
  It is only possible to reserve elements of an entity.

Parameters:

  cp_Parameter | Reserved.

Returns:

  0 | OK
  1 | Unable to display reservation information.

int xres_rst_res | ( | ) |

Resets the reservation of a record.

Note:
  If this userexit is called with the option /FORCE, the reservation may be reset by anybody. For this reason a DataView profile should be used to protect this userexit against uncontrolled use. It is only possible to reset the reservation for elements of an entity, but not, for example, relation records. The reservation for documents can only be reset by the document type.

Parameters:

  cp_Parameter | Parameter to control the behavior of this function. Syntax is: "[/FORCE]" With possible arguments:
  FORCE | Force reset of reservation

Returns:

  0 | Reset of reservation succeeded, or object was not reserved.
  1 | Unable to open reservation widget.
  2 | Reserved by another user.
  3 | Error during reservation.
  4 | No unreservation from document master allowed.
  5 | Document type does not exist.

int xres_set_res | ( | ) |

Sets the reservation for a record.

Note:
  It is only possible to reserve elements of an entity, not e.g. relation records. The reservation of documents can only be set by the document type.

Parameters:

  cp_Parameter | Parameter to control the behavior of this function. Syntax like: "[/RCODE]" With possible arguments:
  RCODE | Gets the return parameter of reservation. Do not continue loop if reservation of one record fails.

Returns:

  0 | Reservation was successful.
  1 | Record is locked.
  2 | No write access to record.
  3 | Element reserved by another user.
  4 | Element is marked for reservation or number cycle EDB-RES creates negative numbers.
  5 | Error during reservation.
  6 | Unable to open reservation widget.
  7 | No reservation from document master allowed.
  8 | Document type does not exist.

int xsml_frm_typ | ( | ) |

Select menu userexit for a selected record to open classification or variant list if the record was assigned to a class or variant before.

If the record is assigned to more than one class or variant, then a menu with all correspondent classes or variants is created and the user has to choose one class or variant to be opened.

For the classes of old type (type table) the list is opened, even if option /FRM is given.

Parameters:

  cp_Par | Parameter used to open the relation widget (iwf_lis_ref)
  e.g. | for sml: EDB-GROUP EDB-ARTICLE ATT EDB-GRP-ART-RLI
  for | variants: EDB-ARTICLE EDB-ARTICLE ATT EDB-ART-ATT-RLI
  NULL | The standard list and the view ATT is used.
  /FRM | The classification form is opened instead of the list

Returns:

  0 | OK
  1 | No selected record
  2 | Database error by opening classification list
  3 | The record is not assigned to any class
  4 | User has no read access for the classification list
  5 | The record is assigned to more than one classification list and the user canceled the selection from the class menu
  6 | No classification form was created for the selected record
  Else | Other error |

int xsmlc_upd_att | ( | ) |

Select menu userexit to update the attribute fields in item head form and attribute folder.

Is used by LogiView when the class attributes folder becomes active.

Parameters:

  cp_Arguments | Userexit parameter, syntax like: "/FATWDG=WdgId /CLASSID=ClassId /UPDSON" With possible arguments:
  /FATWDG=WdgId | Parent widget id ( form EDB-ART-CFR-S)
  /CLASSID=ClassId | ClassId of searched class in class code field (T_GROUP_DAT.CLASS_CODE).
  /UPDSON | If this option is set, then the sublist is also updated (e.g. mask EDB-ART-SMLC-RLI).
  /SONWDG=WdgId | WidgetId of son widget (sublist)

Returns:

  0 | OK
  1 | No FATWDG=Id option
  2 | No CLASSID=Id option
  3 | Error by updating attributes in form
  4 | Error by updating attributes in sublist
  Else | Other errors |

int xsmlc_usr_sav | ( | ) |

Select menu userexit for class form to save the user specific settings for the current class.

Parameters:

  cp_Parameter | Userexit parameter, reserved.

Returns:

  0 | OK
  Else | Error

int xsmldf_cre_typ_ref | ( | ) |

Select menu userexit to reorganize the class of TYP type.

For all selected TYP classes creates the type table.

Returns:

  0 | OK
  Else | Error

int xsmldf_del_sml | ( | ) |

Select menu userexit to delete the class definition for the selected TYP class.

Parameters:

  par | Userexit parameter, syntax like:
  y | Deletes the field definition.
  n | Does not delete the field defintions.

Returns:

  0 | OK
  Else | Error

int xsmldf_sml_def | ( | ) |

Select menu userexit for class mask to create the type table for classes of TYP type (one type table for each class) or a classification form for ATT.

The template for the class form (ATT classes) is defined by the configuration parameter EDB-GTM-SUB-<entity_name>. A further configuration parameter EDB-GTM-ONE-PER-ROW decides if each attribute will be positioned in a new line in the form (parameter has the value ON) or consecutively (value is OFF and if not enough space is available, then the attribute is positioned in the next line). The default value for EDB-GTM-ONE-PER-ROW is OFF. If the configuration parameter EDB-GTM-TIT has the value 1 or 'on', then the attribute name is used as attribute title (otherwise the attribute letter will be displayed as attribute title).

Parameters:

  cp_Parameter | Userexit parameter, syntax like:
  /NOCONFIRM | Suppress the user confirmation to create the form. If this option is not given, the user will be asked if an existing classification form shall be created or modified.
  /GTM=<prefix> | If the default EDB-CRE-GTM-MSK-ACT has the value "0", then the mask mentioned in the configuration list with key <prefix>-{LIS | FRM}-<entity_name> is used as template.
  /FRM | If the class is of ATT type, then the form defined by key EDB-GTM-SUB-<entity_name> in class configuration is used as default form.

Returns:

  0 | OK
  Else | Error

int xstate_ask_nxt_sta | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to display the possible next release steps for an object.

The possible next states for members of the current group are displayed in the client's message window.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred.

See also:
  xstate_set_lev_men

int xstate_frm_nxt_sta | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to open the state form instead of the state menu.

The state form contains the main record fields and buttons to change the state into a new one. This userexit can be called instead of xstate_nxt_sta.

Remarks:
  This userexit does not work with the Java Client yet, so call the old userexit (xstate_nxt_sta) to change state on the Java Client.

Example:
  Parameter for the select button in the item form:

          /USX = iwf_frm_lis /PAR= EDB-ARTICLE EDB-CHK-ART-CFR F>EDB-STA-SBF-GE

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "/USX=usxName /PAR=usxParam" with possible arguments:
  USX | usxName | Userexit to open the state form.
  PAR | usxParam | Parameter for the userexit to open the state form.

Returns:

  0 | OK
  1 | Error occurred.

int xstate_nxt_sta | ( | const char * | param,
|  | char * | ignore
| ) |  |

Menu userexit that performs a lifecycle transition for selected elements.

This userexit implements the execution of lifecycle transitions to transfer elements from one state into another.

- Checks if the current group has the permission to execute this function.
- Checks if all selected records have the same level indicator and the same release procedure. The menu with the possible next states is shown only once for all selected records.
- If no subsequent state is passed to the userexit, this userexit queries the user interactively.
- Executes pre-transition userexits
- Performs the state change (new value for LEV_IND is written)
- Executes post-transition userexits
- Writes an entry with an old progress indicator, a new progress indicator and release procedure name into the history of the element
- Optionally sends eMail notifications

Processing of slave transitions:

- For slave release procedures, temporarily set the name of the master release procedure. Sets a flag to indicate that originally a slave release procedure has been defined.
- Does not retrieve data for the next transition (`xstate_get_nxt_sta`) for slave release procedures (controlled by flag i_slave). Due to the static definition of the variables, the data necessary to process the master release procedure is already known. This mechanism prevents the userexit from querying the next state again if branches are used.
- Writes an appropriate memo entry into the history when transferring the slave record.

Remarks:
  If the release step was sucessful the new states will be set. If enabled in the configuration settings, a mail will be send to the according users/groups. Owner and access of the element may be modified according to the used release procedure (e.g. 'STANDARD'). This function does not release reserved elements. Pre- and post-transition userexits can access information about the transition which is currently in progress by reading the value for key "NXTSTA" from the widget buffer. The value string has the following format:

                 "/LEV=<new_progress_indicator> /OWN=<new_owner_uic>
                  /GRP=<new_group_gic> /AOW=<access_owner> /AGR=<access_group>
                  /AWO=<access_world> /PRE=<pre_action> /POS=<post_action>
                  /DID=<distribute_id> /DCA=<distributor_id> /SIG=<signi_str>
                  /PAR=<task_id> /PRL=<new_dev_sta> /NRS=<new_rel_sta>
                  [/SYS]"
                  /SYS indicates if the system flag is set.

This userexit cannot be used for refine elements. Please refer to the userexit `xstr_nxt_sta` !

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "level /PAR=task-id /SYSTEM [/NO_HIST] [/FROM=ValFrom] [/UNTIL=ValUntil]" with possible arguments:
  level |  | Optional parameter to pass a specific new progress indicator. If this parameter is not given, the possible next progress indicators are queried interactively by the user.
  PAR | task Id | Optional unique identifier of a task for parallel release procedures.
  SYSTEM |  | If this parameter is given, it is allowed to execute system transitions. If this parameter is not given and the destination progress indicator requires a system transition, the state change won't be executed, but an error message will be printed.
  NO_HIST |  | Optional parameter to suppress the writing of an history entry for the transition
  FROM | date | Optionally passes a specific date to use as "Valid Fom" date. The value must be passed in the format "MM-DD-YYYY HH:MI:SS".
  UNTIL | date | Optionally passes a specific date to use as "Valid Until" date. The value must be passed in the format "MM-DD-YYYY HH:MI:SS".

Example:

         xstate_nxt_sta (220 /SYSTEM) system transition to state 220
         xstate_nxt_sta (120 /PAR=2)  confirm task 2 of current state
         xstate_nxt_sta (230)         transition to state 230
         xstate_nxt_sta ()            use menu

Returns:

  0 | OK
  25 | Record missing in action.
  Else | Error occurred.

See also:
  xstr_nxt_sta

int xstr_ask_nxt_sta | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Menu userexit to print out information about the possible next release steps for members of the current group when releasing a relation record.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred.

int xstr_nxt_sta | ( | const char * | param,
|  | char * | ignore
| ) |  |

Menu userexit to change the state of a relation record.

It will be checked if the current group has the permission to execute this function. If the release step has been successful, the new status will be set. If enabled in the configuration settings, a mail will be sent to the respective users/groups. Owner and access of the element may be modified according to the used release procedure (e.g. 'STANDARD'). This function does not release any reserved elements. This userexit can only be used for relation records. Please refer to the userexit 'xstate_nxt_sta'. The configuration parameter EDB-CRM-STR-STA-EQL can be used to enable the transfer of more records simultaneously without requesting a new level indicator for each element.

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "LEV_IND [/PAR=taskId] [/SYSTEM] [/FROM=ValFrom] [/UNTIL=ValUntil]" with possible arguments:
  LEV_IND | new progress indicator, e.g. "120" | The destination progress indicator for the state transition. If this parameter is not given, the user can choose from all possible destination progress indicators interactively
  PAR | taskId | The task id for parallel lifecycles
  SYSTEM |  | If this parameter is given, it is allowed to execute system transitions. If this parameter is not given and the destination progress indicator requires a system transition, the state change will not be executed, but an error message will be printed.
  FROM | date | Optionally, a specific date to use as "valid-from" date.
  UNTIL | date | Optionally, a specific date to use as "valid-until" date.
  [

int xtxt_tmp_men_rep | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Select-menu userexit to create a report regarding Text Management.

Parameters:

  ctx | Context of the userexit
  param | Parameter to control the behavior of this function. Syntax is: "/TYPE=<report type> /PARAM=<list of columns to include> /ENCODING=<encoding scheme>" With possible arguments:
  TYPE | type of the record |  | PARAM | list of columns to include
  ENCODING | i.e. UTF-8

Returns:

  0 | OK
  Else | Error

int xtxt_whr_use_up1_men | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Tries to update a single entry from the Where-Used result list.

It is possible to update objects through 1-3 levels. This depends on the configuration. Regarding the configuration, the fields EDB_VALUE_1 (Object 1 Update Field), EDB_VALUE_2 (Object 2 Update Field), and EDB_VALUE_3 (Object 3 Update Field) contain the field (and therefore the object/value) which should be updated.

EDB_VALUE_x (Object x Update Field) | Contain the name of the field, which should be updated on level x. Depending on the status of the object and the status configuration (for level x). The states in which the object should be updatable are defined with the fields EDB_IN_WORKx (IW), EDB_APPROVEDx (AP), EDB_RELEASEDx (RL), EDB_REVISIONINGx (RV).

In addition, the state of the updatable object has to be checked (except the parameter /IGNORE_STATE is set), therefore, the following entries in the Where-Used configuration have to be taken into account (the x stands for the level 1,2,3):

EDB_IN_WORKx (IW) | Value = 'y', is the object of level x (EDB_Value_1 (Object x Update Field)) in state "In Work" then proceed updating!
EDB_APPROVEDx (AP) | Value = 'y', is the object of level x (EDB_Value_1 (Object x Update Field)) in state "Approved" then proceed updating!
EDB_RELEASEDx (RL) | Value = 'y', is the object of level x (EDB_Value_1 (Object x Update Field)) in state "Released" then proceed updating!
EDB_REVISIONINGx (RV) | Value = 'y', is the object of level x (EDB_Value_1 (Object x Update Field)) in state "Revisioning" then proceed updating!
| If one state is set to '' the object has no state (no LEV_IND)
| If all states are set to '' ==> the check for the state of the corresponding updatable object is ignored.
| If all states are set to 'n' a error message "No state set for object_x -> CID:'CID of object' Table:'table name of object'" occurs!

The lifecycle of the object is identified by the table name of the updatable object (first part of the EDB_VALUx-content) and the CHK_NAME field. The current state of the object is identified by the table name (first part of the EDB_VALUx content) and the LEV_IND field.

Therefore, the updatable mechanism is able to check if the selected state in the Where-Used configuration (IW, AP, RL, RV) regarding the lifecycle name of the current object and the current state value of the object matches. If it matches, the update will proceed, otherwise, an "Object_x is NOT in correct state -> Table:'object-table' CID:'object-C_ID'" occurs and the whole transaction is rolled back.

Parameters:

  ctx | Userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/IGNORE_STATE /STRICT" With possible arguments:
  IGNORE_STATE | The state of the updatable objects has to be ignored.
  STRICT | Default. If the object is not in the correct state, then do not update the objects and proceed a rollback.

Returns:

  0 | OK
  Else | Error

int xvar_cal_mas_gen | ( | ) |

Select menu userexit to start the mask generator for the variant form created for the current variant.

If the current user does not have manager privileges, then an error message is displayed on the screen.

Parameters:

  cp_Parameter | Userexit parameter, reserved.

Returns:

  0 | OK
  Else | Error

int xvar_opn_var_prf | ( | ) |

Select menu userexit to open a list with prefered variants (mask EDB-ART-VAR-PRF-RLI).

Parameters:

  cp_Parameter | Userexit parameter, reserved

Returns:

  0 | OK
  Else | Error, e.g. unable to the open variant list or the VAR_NUM field does not exist in the opened list.

int xvar_var_lis | ( | ) |

Select menu, opens the variant list or variant form (for variants of type VARATT) for a selected variant.

The head form name is given by the configuration parameter EDB-VAR-FRM. The subform has the name EDB-VAR-x-SFR (where x is the variant number).

Parameters:

  par | Userexit parameter, syntax like: [Entity_name /FRM /SUBLIS] with: Entity name (usually EDB-ARTICLE) /FRM A form is displayed instead of the variant list. If this option is set, then the form to be opened is given in the configuration parameter EDB-VAR-FRM. /SUBLIS The name of the list to be opened as folder in the variant form. If this option is given, then the /FRM option is ignored.

Returns:

  0 | OK |  | 1 | Error, the selected element is not a variant or the variant list does not exist yet
  Else | Other error

int xvardf_del_var | ( | ) |

Select menu userexit to delete the attributes definition for the selected variant.

If a modern form (variant is of type VARATT) was created for this variant, then the form is deleted (regardless of parameter value).

Example: y /TABLE=T_CUSTOM_FLD can be used when the variant attribute defini- tions must be deleted. In this case T_CUSTOM_FLD is the name of the variant table to be used.

Parameters:

  cp_Parameter | Userexit parameter for variants of type VAR (configuration parameter EDB-VAR-TYP has value ATT), syntax like: y or n /TABLE with:
  y or n | Flag to indicate if the attribute definitions of the variant list must be deleted or not: | y | Deletes the variant list and the attribute definition (the variant has no assigned records).
  n | Deletes the variant list (the variant has no assigned records) without attributes definition
  /TABLE=TableName | Table with the variant attributes definitions. This option is used when a another table is used (the default table is T_MASTER_FLD).

Returns:

  0 | OK
  Else | Error

Sel menu usx to delete definitions of variant placeholder.

int xvardf_var_def | ( | ) |

Select menu userexit to create the table and mask for variants of type 'ATT' (mask EDB-ART-VAR-SLI or EDB-ART-VAR-SFR).

For the variants of type 'VARATT' a new form will be created with the name from configuration parameter EDB-VAR-SUB.

Parameters:

  cp_Parameter | Userexit parameter, syntax like: entity /NOCONFIRM /MASGEN with:
  entity | Entity name
  /NOCONFIRM | Option to suppress user confirmation. If this option is not set, the user is asked if an existing variant list or form must be created or modified.
  /MASGEN | Option to call the mask generator when the variant form is created, so it can be changed by the user. This option can be used only by useres with manager rights, otherwise an error message is displayed on the screen.

Returns:

  0 | OK
  Else | Error

int xver_agg_ver | ( | ) |

Opens aggregate list with predecessor of selected record.

Note:
  A message will be displayed if no aggregate elements exist.

Parameters:

  par_str | Parameter to open aggregate list. Syntax like: "entity2 view [list]" With possible arguments:
  entity2 | Name of entity2 (child).
  view | Name of relation view.
  list | Aggregate list name.

Returns:

  0 | OK
  else | Error code from 'iwf_lis_agg'

int xver_cre_ver | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Creates a new revision of an element.

Note:
  While the selected element is copied to a new revision, the current widget buffer contains the C_ID of the (old) copied element with the key "CRE_VER". To retrieve this value, use the function 'zag_get_buf_elm'.

Parameters:

  usxCtx | The menu userexit context for this userexit.
  param | Parameter to control the behavior of this function. Syntax like: "key [/MODE={R|E}] [/BATCH=lgv] [/N=field] [/PRE=usx] [/POST=usx] [/BUF=text] [/NO_E=entityname] [/TPR]" With possible arguments:
  key |  | "key" can have following value:
  | y | Copy (selected) structures.
  | a | Copy all structures.
  | n | Do not copy refine structures.
  | m | Do not copy aggregate structures.
  | o | Do not copy refine and aggregate structures.
  MODE | R | Copy references to structure elements.
  | E | Copy the referenced structure elements themselves.
  | - | If parameter is not set, ask user.
  BATCH | lgv | Copy element in batch mode instead of interactive copy. If set, 'lgv' is the name of a LogiView decision table / procedure to be called (especially to set the element name). The name of the logic model and the decision table or procedure can be separated with a '-'.
  N | field | Field of master record, where field default shall not be set.
  TPR |  | Automatic item assignment (tpr_doc_art_men) is called for new item revision (not available if parameter /BATCH is set).
  |  | If elements are to be copied (/MODE=E) further options can be set for the virtual widget where the elements are created:
  PRE | usx | Pre-action userexit of virtual widget to be set.
  POST | usx | Post-action userexit of virtual widget to be set.
  BUF | text | Text to be inserted into buffer of the virtual widget (key will be 'COP_BUF').
  NO_E |  | Entities which always use MODE=R (e.g. EDB-FILE) and not MODE=E.

Example:

       C-code example for handling with widget buffer:
           char  ca_CID[11];
           char  *cp_Buff;
           DtvHandle  wdg, l_OldCid;
           ...
           wdg = zag_ret_dst ();
           if (wdg == 0)
             wdg = dal_wdg_ret_act(NULL);
           cp_Buff = dal_wdg_ret_buf (NULL, wdg);
           if (zag_get_buf_elm (cp_Buff,"CRE_VER",ca_CID) == 0)
             sscanf (ca_CID, "%ld", l_OldCid);

Returns:

  0 | OK
  1 | No new revision was created.
  2 | Error in function "xedb_cop_fil()" from function "dal_wdh_wri_lis(NULL)".

int xver_del_ver | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Deletes the selected revision (current element).

Note:
  Works also in a MPA/MOA environment. Replaces userexit xedb_del_ver.

Algorithm sequence:

- For each selected record:
- If option "CHECK_SLAVE" is set then delete master-slave dependent record revisions.
- If default "EDB-DMS-DEL-REL-FIL" has value != 0 then delete assigned files, too.
- Check that revision is deletable:
  - Check for delete access to record.
  - Check that a predecessor exists.
  - Check that record is not reserved.
- Adds a "VERS-DEL" entry into the history of predecessor.
- Sets the CUR_FLAG to the predecessor version.
- Deletes the selected records.

Parameters:

  usxCtx | The menu userexit context for this userexit.
  param | Parameter to control the behavior of this function. Syntax is: "ENTITY2 VIEW [/CHECK={N|NF|Y}] [/CHECK_SLAVE] [/REPORTERROR]" With possible arguments:
  | ENTITY2 | Entity2 name of revision relation.
  | VIEW | View name of revision relation.
  CHECK |  | Flag to use control refine/aggregate check:
  | N | Use a dialog form to ask user to continue or not if aggregate/refine relation exists.
  | NF | If aggregate/refine relation exists, then delete the relation without asking the user.
  | Y | Use standard aggregate/refine checks from DataView (default if parameter is not set).
  CHECK_SLAVE |  | Delete master-slave dependent revision records, too?
  REPORTERROR |  | Controls whether the return code shall be != 0 if the delete statement failed.

Returns:

  0 | OK
  -1 | Out of memory
  -2 | Delete statement failed (only if /REPORTERROR flag is set).

int xver_del_ver_pur | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Deletes the selected revision (current element).

Algorithm sequence:

- Perform the plausibility check for each selected record.
- Store all record which must be deleted. (a single call to xrel_del_agg and wdh_del_lis works on all selected records) At the same time the history entry is made.
- After the plausibility check all records are deselected and only the record which have to be deleted are selected.
- Call the function xedb_reset_cur to set the CUR_FLAG to the predecessor version.
- Call the function xrel_del_agg to delete the predecessor relation.
- Delete the selected records.

Parameters:

  usxCtx | The menu userexit context for this userexit.
  param | Parameter to control the behavior of this function. Syntax like: "ENTITY2 VIEW /CHECK={N|NF|Y} [/CHECK_SLAVE] [/REPORTERROR]" With possible arguments:
  | ENTITY2 | Entity2 name of revision relation.
  | VIEW | View name of revision relation.
  CHECK |  | Flag to use control refine/aggregate check:
  | N | Use a dialog form to ask user to continue or not if aggregate/refine relations exist.
  | NF | If aggregate/refine relation exist, then delete the relation without using the dialog form before deleting.
  | Y | Use standard aggregate/refine check from DataView.
  CHECK_SLAVE |  | Controls if an aggregate check is performed when deleting a revision. The check must not be performed when revisions of master-slave-elements are deleted from the master.
  REPORTERROR |  | Controls whether the return code shall be . != 0 if the delete statement failed.

Returns:

  0 | OK
  -1 | Out of memory
  -2 | Delete statement failed (only if /REPORTERROR flag is set).

int xver_ref_ver | ( | ) |

Opens refine list with successor of selected record.

Note:
  A message will be displayed if no refine elements exist.

Parameters:

  par_str | Parameter to open refine list. Syntax like: "entity2 view [list]" With possible arguments:
  entity2 | Name of entity2 (child).
  view | Name of relation view.
  list | Refine list name.

Returns:

  0 | OK
  else | Error code from 'iwf_lis_ref'

int xwfl_prc_abort | ( | ) |

Menu userexit to cancel a process.

Parameters:

  cpPar | Default parameter (currently not used).
  cpIgn | Default parameter (currently not used).

Returns:

  0 | OK
  1 | Error

Example:

        // working example
        int iRc = xwfl_prc_abort("");

int xwfl_prc_chg_own | ( | const char * | param,
|  | const char * | ignore
| ) |  |

Opens a dialog to change the owner of the process.

Parameters:

  context |
  param | The name of the mask for the dialog

Returns:
  int

int xwfl_prc_resume | ( | ) |

Menu userexit to resume a process.

Parameters:

  cpPar | Default parameter (currently not used).
  cpIgn | Default parameter (currently not used).

Returns:

  0 | OK
  1 | Error

Example:

        // working example
        int iRc = xwfl_prc_resume("");

int xwfl_prc_start | ( | ) |

Menu userexit to start a process.

Parameters:

  cpPar | Default parameter (currently not used).
  cpIgn | Default parameter (currently not used).

Returns:

  0 | OK
  1 | Error

Example:

        // working example
        int iRc = xwfl_prc_start("");

int xwfl_prc_suspend | ( | ) |

Menu userexit to suspend a process.

Parameters:

  cpPar | Default parameter (currently not used).
  cpIgn | Default parameter (currently not used).

Returns:

  0 | OK
  1 | Error

Example:

        // working example
        int iRc = xwfl_prc_suspend("");

int zag_dlg_iwf_lis_ref | ( | ) |

Opens refine list for selected records.

Select menu userexit to open the refine list for the selected records. You need at least 'r'ead access for the entity records.

Parameters:

  cp_name | Parameter to control the behavior of this function. Syntax (as for iwf_lis_ref): "<entity2> <view> [<listname>]" With possible arguments:
  entity2 | Name of entity2 of relation.
  view | Name of view.
  listname | Name of relation list.

Returns:

  0 | OK
  Else | Error code of iwf_lis_ref

int zag_mas_opn_xas | ( | ) |

Select menu/button userexit that opens widget for current record.

Parameters:

  cpPar | Parameter to control the behavior of this function. Syntax like: "[/SRC=src_fld] [/DST=dst_fld] /USX=usx_nam /PAR=usx_par" With possible arguments:
  SRC | src_fld | Source field name.
  DST | dst_fld | Destination field name.
  USX | usx_nam | Userexit that opens widget.
  PAR | usx_par | Userexit parameter.
  cpIgnore |

Returns:

  0 | OK
  ERR_ZAG_HYP_ILL_PARAM | Illegal parameter.
  ERR_ZAG_HYP_NO_WDG | No current widget.
  ERR_ZAG_HYP_NO_FLD | No such field.
  ERR_ZAG_HYP_ROW | Illegal row.
  ERR_ZAG_HYP_UPD_LIS | Error in wdh_upd_lis.

Example:

        // Select menu/button userexit in item structure widget:
        zag_mas_opn_xas (/SRC=PART_ID /DST=PART_ID /USX=bvb_usx_opn_ent
                        /PAR="EDB-ARTICLE /EDB-L=EDB-ART-SLI /EDB-F=EDB-ART-CFR")

See also:
  zag_fld_hyp_cal, zag_mas_opn_xsl

int zag_men_wri | ( | ) |

Writes text of selected menu selection into the current field.

Menu userexit to write the text of the passed menu selection into the current field. To use another text than this selection, a corresponding string may be passed to this userexit. The purpose of this userexit is:

- to execute the post- and pre-field userexit together, not only if the user enters another field.
- to write a different string than the selection text into the field.

Parameters:

  cp_Parameter | Parameter to control the behavior of this function. Syntax is: "[<value>] [/NO_FLD_USX] [/NO_CLEAR]" with possible arguments:
  | value | String to write into current field, otherwise menu text will be used.
  NO_FLD_USX |  | Option to suppress field userexit calls.
  NO_CLEAR |  | Option to suppress clearing of field before new value is inserted.

Returns:

  0 | OK
  1 | Error in pre- or post-field userexit.
  -1 | Error: No current menu, field or row.

See also:
  zag_sel_ins

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