# Userexits

Functions

## Post-Action userexits
[Action userexits]

### Functions
int | bvb_uti_ins_cns_poa ()
| The post-action userexit copies the inserted record into another widget that is related to the current widget with a constraint.
int | edb_ief_set_usr_acc ()
| This userexit sets the access rights of the current data record.
int | nsv_usx_blk_poa ()
| Post-action userexit to fill the calculated field for the start column 'NUM_BLK_STARTCOL' considering the value of field 'T_NUM_BLK.STARTCOL'.
int | sig_cfg_poa ()
| Writes field values into the config parameters, if "store" was choosen.
int | sig_chk_sgn ()
| Verifies a digital signature of a data record.
int | sig_poa ()
| Checks if a record is signed and denies delete actions.
int | tol_post_act ()
| Post-action userexit to calculate fields of the current mask.
int | tol_set_log_poa ()
| Post-action userexit to set logic fields to the value TRUE or FALSE, depending on the given origin field.
int | xartic_post_action ()
| Post-action userexit for item widgets.
int | xartst_post_action ()
| Post-action userexit for item structures.
int | xatt_poa (const char *param1, const char *param2)
int | xchg_chk_ewo_poa (const char *param1, const char *param2)
int | xchg_chk_opr_poa (const char *param1, const char *param2)
int | xchg_cpy_ewo_sel_poa (const char *param1, const char *param2)
int | xchg_ewo_poa (const char *param1, const char *param2)
int | xchg_ewr_poa (const char *param1, const char *param2)
int | xchg_log_opr_hie_poa (const char *param1, const char *param2)
int | xchg_log_opr_std_poa (const char *param1, const char *param2)
int | xcls_chk_att_set_poa (const char *param1, const char *param2)
int | xcls_ins_set_poa (const char *param1, const char *param2)
int | xcnf_cps_elm_poa (const char *param1, const char *param2)
int | xcnf_cps_elm_str_poa (const char *param1, const char *param2)
int | xcnf_cps_sol_poa (const char *param1, const char *param2)
int | xcnf_cps_sol_rul_poa (const char *param1, const char *param2)
int | xcnf_ebo_poa (const char *param1, const char *param2)
int | xcnf_ord_poa (const char *param1, const char *param2)
int | xcnf_ord_spc_poa (const char *param1, const char *param2)
int | xcnf_prd_cla_poa (const char *param1, const char *param2)
int | xcpa_ali_art_poa ()
| Post-action userexit for the Alias IDs constraint list, e.g. EDB-CPA-ART-CNS-SLI.
int | xcpa_obj_poa (const char *param1, const char *param2)
int | xcps_alt_itm_poa (const char *param1, const char *param2)
int | xcps_alt_poa (const char *param1, const char *param2)
int | xcps_cmp_poa (const char *param1, const char *param2)
int | xcps_elm_poa (const char *param1, const char *param2)
int | xcps_flt_poa (const char *param1, const char *param2)
int | xcps_mdl_bom_poa (const char *param1, const char *param2)
int | xcps_mdl_bom_sel_poa (const char *param1, const char *param2)
int | xcps_mdl_sel_poa (const char *param1, const char *param2)
int | xcps_prl_chk_vie_poa (const char *param1, const char *param2)
int | xcps_sol_item_poa (const char *param1, const char *param2)
int | xcps_sol_mul_poa (const char *param1, const char *param2)
int | xcps_sol_poa (const char *param1, const char *param2)
int | xcps_sol_spc_poa (const char *param1, const char *param2)
int | xctx_poa (const char *param1, const char *param2)
int | xdir_post_act ()
| Post-action userexit for directory list.
int | xdocfi_poa ()
| Post-action userexit for document-file relation masks.
int | xdocfi_sto_poa ()
| Post-action userexit for file-vault relation masks.
int | xdocst_post_action ()
| Post-action userexit for document structures.
int | xdocty_post_action ()
| Post-action userexit for document type widgets.
int | xdocum_post_action ()
| Post-action userexit for document master masks.
int | xedb_ofs_hie (const char *param1, const char *param2)
int | xedb_poa ()
| Basic post-action userexit.
int | xedb_poa_vie ()
| Basic post-action userexit.
int | xedb_rel_poa ()
| Basic post-action userexit for relation widgets.
int | xgroup_post_action ()
| Post-action userexit for class form and list.
int | xgrpst_post_action ()
| Post-action userexit for classification group structure.
int | xhisto_post_action ()
| Post-action userexit for object history relation widgets.
int | xinfo_srv_inf_poa (const char *param1, const char *param2)
int | xknl_cre_itm_poa (const char *param1, const char *param2)
int | xknl_del_itm_poa (const char *param1, const char *param2)
int | xknl_itm_con_sho (const char *param1, const char *param2)
int | xknl_itr_rel_uni (const char *param1, const char *param2)
int | xmgt_str_poa ()
| Post-action userexit for the 'As built' item structure.
int | xmtx_poa ()
| Post-action userexit for matrix list.
int | xntm_poa ()
| Post-action userexit for notes administration widgets.
int | xntm_post_act ()
| Post-action userexit for note manager widgets.
int | xntree_upd ()
| Post-action trigger to reread n*tree definitions from the database.
int | xpac_post_act ()
| Post-action userexit at the master or type list of the master and type element packet.
int | xpdw_add_pro_obj_poa (const char *param1, const char *param2)
int | xpdw_del_pro_obj_poa (const char *param1, const char *param2)
int | xpdw_frm_acc_poa (const char *param1, const char *param2)
int | xpdw_mas_poa (const char *param1, const char *param2)
int | xpdw_obj_poa (const char *param1, const char *param2)
int | xpdw_pdw_poa (const char *param1, const char *param2)
int | xpdw_ppj_poa (const char *param1, const char *param2)
int | xpdw_pro_poa (const char *param1, const char *param2)
int | xpdw_pro_str_poa (const char *param1, const char *param2)
int | xpdw_rel_poa (const char *param1, const char *param2)
int | xpdw_ver_poa (const char *param1, const char *param2)
int | xpdw_vfg_str_poa (const char *param1, const char *param2)
int | xproje_post_action ()
| Post-action userexit for widgets with project data.
int | xprost_post_action ()
| Post-action userexit for project structures.
int | xrole_task_poa ()
| Checks if task is assigned to a role and displays a warning message if the task becomes free available to all users.
int | xsmlc_poa ()
| Post-action userexit for the item form with class attributes folder.
int | xsmldf_poa ()
| Post-action userexit for attributes definition form.
int | xstate_chk_poa (const char *param1, const char *param2)
int | xstate_chk_vie_poa (const char *param1, const char *param2)
int | xstate_cur_poa (const char *param1, const char *param2)
int | xstate_rst_vie_poa (const char *param1, const char *param2)
int | xstate_tra_poa (const char *param1, const char *param2)
int | xtxt_ins_poa (const char *param1, const char *param2)
int | xtxt_pli_pos_act (const char *param1, const char *param2)
int | xtxt_pos_del_chk_fld (const char *param1, const char *param2)
int | xtxt_tpl_ins_poa (const char *param1, const char *param2)
int | xtxt_tpl_poa (const char *param1, const char *param2)
int | xtxt_whr_use_pra (const char *param1, const char *param2)
int | xvar_post_action ()
| Post-action userexit for variant lists.
int | xvardf_poa ()
| Post-action userexit for the variant form (mask EDB-ART-VAR-Sxx).
int | xwfl_prc_createGroup ()
| Post-action userexit to create a group for process templates and ad hoc processes.

