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_ParameterParameter 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_parParameter, 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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:
cpParameterthe 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.
cpIgnReserved
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:
cpParnot used
cpIgnnot 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:
cpParParameter 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.
cpIgnnot 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:
cpParnot used
cpIgnnot 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:
cpParnot used
cpIgnnot 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:
cpParnot used
cpIgnnot 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:
cpParnot used
cpIgnnot 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:
cpParnot used
cpIgnnot used
Returns:
0 OK
Else Error
int sig_set_tmp_pwd (  )

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

Parameters:
cpParnot used
cpIgnnot used
Returns:
0 ok
1 error
int sig_shw_cer (  )

Shows the main data of a certificate in a form.

Parameters:
cpParnot used
cpIgnnot 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:
cpParnot used
cpIgnnot used
Returns:
0 OK
Else Error
int sig_unl_key (  )

The userexit unlocks a locked key record.

Parameters:
cpParnot used
cpIgnnot used
Returns:
0 OK
Else Error
int sig_usr_pra (  )

Selects the keys of the current user.

Parameters:
cpParnot used
cpIgnnot used
Returns:
0 ok
1 error
int tol_select (  )

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

Parameters:
cp_parReserved
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:
CpParParameter to open the relation list. Syntax like:
"entity2 view [/CTX=context]"


with possible arguments

entity2entity name Name of the second entity for the relation.
viewview name Name of the view for the relation.
CTXcontext 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_ParParameter 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:
usxCtxMenu userexit context.
cp_parReserved.
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:
usxCtxMenu userexit context.
cp_parReserved.
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:
usxCtxMenu userexit context.
cp_parReserved.
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:
usxCtxMenu userexit context.
cp_parReserved.
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:
usxCtxMenu userexit context.
cp_parReserved.
Returns:
0 OK
int xase_opn_frm ( const char *  param,
const char *  ignore 
)

Opens the corresponding form for selected record.

Parameters:
usxCtxMenu userexit context.
paramReserved.
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:
usxCtxMenu 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:
contextThe context of the userexit
paramReserved
Returns:
0 OK
Else Error
Exceptions:
IllegalArgumentExceptionThe 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.
Parameters:
contextThe userexit context.
paramThe 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:
contextThe context of this trigger.
paramReserved
Returns:
0 OK
else Error
inline_dotgraph_3.dot

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:
contextThe context of the userexit
paramReserved
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:
contextThe context of the userexit
paramReserved
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:
contextThe context of the userexit
paramParameter 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:
contextThe userexit context.
paramThe 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:
contextThe context of the userexit
paramThe 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:
contextThe context of the userexit
paramReserved
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:
contextThe menu userexit context
paramParameter 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:
contextThe context of the userexit
paramReserved
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:
contextThe 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:
contextThe context of the userexit
paramReserved
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:
paramParameter 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:
paramParameter 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:
contextthe current context of the trigger
paramaddition 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:
cpParameterParameter 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:
cpParameterStandard 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:
paramAdditional 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:
contextMenu userexit context
paramParameter 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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramParameter 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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramParameter 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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramParameter 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:
contextMenu userexit context
paramParameter 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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
cpArgumentsParameter 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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramParameter 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:
contextAction userexit context
paramReserved
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:
contextMenu userexit context
cpParameterParameter 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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMenu userexit context
paramReserved
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:
contextMask userexit context
paramReserved
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:
contextAction userexit context
paramParameter 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:
contextMenu userexit context
paramParameter 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:
contextTransition userexit context
paramParameter 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]contextuserexit context
[in]paramuserexit 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]contextuserexit context
[in]paramuserexit 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]contextuserexit context
[in]paramParameter 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]contextuserexit context
[in]paramuserexit 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:
cpParParameter 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_parParameter 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_parParameter 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:
cpParParameter 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_strParameter 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_parameterParameter 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_entNamParameter 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_parParameter 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:
usxCtxMenu userexit context.
cp_parParameter 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_nameParameter 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:
usxCtxMenu userexit context.
cp_parParameter 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_strParameter 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_ParameterParameter 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:
usxCtxMenu userexit context.
cp_parParameter 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_ParameterParameter 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_ParameterParameter 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:
contextthe trigger context
paramreserved
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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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_Parameternot 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_Parameternot 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_Parametervault 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_Parameterbackup 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_ParameterParameter 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_Parameternot 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter 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.
NORESCHECKIf 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:
cpParnot used
cpIgnignored
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:
cpParnot used
cpIgnignored
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:
cpParnot used
cpIgnignored
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:
contextThe trigger context
paramThe 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_ParameterReserved.
Returns:
0 OK
1 Error
int xhisto_get_his_all (  )

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

