# Userexits

Functions

## Pre-Transition userexits
[Transition userexits]

### Functions
int | xchg_cpl_set_pra (const char *param1, const char *param2)
int | xchg_set_rel_cre_id (const char *param1, const char *param2)
int | xchg_std_rel_pra (const char *param1, const char *param2)
int | xcps_elm_cmp_rel (const char *param1, const char *param2)
int | xcps_grp_cmp_rel (const char *param1, const char *param2)
int | xcps_vrf_bom_pos_tra (const char *param1, const char *param2)
int | xcps_vrf_sgl_bom_tra (const char *param1, const char *param2)
int | xedbstr_tor_ref_rel (const char *param1, const char *param2)
int | xedbusr_chk_no_obj_ews (const char *param1, const char *param2)
int | xedbusr_chk_obj_ews (const char *param1, const char *param2)
int | xedbusr_is_owner ()
| Checks, if the current user is the owner of the record.
int | xedbusr_not_owner ()
| Checks, if current user is NOT the owner of the record.
int | xedbusr_pre_sta_lgv ()
| Pre-transition userexit that executes a LogiView procedure.
int | xedbusr_tor_chk_rel (const char *param1, const char *param2)
int | xedbusr_tor_ref_rel (const char *param1, const char *param2)
int | xedbusr_tor_rr_vr (const char *param1, const char *param2)
int | xedbusr_tor_var_rel (const char *param1, const char *param2)
int | xedbusr_tor_ver_rel (const char *param1, const char *param2)
int | xstate_chk_obj_sta_prt (const char *param1, const char *param2)
int | xstate_slv_nxt_sta (const char *param1, const char *param2)
int | xtxt_gls_upd_tra (const char *param1, const char *param2)
int | xtxt_ins_upd_tra (const char *param1, const char *param2)
int | xtxt_ins_xtr_tra (const char *param1, const char *param2)
int | xtxt_tpl_ctr_tra (const char *param1, const char *param2)

### Function Documentation

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

Pre-release transition userexit for Work Sets.

This userexit is called before the transition from "In Work" to "Complete" of a Work Set is executed. It calls a user defined pre-release function for each change operation which is assigned to the work set (without customization this is the userexit xchg_std_rel_pra). This pre-release function can perform any necessary check on the affected objects, for example: The effectivity date is finally set in the field EDB_EFF_DATE of the Work Set.

Parameters:

  context | The transition userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/EFF-TARGET[=date]]" with possible arguments:
  /EFF-TARGET | date | If this parameter is not given at all, the effectivity date which will be set in EDB_EFF_DATE is queried interactively by the user. If the parameter is given with no date value, the date is read from the target date field EDB_EFF_TARGET of the work set. If the field EDB_EFF_TARGET does not exist in the work set mask, the current date is used. Finally a specific date can be passed explicitly to set a specific effectivity date. The date must be passed in the mask date format.

Returns:

  0 | OK
  Else | One of the pre-release functions failed.

See also:
  xchg_std_rel_pra

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

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

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

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

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Standard pre-release transition userexit for change operations.

This userexit is called for each change operation of a Work Set before a Work Set is completed. It is the default pre-transition function which is executed when no other user defined a pre-transition function.

For all new objects (objects which become valid through this change operation), it checks if the objects are persistent (i.e. not preliminary) and if a transition exists which can change the object's state from its current (approved) state into a released state. If the object is not under control of the Change Management, it is checked if the object is released.

For all obsolete objects (objects which become invalid through this change operation), it is checked if there exists a transition which can change the current state of the object into an inactive state.

Any failed check is printed interactively to the client's message window.

Parameters:

  usxContext | The userexit context.
  param | Reserved

Returns:

  0 | OK
  1 | At least one of the checks failed.

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

Pre-transition userexit for product structure elements.

Checks if the assigned product component is released, because the product component must be released before the product structure element can be released.
The userexit prints a message if the assigned product component is not released.