### Function Documentation

int bvb_uti_ins_cns_poa | ( | ) |

The post-action userexit copies the inserted record into another widget that is related to the current widget with a constraint.

Parameters:

  cp_par | Working mode and current row
  cp_Constraint | Name of constraint to be used

Returns:

  0 | OK
  1 | Error
  2 | Constraint name is missing or invalid
  3 | Entity for second table does not exist
  4 | Cannot open widget for second entity
  5 | Cannot allocate enough memory
  6 | Field does not exist
  7 | Unable to create a new record in second widget
  8 | Cannot write record

int edb_ief_set_usr_acc | ( | ) |

This userexit sets the access rights of the current data record.

This IEF post-action userexit determines the owner, the group and the access rights for the read-in data record during reading in. If the user parameter has the value (TOP), the rights and users of the parent element are used for relationships.

It is necessary that always all three values are set. If the userexit is used "@USER", "@GROUP" and "@RIGHTS" must be entered in the field definition. This data records might otherwise belong to the user "SYSTEM" and the group "DATAVIEW".

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "[/PARAM=(TOP) ]/WIDGET=<widget> /OWNER=<uic> /GROUP=<gic> /RIGHTS=<access> /ROW=<row>" With possible arguments:
  PARAM | (TOP) | Access rights of the parent are retrieved
  WIDGET | widget | DataView's widget ID
  OWNER | uic | DataView's user ID
  GROUP | gic | DataView's group ID
  RIGHTS | access | DataView's acces rights
  ROW | row | Row of the widget

Returns:

  0 | OK

int nsv_usx_blk_poa | ( | ) |

Post-action userexit to fill the calculated field for the start column 'NUM_BLK_STARTCOL' considering the value of field 'T_NUM_BLK.STARTCOL'.

This userexit covers the following actions:

'Q'uery | Fills the calculated attribute 'NUM_BLK_STARTCOL'.

Parameters:

  cp_par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  Else | Error

int sig_cfg_poa | ( | ) |

Writes field values into the config parameters, if "store" was choosen.

Parameters:

  cpPar | standard parameters
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int sig_chk_sgn | ( | ) |

Verifies a digital signature of a data record.

The function get the certificate of the user which has signed the record and verify the signature. The configuration data for the function is stored in the configuration table (EDB-SIG).

Parameters:

  cpPar | Parameter to control the behaviour of this function. Syntax like: "[/OBJ=object] [/NO_CERT]" with possible arguments:
  OBJ | object | Entity option: "AUTO" = automatic check for the actual entity. "ART" = EDB-ARTICLE. "DOC" = EDB-DOCUMENT. "PRO" = EDB-PROJECT.
  NO_CERT |  | If the option is passed, no certificate dialog will be shown.
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int sig_poa | ( | ) |

Checks if a record is signed and denies delete actions.

Parameters:

  cpPar | not used
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int tol_post_act | ( | ) |

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

This userexit is frequently used to complete empty fields by opening related masks (in virtual mode) and reading specified fields.

Parameters:

  cp_par | Standard parameter defining working mode and current row

Returns:

  0 | OK
  Else | Error

int tol_set_log_poa | ( | ) |

Post-action userexit to set logic fields to the value TRUE or FALSE, depending on the given origin field.

The logic field (target field) will be set to FALSE if the origin field is empty or consists of a value like 0 only. Otherwise TRUE will be set.

Parameters:

  cp_par | Standard parameter defining working mode and current row

Returns:

  0 | OK
  Else | Error

int xartic_post_action | ( | ) |

Post-action userexit for item widgets.

This trigger performs the following actions:

'I'nsert | Create an entry in `BVB-ARTICLE` (base item without version). Insert history entry (xhisto_put_his).
'T'emporary delete | Reset current flag from predecessor version (xver_reset_ver).
'Q'uery | Reset user view (xedb_rst_vie).

Parameters:

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

Returns:

  0 | OK
  1 | Could not create `BVB-ARTICLE` record.
  2 | Could not delete `BVB-ARTICLE` record.

int xartst_post_action | ( | ) |

Post-action userexit for item structures.

In 'I'nsert and 'R'ollback mode, the BOM and the AGG flags are updated. In 'Q'uery mode, the userexit `xstate_rst_vie_poa` is called to reset the view filter.

Parameters:

  par | Standard parameter defining working mode and current row.

Returns:

  0 | OK

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

Post-action userexit for classification lists.

This userexit deals with the following actions:

'I'nsert | Opens a new virtual widget with the classification list (using the given input arguments) and copies the contents of dynamically created attribute fields of the original classification list into this virtual widget. The content of the first dynamic field has already been copied to the attribute field within the pre-action userexit!
'U'pdate | Updates the database records only for the changed attribute values.
'Q'uery | Copies the query results from the 'cloned' virtual widget into the original classification list, so that they become visible to the user. Deletes temporary entries in table T_REC_DAT.
'R'ollback | Resets the negative C_IDs of the attributes records in the database.

Parameters:

  context | Userexit context.
  cp_UserPar | Additional parameter for the pre-action userexit, syntax like: "/TABLE=table_name /REF_LIS=relation /SUB" with: table_name table name for classification list (e.g. T_MASTER_ATT). This table must be a refine table from entity EDB-GROUP to the corresponding entity, e.g. EDB-ARTICLE. relation The parameter string which is passed to the DataView userexit 'iwf_lis_ref' to open the virtual widget for the classification list (e.g. EDB-ARTICLE EDB-ARTICLE ATT EDB-ART-ATT-RLI2). If key /SUB is set, then the class is a container class and the userexit will not see it as an Error if attribute columns are missing, no Error message is put on the screen if attribute columns are missing.

Returns:

  0 | OK
  Else | Error

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

Checks if a Work Order is already used by a predecessor.

Post-action userexit that checks if the Work Order referenced by a new version is the same as the Work Order of the predecessor.
If so, an error is returned.

The predecessor can be determined in two ways:

- By chain - try to find the predecessor by following the version chain; this will of course only work for entities with a version relation.
- By field - check for the predecessor by comparing one or more fields,
  for instance `EDB_ITM_REF` in case of `EDB-ARTICLE` or `POS_NO` in case of a BOM.

If the predecessor is determined by field, the list used for the search operation can be specified by the `/LIST=someList` argument.
If this option is omitted, the current widget is cloned and the search operation is performed at this clone.