Parameters:
par_strParameter 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:
cpArgumentsParameter 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)):

KeywordAction
_ENTITYIf 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.
_TABLEIf 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.
_MASKIf 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.
_MENUIf 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:
cpArgumentsParameter 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_ParameterReserved.
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_ParameterParameter 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_ParameterParameter 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_parParameter 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:
cpParameterParameter 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
ABORTABLEIf specified, the user is allowed to abort the operation
NOMSG If specified, mes_xof/mes_xon is used to supress messages
cpIgnoreDefault 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:
cpParameterParameter 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_parParameter 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_parParameter 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:
ctxThe userexit context.
paramParameter to control the behavior of this userexit. Syntax like:
"[/HIGHEST_ONLY][/NO_COLLAPSE_VIEW_ALL]"

With possible arguments:

HIGHEST_ONLYThis 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_ALLBy 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:
ctxThe userexit context
paramParameter to control the behavior of this userexit. Syntax like:
"[listName]"

With possible arguments:

listNameThe 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:
ctxThe userexit context.
paramParameter to control the behavior of this userexit. Syntax is:
"[principalCid|maskName]"

With possible arguments:

principalCidThe 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.
maskNameThe 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:
ctxThe userexit context.
paramParameter to control the behavior of this userexit. Syntax like:
"[principalCid|maskName]"

With possible arguments:

principalCidThe 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.
maskNameThe 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:
ctxThe userexit context
paramParameter to control the behavior of this userexit. Syntax like:
"[/FORCE]"

With possible arguments:

FORCEOptional 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:
ctxThe userexit context
paramParameter to control the behavior of this userexit. Syntax like:
"xcpy_str-parameters"

With possible arguments:

xcpy_str-parametersThe 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:
ctxThe userexit context.
paramParameter to control the behavior of this userexit. Syntax is:
"[principal-ID|/ALL]"

With possible arguments:

principal-IDThe PROJ_ID of the project or the EDB_ID of the organizational unit from which to delete the assignment.
/ALLFor 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:
ctxThe userexit context
paramParameter to control the behavior of this userexit. Syntax is:
"xver_del_ver-parameters"

With possible arguments:

xver_del_ver-parametersThe 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:
ctxThe userexit context
paramParameter to control the behavior of this userexit. Syntax is:
"iwf_exi_edt-parameters"

With possible arguments:

iwf_exi_edt-parametersThe 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:
usxContextThe userexit context.
paramAdditional 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:
ctxThe userexit context
paramParameter to control the behavior of this userexit. Syntax is:
"/DO={SET|RESET}"

With possible arguments:

DOSET, RESETSets 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:
ctxThe userexit context.
paramParameter to control the behavior of this userexit. Syntax is:
"[principalCid|maskName]"

With possible arguments:

principalCidThe 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.
maskNameThe 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:
ctxThe userexit context.
paramReserved.
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:
ctxThe userexit context.
paramParameter 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:
contextThe context of the userexit
paramnot 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:
contextThe context of the userexit
paramnot 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:
contextThe context of the userexit
paramnot 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:
contextThe context of the userexit
paramnot 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:
contextThe context of the userexit
paramnot 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:
contextThe context of the userexit
paramNot 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:
contextThe context of the userexit
paramNot 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_ParParameter to control if a 'SAVE' or a 'SAVE AS' option should be performed. The default option is 'SAVE'. Syntax like:

/SAVE_ASA 'SAVE AS' option is performed.
/SILENTSaves the query without user interaction.
/ALL_FIELDSSaves 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_ParameterSyntax like: /SAVE_AS /SILENT /MODE /CURRENT_ONLY

/SAVE_ASDefines logical name to be used for query.
/SILENTSaves 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_ONLYSaves 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_ParameterParameter to control the behavior of this userexit - reserved.
lp_FieldsLong 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_ParameterParameter 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_ParameterParameter 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_ParameterParameter to control the behavior of this userexit. Syntax like:
"/FNC=res_func [/PAR=param] [/SINGLE]"


With possible arguments:

FNCfunctionName Defines the name of the reservation function.
PARparam Optional parameter to set parameters for the reservation function.
SINGLEOptional 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_ParameterReserved.
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_ParameterParameter 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_ParameterParameter 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_ParParameter used to open the relation widget (iwf_lis_ref)
e.g.for sml: EDB-GROUP EDB-ARTICLE ATT EDB-GRP-ART-RLI
forvariants: EDB-ARTICLE EDB-ARTICLE ATT EDB-ART-ATT-RLI
NULLThe standard list and the view ATT is used.
/FRMThe 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_ArgumentsUserexit 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_ParameterUserexit 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:
parUserexit 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_ParameterUserexit 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>-{LISFRM}-<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:
usxContextThe userexit context.
paramReserved.
Returns:
0OK
ElseError 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:
usxContextThe userexit context.
paramParameter to control the behavior of this userexit. Syntax like:
"/USX=usxName /PAR=usxParam"

with possible arguments:

USXusxNameUserexit to open the state form.
PARusxParamParameter for the userexit to open the state form.
Returns:
0OK
1Error 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:
usxContextThe userexit context.
paramParameter to control the behavior of this userexit. Syntax like:
"level /PAR=task-id /SYSTEM [/NO_HIST] [/FROM=ValFrom] [/UNTIL=ValUntil]"

with possible arguments:

levelOptional 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.
PARtask Id Optional unique identifier of a task for parallel release procedures.
SYSTEMIf 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_HISTOptional parameter to suppress the writing of an history entry for the transition
FROMdate 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".
UNTILdate 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:
0OK
25Record missing in action.
ElseError 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:
usxContextThe userexit context.
paramReserved.
Returns:
0OK
ElseError 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:
usxContextThe userexit context.
paramParameter to control the behavior of this userexit. Syntax like:
"LEV_IND [/PAR=taskId] [/SYSTEM] [/FROM=ValFrom] [/UNTIL=ValUntil]"

with possible arguments:

LEV_INDnew 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
PARtaskIdThe 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.
FROMdateOptionally, a specific date to use as "valid-from" date.
UNTILdateOptionally, 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:
ctxContext of the userexit
paramParameter 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:
ctxUserexit context
paramParameter 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_ParameterUserexit 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_ParameterUserexit 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:
parUserexit 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_ParameterUserexit 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_ParameterUserexit 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_strParameter 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:
usxCtxThe menu userexit context for this userexit.
paramParameter 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:
usxCtxThe menu userexit context for this userexit.
paramParameter 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:
usxCtxThe menu userexit context for this userexit.
paramParameter 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_strParameter 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:
cpParDefault parameter (currently not used).
cpIgnDefault 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
paramThe name of the mask for the dialog
Returns:
int
int xwfl_prc_resume (  )

Menu userexit to resume a process.

Parameters:
cpParDefault parameter (currently not used).
cpIgnDefault 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:
cpParDefault parameter (currently not used).
cpIgnDefault 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:
cpParDefault parameter (currently not used).
cpIgnDefault 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_nameParameter 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:
cpParParameter 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_ParameterParameter 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.