Parameters:

  context | Transition userexit context
  param | Reserved

Returns:

  0 | Ok
  Else | Error

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

Transition userexit for the product family - product component relation.

Checks if the assigned product component is released, because the product component must be released before the class - product component relation can be released.
The userexit prints a message if the assigned product component is not released.

Parameters:

  context | Transition userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

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

Pre-transition userexit for BOM position.

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

The userexit supports the following view scopes:

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

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Pre-transition userexit for items.

If the structure of an item is verified the BOM positions will be verified against the effective conceptual product structures for the item.

The userexit supports the following view scopes:

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

Parameters:

  context | Transition userexit context
  param | Parameter to control the behavior of this function. Syntax is: "/PRD|/DEV [/SOFT][/STRICT][/SILENT][/ANALYSE]" With possible arguments:
  PRD | Verifies in production view.
  DEV | Verifies in development view (default).
  SOFT | Not released BOM positions are allowed.
  STRICT | Returns an error if verification fails. |  | SILENT | Do not print any messages.
  ANALYSE | Uses step-by-step algorithm for verification and displays all verification messages.

Returns:

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

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

Userexit checks certain conditions for the Change & Release Management.

This userexit checks, if the child element of a relation record has already been released. If Change Management is activated, it also checks, if the "from" Work Set has already been released.

This userexit works on relation records.

Parameters:

  usxContext | This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new progress indicator > old progress indicator) or 'n' for a backward transition (new progress indicator < old progress indicator). The following characters describe the affected row number. Example: "y23", "n4".
  param | Parameter to control the behavior of this userexit. Syntax like: "[/FLAGONLY]" With possible arguments:
  FLAGONLY |  | If this parameter has been passed, the released flag will be used to check. Otherwise, the dates of VAL_FROM and VAL_UNTIL are used.

Returns:

  0 | All relevant elements are released.
  -1 | Not all relevant elements are released, or an error occurred.

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

Checks if an object is not assigned to a Work Set (via a change operation).

Parameters:

  usxContext | The userexit context. This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new level indicator > old level indicator) or 'n' for a backward transition (new level indicator < old level indicator). The following characters represent the affected row. Example: "y23", "n4".
  param | Reserved.

Returns:

  0 | The object is not assigned to a Work Set.
  1 | The object is assigned to a Work Set.

See also:
  xedbusr_chk_obj_ews

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

Pre-transition userexit of the Change & Release management checks, if an object is assigned to a released Work Set (via a change operation).

Parameters:

  usxContext | The userexit context. This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new level indicator > old level indicator) or 'n' for a backward transition (new level indicator < old level indicator). The following characters describe the affected row. Example: "y23", "n4".
  param | Reserved.

Returns:

  0 | Object is assigned to a Work Set.
  1 | Object is not assigned to a Work Set.

See also:
  xedbusr_chk_no_obj_ews

int xedbusr_is_owner | ( | ) |

Checks, if the current user is the owner of the record.

Pre-transition userexit for the change & release management. Only the owner of the element may execute the transition.

Parameters:

  cp_Status | Standard transition parameter with direction mode and current row.
  direction mode | description
  y | forward: new level indicator greater than old level
  n | backward: new level indicator less than old level
  cp_Arguments | Reserved.

Returns:

  0 | OK
  1 | Error occurred

int xedbusr_not_owner | ( | ) |

Checks, if current user is NOT the owner of the record.

Pre-transition userexit for the change & release management. It prevents the owner of the element from executing the transition.

Parameters:

  cp_Status | Standard transition parameter with direction mode and current row.
  direction mode | description
  y | forward: new level indicator greater than old level
  n | backward: new level indicator less than old level
  cp_Arguments | Reserved.

Returns:

  0 | OK
  1 | Error occurred

int xedbusr_pre_sta_lgv | ( | ) |

Pre-transition userexit that executes a LogiView procedure.

Pre-transition userexit for the change & release management. It calls a LogiView decision table / procedure.