Use /LIST to pass the name of a "light" widget for this entity, especially if fired query userexits at the clone widget would take too much time during mass data import.

Parameters:

  context | Action context
  param | Controls how predecessors are searched: `/BYCHAIN|/BYFIELD={field1,field2,field3,...} [/LIST=someList]`

Returns:

  0 | OK, Work Order not used by any predecessor
  1 | A predecessor referencing this Work Order was found

Exceptions:

  ChgException | Work Order already used by the predecessor, exception code is EDB_CHG_ERR_VER_EWO

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

Basic post-action userexit used to clear operation view fields in recursive widgets.

This is necessary because otherwise 'Take Entry' selection in recursive widgets will copy the old values for the Work Set and change operation into the new relation record.

- Working mode 'I'nsert, 'U'pdate, 'C'opy or 'Q'uery: Clear view operation fields(V_OPR_EWO_FRM, V_OPR_EWO_UNTIL)

Remarks:
  This userexit is called by the system userexit xedb_usx_sys_poa

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for Work Order select-list to select a Work Order for _from/_until Work Sets.

This userexit copies the field vaules t_ewo_dat.edb_id and t_ewo_dat.elem_id to the corresponding view fields.

Parameters:

  cpArguments | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for the Work Order mask.

This userexit is for future use of the Work Order mask.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Pre-action userexit for the Work Request mask.

The userexit supports the following modes:

'I'nsert | If the Change Management is active, the userexit creates the relation to the preliminary Work Order.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userexit to calculate the hierarchical view of change operations.

The general algorithm to create a hierarchical view of change operations is:

1. Create a dependency graph (strict hierarchical tree) for all concerned change operations.
2. Determine the entry point(s) in the dependency graph.
3. Traverse all entry points in configured order or in chronological order (if /NO_ORDER is passed).
4. "Pre-Order"-traverse all dependencies of the entry points.

If a new part is assembled in two or more assemblies, it will be listed as a sub-element of the first structure only.

The dependency graph is created as follows:

     for (each Change Operation that is not an affected object) do
       add Change Operation to Change Operation List;
       if (the Change Operation (I) refers to a relation) do
         for (each parent object in child relation of other relation refering change operations (II)) do
           add dependency from (I) to (II); // II isParentOf I
         for (each parent object in object relation of other object refering change operations (II)) do
           add dependency from (I) to (II); // II isParentOf I
         for (each child object in parent relation of other relation refering change operations (II)) do
           add dependency from (II) to (I); // I isParentOf II
         for (each child object in object relation of other object refering change operations (II)) do
           add dependency from (II) to (I); // I isParentOf II
       else
         for (each object in parent relation of other relation refering change operations (II)) do
           add dependency from (II) to (I); // I isParentOf II
         for (each object in child relation of other relation refering change operations (II)) do
           add dependency from (I) to (II); // II isParentOf I

Parameters:

  context | The context of the userexit
  param | Parameter to control the behavior of this function. Syntax like: "[/NO_ORDER]" With possible arguments:
  NO_ORDER | Pass this option if a change operations shall not be ordered (for performance reasons).
  | If this option is not passed, the change operations are ordered based on the configured sort order of the assigned object type(s).

Returns:

  0 | OK
  Else | Error

Example:

A user performs a "Copy with structure" and moves on modifying the copied structure (legacy objects are grey colored):

Finally the change operation folder would end up in a representation similar to:

Standard view | Dependency graph | Hierarchical view
--- | --- | ---
Id | Level | Change Operation
--- | --- | ---
0 | `0` | Copy with Structure Part A1
1 | ``.1 | Add Part A1 - Part B
2 | ``.1 | Add A1 - Part C
3 | `0` | Create Part D
4 | `0` | Add Part D - Part G
5 | `0` | Add Part A1 - Part H
6 | `0` | Add Part A1 - Part D
7 | `0` | Add Part A2 - Part A1
Id | Level | Change Operation
--- | --- | ---
7 | `0` | Add Part A2 - Part A1
0 | ``.1 | Copy with Structure Part A1
1 | ``..2 | Add Part A1 - Part B
2 | ``..2 | Add Part A1 - Part C
6 | ``..2 | Add Part A1 - Part D
3 | ``...3 | Create Part D
4 | ``....4 | Add Part D - Part G
5 | ``..2 | Add Part A1 - Part H

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

Post-action userexit to calculate the standard view of change operations.

The standard view orders all operations based on the EDB_GROUP attribute. Add option "/NO_ORDER" to get the order of records as it is returned by the database view.

Parameters:

  context | The context of the userexit
  param | Parameter to control the behavior of this function. Syntax like: "[/NO_ORDER]" With possible arguments:
  NO_ORDER |  | Pass this option if the change operations shall not be ordered (for performance reasons).
  |  | If this option is not passed, the change operations are ordered based on the EDB_GROUP attribute.

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for class set form to check max.

limit of 255 attributes fields for class. Is called in insert or update mode in the classification list when a set is assigned to a class.

Parameters:

  context | Pre-action userexit context

Returns:

  0 | Success |  | Else | Error

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

Post-action userexit for class attributes mask.

Assigns the primary attribute set to a class, if it was not already assigned (insert and update mode).

Parameters:

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

Returns:

  0 | Success |  | Else | Error

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

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

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

Parameters:

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

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for order specifc product structure element positions.

'I'insert , 'U'pdate, Temp-Delete | Checks if it is allowed to delete the structure element. Only order specific structure elements can be deleted. Updates the order status.
'Q'uery | Sets the order specifc flag.
'I'insert | Checks the position number, must be greater 0.

Parameters:

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

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for product structure element structure.

Parameters:

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

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for specification rule widgets opened from the solution widget over a hyperlink.

'Query, 'U'pdate | Call function "createRuleExplicit" to generate the rule and write the result in the calculated field "Rule Explicit".

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Post-action user exit for creating EBO's.

Parameters:

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

Returns:

  0 | OK
  1 | Error

Remarks:

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

Post-action userexit for the configuration order widget.

If a model is assigned to the configuration order, the userexit assigns all specifications from that model to this configuration order.

Parameters:

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

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for order specification aggragate list.

Resets the specifications check date of the associated order if the assignment of the specifications were changed.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for product variant list.

This userexit deletes the associated T_GROUP_DAT child record (the product variant) if the T_GROUP_STR record (assignment of the product variant to the product family) is deleted.

Parameters:

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

Returns:

  0 | OK
  1 | Error

int xcpa_ali_art_poa | ( | ) |

Post-action userexit for the Alias IDs constraint list, e.g. EDB-CPA-ART-CNS-SLI.

This post-action userexit checks if the Alias ID is already assigned to an item revision which belongs to another item master.

'I'nsert or 'U'pdate | This userexit checks if the Alias ID is already assigned to an item revision which belongs to another item master.

Parameters:

  param | Additional argument string (reserved).

Returns:

  0 | OK.
  1 | Error from epq.
  2 | Field not found.
  3 | No record in edit mode.
  4 | No widget is active.
  5 | Alias ID is already assigned to another item revision which belongs to another item master.

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

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

'I'nsert | Inserts a record into the Alias ID table (for example, T_CPA_ART_DAT, T_CPA_DOC_DAT) if an Alias ID is entered.

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

Parameters:

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

          Additional argument string. Syntax is:

      "param /TABLE=<view table> /ENTITY=<entity name>"

      With possible arguments:

      param         Main argument.

      /TABLE  <view table>="">  Name of the view table (e.g. V_CPA_ART_DAT).

      /ENTITY <entity name>=""> Name of the Alias ID entity (e.g. EDB-CPA-ARTICLE).

Returns:

      0OK

      1Field not found.

      2No parameter is set.

      3No record in edit mode.

      4Key ENTITY not set.

      5Key TABLE not set.

      6Error when reading the field value.

      7No widget is active.

      8Cannot open widget.

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

Post-action userexit for variant masks (modular BOM solutions).

This userexit deals with the following actions:

'Q'uery | If EDB_ITEM_VERSION_REF and EDB_ITEM_MASTER_REF fields are filled, then the user has not selected an explicit item revision. So an asterix '*' is put to the field PART_VERSION.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

See also:
  xcps_alt_poa

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

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

This userexit deals with the following actions:

'Q'uery | Resets the current filter condition in the appropriate query field buffers.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for product components.

This userexit deals with the following actions:

'I'nsert | Update state description fields.
'Q'uery | Resets view filter.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for product structure elements.

This userexit deals with the following actions:

'Q'uery | Resets filter query

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | Ok
  Else | Error

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

Post-action userexit for filters.

This userexit deals with the following actions:

'Q'uery | Updates calculated fields.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for the BOM overview sublist.

This userexit deals with the following actions:

'Q'uery | Sets the offset in the BOM-level field.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for product structure element selector list.

Dummy userexit.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK

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

Post-action userexit for product structure element selector form.

Dummy userexit.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK

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

Post-action userexit for parallel structure view lookup widgets.

Dummy userexit.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK

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

Post-action userexit for the item selector.

This userexit deals with the following actions:

'Q'uery | Deletes multiple entries for the same ATT_NO in the select widget.

Parameters:

  context | Action userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/DISTINCT=field [/EFF=[NOT_WITHDRAWN|RELEASED|ALL]]" With possible arguments:
  DISTINCT | field | Column where duplicates are checked.
  EFF |  | If the option is not passed, value NOT_WITHDRAWN is used.
  | NOT_WITHDRAWN | All not yet withdrawn product component-class relations are considered.
  | RELEASED | Only released relations are considered.
  | ALL | All relations are considered.

Returns:

  0 | OK
  Else | Error

See also:
  xcps_sol_item_prm

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

Post-action userexit for multi-edit solution list.

The userexit executes a BOM explosion of the modular BOM and writes all solution records into the mask.

Parameters:

  context | Mask userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

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

This userexit deals with the following actions:

'I'nsert, 'U'pdate, 'C'opy | Sets the default EDB-CPS-SOL-PRD value from field V_CPS_PRD_SOL.PART_ID.
'Q'uery | Resets the current filter conditions.

Parameters:

  context | Action userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Post-action userxit for the solution space sub-list of product structure element.

This userexit deals with the following actions:

'Q'uery | Copies the query criteria from the current widget to the specified classification list with CPS attributes (e.g. EDB-GRP-ART-CPS-SLI). Determines the correct solutions space records by applying existing filter for the structure position and copies the records into the solution space widget.

Parameters:

  context | Action userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/MASK=list /EFF=[NOT_WITHDRAWN|RELEASED|ALL]" With possible arguments:
  MASK | list | Name of SML Mask with CPS element (e.g. /MASK=EDB-GRP-ART-CPS-SLI).
  EFF | NOT_WITHDRAWN | All yet not withdrawn product component - class relations are considered (default).
  | RELEASE | Only released relations are considered.
  | ALL | All relations (even withdrawn ones) are considered.

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for objects which can be assigned to a context, i.e.

which can be qualified.

This userexit deals with the following actions:

'Q'uery | Updates the values of the calculatory context columns after the object has been fetched from the database. Checks if displaying the context flag columns is switched on. If yes, sets the dynamic context column fields (which have been created by the pre-mask userexit) according to the current contents of the `EDB_IN_CONTEXT` field.

Parameters:

  ctx | Action userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

See also:
  xctx_prm, xctx_eda, xctx_pra

int xdir_post_act | ( | ) |

Post-action userexit for directory list.

This userexit deals with the following actions:

'Q'uery | Gets the filename and writes it to the list.

Parameters:

  cp_par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xdocfi_poa | ( | ) |

Post-action userexit for document-file relation masks.

The userexit supports the following modes:

'C'opy | Executed tasks: Updates the file - vault relation.
'U'pdate | Executed tasks: Updates the file - vault relation.

Parameters:

  cp_Parameter | standard action parameter
  cp_Arguments | Parameter to control the behaviour of this function. Syntax like: "[/DIS] [/NO_HIS]" With possible arguments:
  DIS |  | Current file is distributed in this vault and other.
  NO_HIS |  | No history entry for the initial check-in ('I'nsert mode).

Returns:

  0 | OK
  Else | Error

int xdocfi_sto_poa | ( | ) |

Post-action userexit for file-vault relation masks.

For future use.

Parameters:

  cp_Arguments | not used

Returns:

  0 | OK
  Else | error

int xdocst_post_action | ( | ) |

Post-action userexit for document structures.

In 'I'nsert and 'R'ollback mode, the BOM and the AGG flags are updated. In 'Q'uery mode, the userexit `xstate_rst_vie_poa` is called to reset the view filter.

Parameters:

  par | Standard parameter defining working mode and current row.
  cp_Arguments | Reserved for future use.

Returns:

  0 | ok
  1 | error
  -1 | database error

int xdocty_post_action | ( | ) |

Post-action userexit for document type widgets.

This userexit covers the following actions:

'I'nsert | Inserts a history entry by calling `xhisto_put_his`.
'U'pdate | Synchronizes the fields `C_VERSION` and `C_UPD_DAT` of `T_DOC_DAT` and with the type record, if necessary.
'Q'uery | Resets the view filter by calling `xedb_rst_vie`.
'T'emporary Delete | Checks for refine and aggregate relations. Deletes the document master record by calling `xtyp_del_mst`.

Note:
  If the default `EDB-DMS-DEL-REL-FIL` (type int) is defined and different from 0, all relations of the selected document to assigned files are also deleted. In this case, a document cannot be deleted if delete access on at least one document file relation is denied.

Parameters:

  par | Standard action parameter with working mode and current row.

Returns:

  0 | OK
  1 | Document cannot be deleted ('T' working mode).
  -1 | EPQ error (while checking document keys) or error reading database.
  3 | Error deleting document relations.