Note:
  The LogiView System stringvariable "STA" will be set to the value of 'cp_Status' (mode and row, e.g. "y23"). If 'cp_Argument' is not set, the name of the decision table (or procedure) to be called will be set according to the name of the current checksteps and "pre_sta". e.g. Checksteps "STD-ORD" -> Decision table "STD_ORD/pre_sta"

Parameters:

  cp_Status | Standard transition parameter with direction mode and current row.
  direction mode | description
  y | forward: new level indicator greater than old level
  n | backward: new level indicator less than old level
  cp_Arguments | Reserved.

Returns:

  0 | Success
  1 | Error occurred

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

This userexit checks, if all relation records for the structure view `STR` are released.

It will be checked, if all relation elements of the structure relation of this object are released. Only the refine relation to the same entity is checked! Sub-elements to other entities are not checked.

This userexit checks the relation records of an entity record. To check the assigned entity records instead, use `xedbusr_tor_ref_rel`.

This userexit works on entity records.

Parameters:

  usxContext | This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new progress indicator > old progress indicator) or 'n' for a backward transition (new progress indicator < old progress indicator). The following characters describe the affected row. Example: "y23", "n4".
  param | Parameter to control the behavior of this userexit. Syntax like: "[/FLAGONLY]" With possible arguments:
  FLAGONLY |  | If this parameter is given, the released flag will be used for the check. Otherwise, the dates of VAL_FROM and VAL_UNTIL are used.

Returns:

  0 | All elements are released.
  -1 | Not all relations are released, or an error occurred.

See also:
  xedbusr_tor_ref_rel

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

This userexit checks, if all sub-elements of the structure relation of this object are released.

Only the refine relation to the same entity is checked. Sub-elements of other entities are not checked.

This userexit checks the assigned entity records. To check the relation records instead, use `xedbusr_tor_chk_rel`.

This userexit works on entity records.

Parameters:

  usxContext | This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new progress indicator > old progress indicator) or 'n' for a backward transition (new progress indicator < old progress indicator). The following characters describe the affected row. Example: "y23", "n4".
  param | Parameter to control the behavior of this userexit. Syntax like: "[/FLAGONLY]" With possible arguments:
  FLAGONLY |  | If this parameter is given, the released flag will be used for the check. Otherwise, the dates of VAL_FROM and VAL_UNTIL are used.

Returns:

  0 | All elements are released.
  -1 | Not all relations are released, or an error occurred.

See also:
  xedbusr_tor_chk_rel, xedbusr_tor_rr_vr

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

Pre-transition userexit which calls `xedbusr_tor_ref_rel` followed by `xedbusr_tor_ver_rel`.

Parameters:

  usxContext | This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new progress indicator > old progress indicator) or 'n' for a backward transition (new progress indicator < old progress indicator). The following characters describe the affected row. Example: "y23", "n4".
  param | Parameter to control the behavior of this userexit. Please refer to `xedbusr_tor_ref_rel` and `xedbusr_tor_ver_rel` for a description of possible parameters.

Returns:

  0 | OK
  -1 | Error in userexit `xedbusr_tor_ref_rel`.
  -2 | Error in userexit `xedbusr_tor_ver_rel`.

See also:
  xedbusr_tor_ref_rel, xedbusr_tor_ver_rel

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

Pre-transition (to release) userexit that checks the release state of all elements in a variant list.

It checks if all elements in the variant list of the current element (variant placeholder) are released, when this element is going to be released.

If the Change Management is activated, it also checks, if the "from" Work Set has already been released.

Parameters:

  usxContext | This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new progress indicator > old progress indicator) or 'n' for a backward transition (new progress indicator < old progress indicator). The following characters describe the affected row. Example: "y23", "n4".
  param | Parameter to control the behavior of this userexit. Syntax like: "[/FLAGONLY]" With possible arguments:
  FLAGONLY |  | If this parameter is given, the release flag will be used to check. Otherwise, the dates of VAL_FROM and VAL_UNTIL are used.