int xdocum_post_action | ( | ) |

Post-action userexit for document master masks.

The userexit covers the following actions:

'Q'uery | Calls the userexit `xstate_rst_vie_poa`.
'U'pdate | Updates `C_VERSION` and `C_UPD_DAT` of the assigned type record.
'R'estore | Resets the "current" flag (`CUR_FLAG`) of the predecessor.
'D'elete | Deletes the assigned files.

Parameters:

  par | Standard parameter with working mode and current row

Returns:

  0 | OK
  else | Error

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

Indents the structure explosion according to the hierarchy level.

This userexit deals with the following actions:

'Q'uery | Writes the indentation level to a specified field of the structure explosion.

Records that have a negative C_ID are removed from the widget. These are assumed to be in the trash widget (and shall be out of the user's view). This userexit prepends as many dots to the hierarchy level as it indicates. Thus, level 0 results in "0", level 1 results in "1", level 2 results in ".2" and so on.

Parameters:

  usxCtx | Action userexit context.
  cp_par | Parameter to control the behavior of this function. Syntax is: "[/FIELD=<field>]" With possible arguments:
  FIELD | field | Specifies the field that shall be updated. If this option is not passed, the field "HIERARCHY" is used.

Returns:

  0 | OK
  -1 | Database error

int xedb_poa | ( | ) |

Basic post-action userexit.

This userexit deals with the following action:

'I'nsert | Insert entry into history table.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xedb_poa_vie | ( | ) |

Basic post-action userexit.

This userexit deals with the following action:

'Q'uery | Query value for EDB view will be reset if fields CUR_FLAG, VAL_FROM and VAL_UNTIL exist in current widget.

Note:
  Userexit should be called in combination with pre-action userexit 'xedb_pra_vie'

Parameters:

  cp_Parameter | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

See also:
  xedb_pra_vie

int xedb_rel_poa | ( | ) |

Basic post-action userexit for relation widgets.

This userexit deals with the following actions:

'I'nsert | The BOM_FLAG of parent record and the AGG_FLAG of current record will be corrected if the widget represents an homogeneous structure (for example item-item relation) with relation view 'STR'.
'R'ollback | The BOM_FLAG of parent record and the AGG_FLAG of current record will be corrected if the widget represents an homogeneous structure (for example item-item relation) with relation view 'STR'.

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

Parameters:

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

Returns:

  0 | OK
  1 | Error

See also:
  xedb_rel_pra xedb_pra_str zag_dbi_chk_dis

int xgroup_post_action | ( | ) |

Post-action userexit for class form and list.

It resets the query buffer for class code field (T_GROUP_DAT.CLASS_CODE) to the previous value which is stored in the widget buffer.

Parameters:

  context | Userexit context.

Returns:

  0 | OK
  1 | Error

int xgrpst_post_action | ( | ) |

Post-action userexit for classification group structure.

This userexit covers the following actions:

'I'nsert | Increments entry for BOM-flag of parent record. Increments entry for AGG-flag of child record. Updates the inheritance attribute cache.
'T'emp. delete | Updates the inheritance attribute cache.
'R'ollback | Increments entry for BOM-flag of parent record. Increments entry for AGG-flag of child record. Updates the inheritance attribute cache.

Parameters:

  cp_Par | Standard parameter defining working mode and current row.

Returns:

  0 | OK
  XCLASS_NO_MORE_MEMORY | Out of memory.

See also:
  xgrpst_action xgrpst_pre_action

int xhisto_post_action | ( | ) |

Post-action userexit for object history relation widgets.

This userexit performs the following actions:

'I'nsert | For "MEMO" entries, the access is set to "dww".
'R'ollback | Rollback is allowed only if write access to parent record is granted.

Parameters:

  par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

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

Updates the system library information.

Parameters:

  usxContext | Action userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

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

Post-action userexit to create or assign an item master (BVB_ARTIKEL) when an item revision is created.

The item master is not created or assigned if the current widget buffer contains 'CRE_VER'. This is the case if a new item revision is created from an old one.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Post action userexit to delete the ItemMaster (BVB_ARTIKEL) if the only ItemRevision is deleted.

Parameters:

  cp_Parameter | Standard parameter with working mode and current row
  in | the form
  <ChildField>=<ParentField>[,<ChildField>=<ParentField>] |

Returns:

  0 | OK
  Else | Error

Note:
  This userexit only executes if called in 'D'elete mode.

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

Post-action userexit to set the attributes EDB_VONMEHR, EDB_NACHMEHR, EDB_UNIT_ONE ('1') and EDB_UNIT_EQUAL ('=') in the unit conversion list based on the attributes VONMEHR and NACHMEHR.

This userexit covers the following actions:

'Q'uery | The attributes are set if the current mask is 'BVB_ARTMEHUFK_NLI'.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Post-action userexit to set a relationship between an item master and a basic unit.

Parameters:

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

Returns:

  0 | OK
  Else | Error

int xmgt_str_poa | ( | ) |

Post-action userexit for the 'As built' item structure.

This userexit deals with the following actions:

'Q'uery | Adds the positions from the 'should build' BOM which have not been defined as physical components. It opens the 'should build' BOM in virtual mode and searches for those position.

Parameters:

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

Returns:

  0 | OK
  Else | Error

int xmtx_poa | ( | ) |

Post-action userexit for matrix list.

If only the database field xxx.QUANTITY has been specified, this field is treated in a special way: If the same item is assigned more than once to one of the alternative items, the quantity is added. So each item will appear only once in the matrix list.

This userexit deals with the following actions:

'Q'uery | Copies the content of the database fields (as defined for the pre-mask userexit 'xmtx_prm') into the individual columns of the items. If more than one field has been specified, the values of these fields are concatenated.

Note:
  This userexit can only be used for the matrix list!

Parameters:

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

Returns:

  0 | OK
  1 | Error

See also:
  xmtx_opn,xmtx_poa

int xntm_poa | ( | ) |

Post-action userexit for notes administration widgets.

This userexit deals with the following actions:

'I'nsert | Creates new note id number.
'D'elete | Resets internal global variable.

Parameters:

  par | Standard parameter with working mode and current row.

Returns:

  0 | OK
  1 | Error

int xntm_post_act | ( | ) |

Post-action userexit for note manager widgets.

Note of original record is copied and stored with new number. The new number is assigned as reference to the new record.

This userexit deals with the following actions:

'I'nsert | Copies notes and generates new note id in copy mode.

Parameters:

  cp_par | Standard parameter with working mode and current row.

Returns:

  0 | OK

int xntree_upd | ( | ) |

Post-action trigger to reread n*tree definitions from the database.

Checks if not in query mode and causes the n*tree module to empty its hashtable because the n*tree structure has potentially been changed.

The complete n*tree structure will be reread from the database the next time an n*tree is invoked.

Parameters:

  cpParameter | Default post-action parameter provided by DataView
  cpIgnore | Default parameter provided by DataView (reserved)

Returns:

  0 | OK
  Else | Error

int xpac_post_act | ( | ) |

Post-action userexit at the master or type list of the master and type element packet.

During copying, the content of the element packet is checked. After calling of the user the content is copied, too.

Parameters:

  par | Default parameter with working mode and current row

Returns:

  0 | OK
  other | Error

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

Creates the PDW views for a PDW object when the object is assigned to a project or organizational unit.

This userexit can be called as post-action userexit in a relation widget (both refine and aggregate), which connects a project or organizational unit to PDW objects like documents or items. In 'I'nsert mode, the userexit retrieves the project id, the object id, and the entity of the PDW object that was assigned, and creates the necessary entries in the PDW table for the entity.

Parameters:

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

Returns:

  0 | OK
  1 | Error

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

Removes PDW views from a PDW object when the object is removed from the project or organizational unit.

This userexit can be called as post-action userexit on a relation widget (both refine and aggregate) that connects a project or organizational unit to PDW objects like documents or items. In 'D'elete mode, the userexit retrieves the project id, the object id, and the entity of the PDW object that is deleted, and removes the entries from the PDW table for the entity.

Parameters:

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

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for the object access mask.

If the `VIEW_ALL` flag is set for a record, the value -1 is written into the temporary table to represent read access for "everyone". This userexit writes the string "Everyone" (depending on the current language) into the user name field of the object access list if the user id is -1.

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

Parameters:

  usxCtx | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

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

Post-action userexit to reactivate the multi access rights view.

Enables the multi access rights view in 'Q'uery mode.

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

Parameters:

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

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_mas_pre, xpdw_men_cnt_lis, xpdw_lgv_vie_on, xpdw_lgv_vie_off

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

Post-action userexit for object widgets in a multi access rights environment.

Depending on the mode, the following actions are performed:

- 'I'nsert: The relation record from the object to the "generate" project or organizational unit is created, so that the new object is visible in its "generate" project or organizational unit. The "generate" project or organizational unit can be passed as parameter (see below), otherwise the current project or organizational unit is taken.
- 'T'emporary delete: If the new multi access rights scheme (using the usual relationship tables like `T_PRO_STR` instead of special multi access rights tables) is activated, the relationship check flag in the repository is adjusted so that the object can be deleted even if the `PDW_GENERATE` relation record still exists.

Remarks:
  Has to be the first post-action userexit in the object widget.

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/PROJECT=projCid]|[ORGANIZATION=orgCid]" With possible arguments:
  PROJECT | project id | Optional parameter which contains the C_ID of the project for which the `PDW_GENERATE` relation is created. If this parameter is missing, the relation is created for the current project. This parameter is only valid if the userexit is called in a multi project environment.
  ORGANIZATION | organization id | Optional parameter that contains the C_ID of the organizational unit for which the `PDW_GENERATE` relation is created. If this parameter is missing, the relation is created for the current organizational unit. This parameter is only valid if the userexit is called in a multi organization environment.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_obj_eda, xpdw_obj_pre

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

Post-action userexit for PDW views.

In 'I'nsert mode, a new view is created.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for the template project widgets.

Depending on the mode, the following actions are performed:

- 'I'nsert: The template project is inserted in the multi access rights view table.
- 'U'pdate: The entries for the template project in the multi access rights view table are updated.
- 'R'ollback: The entries for the template project in the multi access rights view table are rolled back.

Parameters:

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

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_ppj_pre

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

Post-action userexit for principal widgets.

This userexit has to be attached as the first post-action userexit in widgets for projects or organizational units.

Depending on the mode, the following actions are performed:

- 'I'nsert: The multi access rights relation for the "generate" project or organizational unit is created so that the new project or organizational unit is visible in its "generate" project or organizational unit. The "generate" project or organizational unit can be passed as parameter (see below). If it is not passed as parameter, the current project or organizational unit is used.
- 'U'pdate: The userexit checks if the widget buffer keys `OLD_PRO` and `NEW_PRO` contain different values. If this is the case, the field `REF_PRO` in `T_POS_DAT` is updated to reflect the new project. This applies only to multi project access rights.
- 'T'emporary delete: If the new multi access rights scheme (using the usual relationship tables like `T_PRO_STR` instead of special multi access rights tables) is activated, the relationship checkbox flag in the repository is adjusted so that the object can be deleted even if the `PDW_GENERATE` relation record still exists.

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/PROJECT=ProjCid]|[ORGANIZATION=organizationId]" With possible arguments:
  PROJECT | project id | Sets the C_ID of the "generate" project. All higher level projects of the generate project have a view to the new project. Only applicable for multi project access rights.
  ORGANIZATION | organization id | Sets the C_ID of the "generate" organizational unit. All higher level organizational units of the generate organizational unit have a view to the new organizational unit. Only applicable for multi organization access rights.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_pro_eda, xpdw_pro_pre

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

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

'I'nsert: The entries in the corresponding multi access rights tables for the child structure are corrected. Child projects will be included in the view (if the inclusion flag is set), or not (if the inclusion flag is not set).

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_pro_str_pre

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

Post-action userexit for object relation widgets.

Creates the necessary records for the multi access rights views in 'I'nsert mode. If you add this userexit to a refine list then the view entries for the child record (and its child records etc.) are inserted if a view entry is not already available. Keep in mind that in this case the view to a possible aggregate direction is not added.

If you add these userexits to relation widgets of different entities (e.g. EDB-ART-DOC-RLI) then you have to define the configuration parameter EDB-PDW-REL-<entityname>. Otherwise the tolerance correction userexit will correct only homogeneous object relation entries.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_rel_eda, xpdw_rel_pre

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

Post-action userexit for version structures.

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

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

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error

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

Post-action userexit for object aggregate structures.

Suppresses display of aggregate records if VIEW_ALL flag is set and user has no read access to parent.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error

See also:
  xpdw_vfg_str_pra

int xproje_post_action | ( | ) |

Post-action userexit for widgets with project data.

Covers the following actions depending on the work mode:

- 'I'nsert: An entry in the history is created.
- 'R'ecover: The "current" flag from predecessor version is cleared by calling `xver_reset_ver`.
- 'Q'uery: The user "view" filter is cleared by calling `xstate_rst_vie_poa`.

Parameters:

  cp_Parameter | Standard parameter defining working mode and current row.

Returns:

  0 | OK

int xprost_post_action | ( | ) |

Post-action userexit for project structures.

Covers the following actions, depending on the working mode:

- 'I'nsert: Updates the BOM and AGG flags.
- 'R'ollback: Updates the BOM and AGG flags.
- 'Q'uery: Resets the user view by calling `xstate_rst_vie_poa`.

Parameters:

  par | Standard parameter defining working mode and current row. Reserved by this userexit, but the parameter string is passed to `xstate_rst_vie_poa`.

Returns:

  0 | OK

int xrole_task_poa | ( | ) |

Checks if task is assigned to a role and displays a warning message if the task becomes free available to all users.