Returns:

  0 | All relevant elements are released.
  -1 | Not all relevant elements are released, or an error occurred.

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

This userexit checks, if an element in the version structure has already been released.

Pre-transition (to release) userexit to check, if there is already a released element in the version structure.

Parameters:

  usxContext | This is the context for a transition userexit. Unlike DataView action userexit contexts, the first character describing the mode can be either 'y' for a forward transition (new progress indicator > old progress indicator) or 'n' for a backward transition (new progress indicator < old progress indicator). The following characters describe the affected row. Example: "y23", "n4".
  param | Additional userexit parameters. Currently none.

Returns:

  0 | The version structure does not contain any released elements.
  1 | At least one released element exists in the version structure.

See also:
  xedbusr_tor_rr_vr

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

Pre-transition userexit to check if related objects have a certain state.

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

Parameters:

  usxContext | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "/STATE=state /CHILD|/PARENT|/USX [/S][/ALLCTX]" with possible arguments:
  STATE | APPROVED|RELEASEDx7c;VERSIONABLE::x7c;WITHDRAWN::x7c;INWORK | The state which related objects must have.
  CHILD |  | Checks the child object
  PARENT |  | Checks the parent object
  USX | userexit | Userexit to use for selecting the related object

The following parameters are optional:

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

Returns:

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

See also:
  xstate_chk_obj_sta_eda, xstate_chk_obj_sta_pra

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

Processes all slave release procedures of the master record.

For the slave records a single level structure explosion is performed, all records are selected and the standard function xstate_nxt_sta is called for these records. During the release all post-/pre-action userexits of the release steps of the master release procedure are called. The flag "valall" is temporarily set to 1 to indicate that the fields VAL_FROM and VAL_UNTIL shall be taken from the master record.

Remarks:
  Is called from the pre-action trigger of the release steps of the master release procedure.

Parameters:

  usxContext | The userexit context.
  param | Reserved.

Returns:

  0 | OK
  1 | Error during the release of the child with a slave release procedure.

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

Tries to update all Where-Used objects corresponding this Glossary.

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) | Contains the name of the field, which should be updated on level x. Depending on the status of the object and the status configuration (for level x). The states in which the object should be updatable are defined with the fields EDB_IN_WORKx (IW), EDB_APPROVEDx (AP), EDB_RELEASEDx (RL), EDB_REVISIONINGx (RV).

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

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

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

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

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Tries to update all Where-Used objects corresponding to this Text-Instance.

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) | Contains the name of the field, which should be updated on level x. Depending on the status of the object and the status configuration (for level x). The states in which the object should be updatable are defined with the fields EDB_IN_WORKx (IW), EDB_APPROVEDx (AP), EDB_RELEASEDx (RL), EDB_REVISIONINGx (RV).

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

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

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

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

Parameters:

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

Returns:

  0 | OK
  Else | Error

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

Checks for instance match.

Note:
  Two instances match, when the corresponding text template is the same, and all placeholder values (multilingual) match.

Parameters:

  cpParameter | Standard parameter with working mode and current row.
  cpArguments | Parameter to control the behavior of this function. Syntax is: "/STRICT /NON_STRICT" With possible arguments:
  NON_STRICT |  | A match prints the message "EDB-TXT-INS-SAM-PLH".
  STRICT |  | A match prints the message "EDB-TXT-INS-SAM-PLH" and returns -1.
  - |  | STRICT mode will be used.

Returns:

  0 | OK
  Else | Error

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

Tries to update all Where-Used objects corresponding this Text-Template.

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) | Contains the name of the field, which should be updated on level x. Depending on the status of the object and the status configuration (for level x). The states in which the object should be updatable are defined with the fields EDB_IN_WORKx (IW), EDB_APPROVEDx (AP), EDB_RELEASEDx (RL), EDB_REVISIONINGx (RV).

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

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

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

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

Parameters:

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

Returns:

  0 | OK
  Else | Error

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