This userexit deals with the following actions:

'T'emporary deleted | Puts a warning if the task becomes free available.

Parameters:

  cp_Mod | Standard parameter with working mode and current row.
  cp_UserPar | Reserved.

Returns:

  0 | OK

int xsmlc_poa | ( | ) |

Post-action userexit for the item form with class attributes folder.

This userexit covers the following actions:

'I'nsert |  | 'U'pdate | If the class attributes folder is active, then the modified relation field values are inserted/updated. This is needed, because the relation fields are not inserted/updated by DataView in a master form.
'Q'uery | Copies all found records in the shadow widget to the parent form and to the current active SML-folder. If another folder than the class attributes folder is active, then the found shadow records are copied only in the form. If no records were found, a message is displayed on the screen.

Parameters:

  cp_Mode | Userexit context.
  cp_Parameter | Parameter of the post-action userexit, reserved.

Returns:

  0 | OK
  2 | Error, no item is selected
  Else | Other error

int xsmldf_poa | ( | ) |

Post-action userexit for attributes definition form.

Cleans the class information in memory cache.

This userexit covers the following actions:

'I'nsert
'U'pdate
'T'emporary delete
'R'ollback | Deletes class information from memory cache as it is not up-to-date anymore.

Parameters:

  cp_Par | Userexit context.

Returns:

  0 | OK
  Else | Error

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

Post-action userexit for the lifecycle definition mask.

Clears the cached lifecycles in Update, Insert and Delete mode.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred

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

Post-action userexit that adjusts the view settings for new records.

It sets the preliminary flag in the current view settings if that flag has not been set and the preliminary flag of the current record has. This userexit can be controlled by the configuration parameter `EDB-CHG-CHECK-PRELIMINARY`. If the configuration parameter has the value "ON", the preliminary flag of the current record is set and the display of preliminary records is disabled in the current view settings, afterwards the userexit enables the display of preliminary records in the current view settings. There is one exception: If the current view is the production view, the userexit will remain inactive.

Remarks:
  The userexit is called by xedb_usx_sys_poa(). Without this userexit, after inserting a new record (using preliminary records is enabled in the system), the record would disappear after refreshing when the display of preliminary records is disabled in the current view settings.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred.

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

Updates the current flag within the version chain of the object.

Insert/Copy | The current flag will be set to the newly created object
Delete | The current flag will be set to the lastly created object
Rollback | The current flag will be set to the previously deleted and restored object

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred

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

Resets the filter conditions which were saved in the field buffer by `xstate_set_vie_pra`, if the action mode is QUERY and no row is specified, otherwise the method returns immediately.

Parameters:

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

Returns:

  0 | OK
  Else | Error occurred.

See also:
  xstate_set_vie_pra

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

Post-action userexit for the transition masks.

Clears the cached transitions in Update, Insert and Delete mode, i.e. when the transition list is modified.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  Else | Error occurred.

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

Writes the history entries.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Checks for duplicate instance placeholders.

Updates the instance text.

This userexit deals with the following actions:

'U'pdate | Checks, if an instance with same placeholders already exists.
| Replaces the placeholder in the text instance text with the new values.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Remove the check string of current field from post action.

Software GmbH

Parameters:

  cpParameter |
  cpArguments | not used

Returns:

  0 | OK
  Else | Error

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

Creates a text instance and its placeholders.

This userexit deals with the following actions:

'I'nsert | Creates a text instance and probate the placeholders corresponding to the template.
| Writes the history.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Creates placeholders and compute consistency check (multilingual)

This userexit deals with the following actions:

'I'nsert | Identifies multilingual placeholders.
| Checks multilingual placeholders for consistency.
| Creates and copies new placeholders.
'U'pdate | Identifies multilingual placeholders.
| Checks multilingual place holders for consistency.
| Deletes unused placeholders.
| Creates and copy new placeholders.
| Updates existing place holder description.

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Refreshes the whole content of the Where-Used list.

Works only in mode ACTION_QUERY. The information about the Where-Used root elements are contained in the widget-buffer:

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

Shows the results regarding the Where-Used of an element depending on the Where-Used configuration (EDB-TXT-WHR-USE-SLI). The root element on which the Where-Used will be applied, is the first selected row of the last active widget. It is possible to proceed the Where-Used over three levels (constraints). This means that you can trace the constraints between the root element and another element (you are interested in) over three different tables. For example, if you like to see all BOMs which use a Text-Instances, you need only one level (one constraint):

First level: | T_TXT_INS_DAT.EDB_ID <-> T_MASTER_STR.EDB_TXT_INSTANCE_REF

The constraint-field for the Text-Instance is set automatically by the "Main Type" (INS). If you would like to see all BOMs which "indirectly" use a Glossary, and you would like to trace the constraints which are necessary, you need three levels (three constraints): Glossary <-> Placeholder <-> Text-Instance <-> BOM

First level: | T_TXT_TPL_DAT.EDB_ID <-> T_TXT_PLI_DAT.EDB_GLS_REF | Constraint between Glossary and Placeholder
Second level: | T_TXT_PLI_DAT.EDB_TXT_INSTANCE_REF <-> T_TXT_INS_DAT.EDB_ID | Constraint between Placeholder and Text-Instance
Third level: | T_TXT_INS_DAT.EDB_ID <-> T_MASTER_STR.EDB_TXT_INSTANCE_REF | Constraint between Text-Instance and BOM

EDB_ACTION (Action) | Check-Box (y/n/null) y=results regarding this configuration should be visible and updatable
| ''=results regarding this configuration should be ignored (not visible)
| 'n'= results regarding this configuration should only be visible but not updatable
EDB_TYPE (Main_Type) | INS = this is a configuration regarding Text-Instances
| TPL= this is a configuration regarding Text-Templates
| GLS= this is a configuration regarding Glossaries
EDB_REF_1 (object 1 --> Object Main Ref.) | This field contains a table of the first effected Where-Used object (level 1) in combination with referenced field name to the GLS/INS/TPL (depending on the Main_Type).
EDB_VALUE_1 (Object 1 Update Field) | Contains the name of the field, which should be updated on level 1. Depending on the status of the object and the status configuration (for level 1). The status is defined with the fields EDB_IN_WORK1 (IW), EDB_APPROVED1 (AP), EDB_RELEASED1 (RL), EDB_REVISIONING1 (RV).
EDB_OBJ_1_TYP (Object 1 Type) | The value in this field should be shown as a description for the Where-Used results regarding the configuration on level1.
EDB_IN_WORK1 (IW) | Value = 'y': Is the object of level 1 (EDB_Value_1 (Object 1 Update Field)) in state "In Work" then proceed updating!
EDB_APPROVED1 (AP) | Value = 'y': Is the object of level 1 (EDB_Value_1 (Object 1 Update Field)) in state "Approved" then proceed updating!
EDB_RELEASED1 (RL) | Value = 'y': Is the object of level 1 (EDB_Value_1 (Object 1 Update Field)) in state "Released" then proceed updating!
EDB_REVISIONING1 (RV) | Value = 'y': Is the object of level 1 (EDB_Value_1 (Object 1 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' an error message "No state set for object_x -> CID:'CID of object' Table:'table name of object'" occurs!
EDB_OBJ_1_REP_1 (Object 1 Info 1) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 1.
EDB_OBJ_1_REP_2 (Object 1 Info 2) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 1.
EDB_OBJ_1_REP_3 (Object 1 Info 3) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 1.
EDB_OBJ_1_REP_4 (Object 1 Info 4) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 1.
EDB_OBJ_1_REP_5 (Object 1 Info 5) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 1.
EDB_OBJ_1_JOIN (Object 1 Join) | If necessary, you can enter a DB-Join in this field to involve fields from other tables regarding level 1.
EDB_OBJ_1_ID (Object 1 -> Object 2 Ref.) | Contains the name of the field, which represents the constraint from level 1 between Where-Used level 1 and Where-Used level 2.
EDB_OBJ_1_REF (Object 2 -> Object 1 Ref.) | Contains the name of the field on where-used level 2, which creates the constraint between Where-Used level 1 and Where-Used level 2.
EDB_VALUE_2 (Object 2 Update Field) | Contains the name of the field, which should be updated on level 2. Depending on the status of the object and the status configuration (for level 2). The status is defined with the fields EDB_IN_WORK2 (IW), EDB_APPROVED2 (AP), EDB_RELEASED2 (RL), EDB_REVISIONING2 (RV).
EDB_OBJ_2_TYP (Object 2 Type) | The value in this field should be shown as a description for the Where-Used results regarding the configuration on level2.
EDB_IN_WORK2 (IW) | Value = 'y': Is the object of level x (EDB_Value_1 (Object x Update Field)) in state "In Work" then proceed updating!
EDB_APPROVED2 (AP) | Value = 'y': Is the object of level x (EDB_Value_1 (Object x Update Field)) in state "Approved" then proceed updating!
EDB_RELEASED2 (RL) | Value = 'y': Is the object of level x (EDB_Value_1 (Object x Update Field)) in state "Released" then proceed updating!
EDB_REVISIONING2 (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' an error message "No state set for object_x -> CID:'CID of object' Table:'table name of object'" occurs!
EDB_OBJ_2_REP_1 (Object 2 Info 1) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 2.
EDB_OBJ_2_REP_2 (Object 2 Info 2) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 2.
EDB_OBJ_2_REP_3 (Object 2 Info 3) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 2.
EDB_OBJ_2_REP_4 (Object 2 Info 4) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 2.
EDB_OBJ_2_REP_5 (Object 2 Info 5) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 2.
EDB_OBJ_2_JOIN (Object 2 Join) | If necessary, you can enter a DB-Join in this field to involve fields from other tables regarding level 2.
EDB_OBJ_2_ID (Object 2 -> Object 3 Ref.) | Contains the name of the field, which represents the constraint from level 2 between Where-Used level 2 and Where-Used level 3.
EDB_OBJ_2_REF (Object 3 -> Object 2 Ref.) | Contains the name of the field on where-used level 3, which creates the constraint between Where-Used level 2 and Where-Used level 3.
EDB_VALUE_3 (Object 3 Update Field) | Contains the name of the field, which should be updated on level 1. Depending on the status of the object and the status configuration (for level 3). The status is defined with the fields EDB_IN_WORK3 (IW), EDB_APPROVED3 (AP), EDB_RELEASED3 (RL), EDB_REVISIONING3 (RV).
EDB_OBJ_3_TYP (Object 3 Type) | The value in this field should be shown as a description for the Where-Used results regarding the configuration on level3.
EDB_IN_WORK3 (IW) | Value = 'y': Is the object of level 3 (EDB_Value_3 (Object 3 Update Field)) in state "In Work" then proceed updating!
EDB_APPROVED3 (AP) | Value = 'y': Is the object of level 3 (EDB_Value_3 (Object 3 Update Field)) in state "Approved" then proceed updating!
EDB_RELEASED3 (RL) | Value = 'y': Is the object of level 3 (EDB_Value_3 (Object 3 Update Field)) in state "Released" then proceed updating!
EDB_REVISIONING3 (RV) | Value = 'y': Is the object of level 3 (EDB_Value_3 (Object 3 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' an error message "No state set for object_x -> CID:'CID of object' Table:'table name of object'" occurs!
EDB_OBJ_3_REP_1 (Object 3 Info 1) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 3.
EDB_OBJ_3_REP_2 (Object 3 Info 2) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 3.
EDB_OBJ_3_REP_3 (Object 3 Info 3) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 3.
EDB_OBJ_3_REP_4 (Object 3 Info 4) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 3.
EDB_OBJ_3_REP_5 (Object 3 Info 5) | Contains the field whose content should be shown as information regarding the result of the Where-Used configuration on level 3.
EDB_OBJ_3_JOIN (Object 3 Join) | If necessary, you can enter a DB-Join in this field to involve fields from other tables regarding level 3.

Parameters:

  ctx | Userexit context
  param | Parameter to control the behavior of this function. Reserved.

Returns:

  0 | OK
  Else | Error

int xvar_post_action | ( | ) |

Post-action userexit for variant lists.

This userexit covers the following actions:

'I'nsert |
'C'opy | Creates the type reference table for variants of the type TYP.

Parameters:

  par | Userexit context

Returns:

  0 | OK
  Else | Error

int xvardf_poa | ( | ) |

Post-action userexit for the variant form (mask EDB-ART-VAR-Sxx).

It calls the userexit xartic_post_action. If a new variant is inserted, the user is asked if he wants to define the variant list immediately or not. If the current variant is copied to a new version (the key "CRE_VER" is set in the widget buffer) then all related attribute definitions are copied to the new version. Creates a history entry when a variant is inserted.

Parameters:

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

Returns:

  0 | OK
  Else | Error

int xwfl_prc_createGroup | ( | ) |

Post-action userexit to create a group for process templates and ad hoc processes.

This userexit covers the following actions:

'I'nsert | Creates a new group record and assigns it to the process.

The group (classification) is used to manage process variables. The group record is created in a virtual widget that is opened by iwf_lis_ent() with the chosen parameter. The classification entry looks like "WFL-PRC:<process-ID>", the name entry is "Created by workflow engine", and the attribute "SML_NUM" of the newly created group is copied to the "GRP_REF" of the process or template.

Parameters:

  cpWrk | Working mode of the post-action userexit
  cpPar | Parameter to control the behavior of this function. Syntax like: "<arg>" With possible arguments:
  | arg | String used to open the group's insert widget. This argument is directly passed to iwf_lis_ent().

Returns:

  0 | OK
  1 | Error

Example:

        // working example
        int iRc = xwfl_prc_ins_tpl("I1", "EDB-GROUP EDB-GRP-PRC-SLI");

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