# Userexits

Functions

## C/C++ userexits

### Functions
int | bvb_usx_chk_mfr ()
| The userexit checks if the current widget is displayed as main form (in case of a combined mask).
int | bvb_usx_set_mfr ()
| Sets the widget buffer entry "MAINFORM" for a combined mask.
int | bvb_usx_uns_mfr ()
| Removes the widget buffer entry "MAINFORM" from a combined mask.
int | cal_usx_inp ()
| Opens the calculator form and prepares the form for the expected user interaction.
int | cal_usx_syn ()
| Opens the syntax assistant of the calculator.
int | dde_cal ()
| Sends data to an application over a communication channel.
int | dde_com ()
| Starts a client application in asynchronous mode.
int | dde_com_wai ()
| Starts a client application in synchronous mode.
int | dde_opn ()
| Opens a communication channel to a client application.
int | dde_put ()
| Sends data to the specified client application.
int | edb_ief_blank_to_0 ()
| This userexit replaces all blanks with "0".
char * | edb_ief_ctr_chr ()
| This userexit is a control function for all possible functions in PLM IEF.
int | edb_ief_ctr_men ()
| This userexit is a control function for all possible functions in PLM IEF.
int | edb_ief_def_val ()
| The field userexit inserts a default value if the field is empty.
int | edb_ief_del_lead_0 ()
| This userexit aligns the field content to the left or to the right.
int | edb_ief_gen_fld_dsc ()
| Generates a field definition from the mask definition for a newly created format.
int | edb_ief_get_buf_elm ()
| This userexit is called from a decision table to get the buffer element from the LogiView string with the function zag_get_buf_elm().
int | edb_ief_get_sep_fld ()
| This userexit imports the contents of the field n from the file to the EDB field.
int | edb_ief_grpid_2_name ()
| This userexit converts DataView's group ID to group name.
int | edb_ief_grpname_2_id ()
| This userexit converts DataView's group name to group ID.
int | edb_ief_ign_dat_usx ()
| This userexit sets an error code to ignore the current data record.
int | edb_ief_left_just ()
| This userexit aligns field content to the left.
int | edb_ief_lgv_usx_ret ()
| This routine identifies the current return value of a userexit and adds it to the parameter value string.
int | edb_ief_lgvstr_2_mas ()
| This userexit is called from a decision table or LogiView procedure to convert data from the LogiView string to the EDB mask.
int | edb_ief_log_cls ()
| Closes the log file which contains the transferred data.
int | edb_ief_lowercase ()
| This userexit changes all letters to lowercase.
int | edb_ief_mas_2_lgvstr ()
| This userexit is called from a decision table or LogiView procedure to convert data of the EDB mask to a LogiView string.
int | edb_ief_no_log_usx ()
| This userexit deactivates the trace log for the current data record.
int | edb_ief_put_sta ()
| Puts the element to the requested state/maturity level.
int | edb_ief_read_buf ()
| This userexit enables reading several lines of data records from the file.
int | edb_ief_right_just ()
| This userexit aligns field contents to the right.
int | edb_ief_run ()
| This IEF userexit executes an operating system command (start of a command procedure or a program for instance).
int | edb_ief_set_buf_elm ()
| This userexit is called from the decision table to set the buffer element in a LogiView string with the function zag_set_buf_elm().
int | edb_ief_tor_rr_vr ()
| This pre-action userexit sets the values for "Valid from" and "Valid until" for transitions and changes the state values to RELEASED.
int | edb_ief_tst_usx ()
| This userexit is used to test the userexit function.
int | edb_ief_uppercase ()
| This userexit changes all letters to uppercase.
int | edb_ief_usrid_2_name ()
| This userexit converts the DataView user ID to a user name.
int | edb_ief_usrname_2_id ()
| This userexit converts DataView's user name to its user id.
int | edb_ief_wri_ascii ()
| This userexit enables filling an EDB field or an output file with non-printable characters by using ASCII code.
int | edb_ief_write_buf ()
| This IEF field userexit enables to write data records in several lines of the output file during the export.
int | exm_snd_ext ()
| Triggers the sending of mail via external mail program.
int | ief_bau_end ()
| This trigger combines edb_mrl_art_lst_cls() and ief_ntm_end().
int | ief_bau_start ()
| This trigger combines edb_mrl_art_lst_opn() and ief_ntm_start().
int | ief_ntm_del_fld ()
| This field import trigger reads the current field (must be NTM_REF).
int | ief_ntm_end ()
| This trigger closes the note widget and resets the virtual mode.
int | ief_ntm_exp_fld ()
| This import field trigger is used for note ID fields in items or refine lists.
int | ief_ntm_get_fld ()
| This IEF field trigger retrieves the saved value from a buffer.
int | ief_ntm_imp_fld ()
| This IEF import field trigger is used at note ID fields in items or refine lists.
int | ief_ntm_sav_fld ()
| This IEF field trigger saves the content of the current field in a buffer.
int | ief_ntm_start ()
| This trigger is called as IEF start userexit.
int | lgv_usx_get_tra_lev ()
| This userexit returns the current EPQ transaction level.
int | pwd_chk (const char *param, const char *ignore)
int | sig_chk_use_sta ()
| Checks the state of a digital signature usage.
int | sig_cre_tic ()
| Creates an access ticket and stores it into the LogiView system variable.
int | xapp_exc ()
| Starts an external application (by evaluating table T_APP_DAT).
int | xapp_prt_inf ()
| Shows information about the application that will be started when calling xapp_exc.
int | xapp_rea_fld ()
| This userexit can be used by LogiView to determine specific external application entries.
int | xchg_get_cfg (const char *param, const char *ignore)
int | xchg_is_active (const char *param, const char *ignore)
int | xchg_log_opr_bas_und (const char *param, const char *ignore)
int | xcps_vrf_get_pse (const char *param, const char *ignore)
int | xeer_exp_chk_out ()
| Calls xfile_chk_out() to check out all files assigned to document records that are selected in the current mask.
int | xeer_exp_ins_rec ()
| Checks all selected records of the current mask for EER replication.
int | xewm_crm_elm_mod ()
| Transfers the elements of the assigned folder into the the state 'IN MODIFICATION' (only if WORK_TYPE=CHANGE).
int | xewm_crm_elm_sta ()
| Depending on the entry in the field WORK_TYPE, this userexit checks the element state of the assigned folder.
int | xgfi_chk ()
| Calls function gfi_chk() The userexit checks if the graphical interface is initialized or not.
int | xmail_action ()
| Edit action userexit to check for query mode.
int | xmail_post_action ()
| If the field M_SND_U exists and includes a valid uic the corresponding user name is added to the field M_SND_USER.
int | xmail_pre_action ()
| If the mask name includes 'SND' and is longer than 3 digits, The uic of the current user is inserted into the field M_SND_U to search for all mail entries.
int | xmail_snd_to_dbl ()
| Creates a message for all users and groups in a distribution list.
int | xmail_snd_to_grp ()
| Creates a message for a certain group.
int | xmail_snd_to_usr ()
| Creates a message for a certain user.
int | xmgt_drp_fnc ()
| Drag&Drop userexit when a Drag&Drop action is performed in the target widget.
int | xoffice_chk (const char *param, const char *ignore)
int | xoffice_del_prp (const char *param, const char *ignore)
int | xoffice_drp_chk (const char *param, const char *ignore)
int | xoffice_rea_prp (const char *param, const char *ignore)
int | xoffice_reg_cli (const char *param, const char *ignore)
int | xoffice_wri_prp (const char *param, const char *ignore)
int | xpac_act ()
| Set the first selected record to the current element packet.
int | xpac_act_asg ()
| Opens the specified refine widget for the currently chosen elements and inserts all selected records from the current widget.
int | xpac_act_cls ()
| The current element will be closed.
int | xpac_act_cnt ()
| Opens the widget with the content of the currently chosen element and the respective entity.
int | xpac_act_opn ()
| Opens a widget with all records of the desired entity.
int | xpdw_clr_acc_tmp (const char *param, const char *ignore)
int | xpdw_cre_acc_tmp (const char *param, const char *ignore)
int | xpdw_has_obj_acc (const char *param, const char *ignore)
int | xpdw_is_pdw_ent (const char *param, const char *ignore)
int | xpdw_is_tmp_dis (const char *param, const char *ignore)
int | xprg_cls ()
| Closes the progress reporter form.
int | xprg_opn ()
| Opens a passed or dynamically generated progress reporter form.
int | xprg_upd ()
| Updates an already opened progress reporter form.
int | xpvm_bat_run (const char *param, const char *ignore)
int | xpvm_chk_new_mrk (const char *param, const char *ignore)
int | xpvm_del_dat (const char *param, const char *ignore)
int | xrel_set_rel ()
| The reference to the given entity is set in the multi list of the folder.
int | xwfl_act_access ()
| Userexit to check if access to the given activity is allowed.
int | xwfl_act_restart ()
| Userexit to restart an activity which was already rejected.
int | xwfl_batch_call ()
| Userexit to start a post-action on a process or activity.
int | xwfl_res_typ_chk ()
| Userexit to check if the chosen resource type makes sense for the type of given activity.
int | xwfl_upd_ibx ()
| Userexit to update all currently open work item lists (inboxes).
int | xwfl_workitem_abort ()
| Userexit to cancel a work item.
int | xwfl_workitem_accept ()
| Userexit to accept a work item.
int | xwfl_workitem_forward ()
| Userexit to forward a work item to another user and send an email to this user (receiver).
int | xwfl_workitem_reject ()
| Userexit to reject a work item to another user who forwarded it before or to the system that created it.
int | xwfl_wrkitm_get_pv_bywid_i18n ()
| Userexit to get the value of a process variable associated with a work item, which is defined by the given id.
int | xwfl_wrkitm_prea ()
| Userexit to execute a LogiView procedure that is defined in the onComplete field of an activity shortly before completion.

### Function Documentation

int bvb_usx_chk_mfr | ( | ) |

The userexit checks if the current widget is displayed as main form (in case of a combined mask).

A main form is a combined mask which contains all mandatory fields to perform a critical operation like an insert operation. This feature is used for combined masks that do not display all mandatory fields in the header form. In this case the combination of the header form and the sub form is called the main form. To indicate that the sub form is a part of the main form the folder definition (see `bvb_usx_cmb_rpl()`) contains the MAINFORM option.

Returns:

  0 | OK, current widget is a main form or is not a combined mask or it could be replaced with a main form.
  1 | Current widget is a combined mask but is not a main form (and a main form cannot be opened automatically).
  2 | No current widget

See also:
  bvb_usx_set_mfr, bvb_usx_uns_mfr

Note:
  This userexit may also be called as an edit-action or pre-action userexit (since it does not have any arguments).
  The userexit should be called for the current widget only!
  In virtual mode the userexit will always return 0.

int bvb_usx_set_mfr | ( | ) |

Sets the widget buffer entry "MAINFORM" for a combined mask.

The widget buffer entry is used to decide if a combined mask is displayed as main form.

Parameters:

  None |

Returns:

  0 | OK
  Else | No current widget

See also:
  bvb_usx_set_mfr, bvb_usx_chk_mfr

int bvb_usx_uns_mfr | ( | ) |

Removes the widget buffer entry "MAINFORM" from a combined mask.

Parameters:

  None |

Returns:

  0 | OK
  Else | No current widget

See also:
  bvb_usx_chk_mfr, bvb_usx_set_mfr

int cal_usx_inp | ( | ) |

Opens the calculator form and prepares the form for the expected user interaction.

The form `CAL_INP` is used to display the modal dialog.

Returns:

  0 | OK
  1 | Could not create form or menu

int cal_usx_syn | ( | ) |

Opens the syntax assistant of the calculator.

The calculator select menu `CAL_FUNC` is displayed.

Returns:

  0 | OK

int dde_cal | ( | ) |

Sends data to an application over a communication channel.

Use the userexit dde_opn() to open the communication channel to the application that you want to call.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax: "channel_no, functioncode, item, buffer" With possible arguments:
  channel_no | Channel number (return value of dde_opn()
  functioncode | Combination of IPC mode and IPC code: Modes are: W : Wait (synchron). N : Nowait (asynchron). S : Stack. The mode may be omitted, 'N' is default. Codes are: P : Poke. X : eXecute. T : Terminate.
  item | Identifier, which must be recognized by the external application.
  buffer | Data for the external application

Returns:

  0 | OK
  -1 | Invalid parameters
  -2 | No IPC connection available
  >0 | Return code of gfi_cal_ipc

Example:

        // working example
        int i_Channel = dde_opn("GUI_CLIENT,STR");
        if (i_Channel > 0) {
          sprintf(caCommand, "%i,NP,GANTT CREATE-LAY,EDB-USR-TERMINE", i_Channel);
          iRc = dde_cal(caCommand);
        }

int dde_com | ( | ) |

Starts a client application in asynchronous mode.

Calls the passed command on the host where the graphic client is running in asynchronous mode (i.e. the userexit will not wait for the application to end). The command string can be an environment variable that contains the command to be executed.

Note:
  The command must be separated from its argument(s) by a comma.

Parameters:

  cp_par | Command string to start the application.

Returns:

  0 | OK
  -1 | Graphic interface not initialized
  -2 | RPC buffer overflow
  >0 | Error (see file ipcerr.h)

Example:

        // This example shows how to call 'dde_com' from a C function
        // in order to invoke the application Notepad with a specified file
        // (you have to use double quotes (\") for the filename as it contains blanks):
        int iRc = dde_com("notepad.exe,\"c:\temp\abc with  2  blanks.txt\"");

int dde_com_wai | ( | ) |

Starts a client application in synchronous mode.

Calls the passed command on the host where the graphic client is running in synchronous mode (i.e. the userexit will wait for the application to end). The command string can be an environment variable that contains the command to be executed.

Note:
  The command must be separated from its argument(s) by a comma.

Parameters:

  cp_par | Command string to start the application.

Returns:

  0 | OK
  -1 | Graphic interface not initialized
  -2 | RPC buffer overflow
  >0 | Error (see file ipcerr.h)

Example:

        // This example shows how to call 'dde_com' from a C function
        // in order to invoke the application Notepad with a specified file
        // (you have to use double quotes (\") for the filename as it contains blanks):
        int iRc = dde_com_wai("notepad.exe,\"c:\temp\abc with  2  blanks.txt\"");

int dde_opn | ( | ) |

Opens a communication channel to a client application.

The userexit opens a communication channel by using the passed arguments and returns the communication channel number for later calls to dde_cal().

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax: "application,topic" With possible arguments:
  application | Unique application name for the external application.
  topic | Topic within the application

Returns:

  >0 | IPC channel number
  -1 | Illegal parameter
  -2 | Could not open IPC connection

Example:

        // This example shows how to open a conection:
        int i_Channel = dde_opn("GUI_CLIENT,STR");

int dde_put | ( | ) |

Sends data to the specified client application.

Opens a communication channel by using the passed arguments and sends the data to the client application.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax: "functioncode,application,topic,item,buffer" With possible arguments:
  functioncode | Combination of IPC mode and IPC code: Modes are: W : Wait (synchron). N : Nowait (asynchron). S : Stack. The mode may be omitted, 'N' is default. Codes are: P : Poke. X : eXecute. T : Terminate.
  application | Unique application name for the external application.
  topic | Topic within the application.
  item | Identifier, which must be recognized by the external application.
  buffer | Data for the external application.

Returns:

  0 | OK
  -1 | Invalid parameters
  -2 | No IPC connection available
  >0 | Return code of gfi_cal_ipc

Example:
  This example demonstrates how the internal function "FileOpen" of "Microsoft Word" is used to open a file via DDE. The example shows also how you can insert text into the test document. The triggers 'dde_com' and 'dde_put' are called from LogiView. Here is an example LogiView procedure that demonstrates these DDE-Userexits:

                C -- Start application (MS Word).
                  APP = "C:\Programme\Microsoft Office\OFFICE11\WINWORD.EXE"
                  RES = @dde_com(APP)
                C -- Define specific DDE command to open the test document
                  CMD = "[FileOpen(\"\"c:\temp\test.doc\"\")]"
                C -- Concatenate command string:
                C -- functioncode = X (eXecute)
                C -- application  = Winword (defined by MS Word)
                C -- topic        = System  (defined by Windows)
                C -- item         = Item    (no special item)
                C -- buffer       = CMD (defined DDE command, see above)
                  CMD = strcat("WX,Winword,System,Item,",CMD)
                C -- Put DDE command to the application and wait for execution
                  RES = @dde_put(CMD)
                C -- Define specific DDE command to insert test into the test document
                  CMD = "Welcome to the BASIC DDE client test for Microsoft Word for Windows."
                C -- Concatenate command string:
                C -- functioncode = P (Poke)
                C -- application  = Winword           (defined by MS Word)
                C -- topic        = C:\temp\test.doc  (defined by the document)
                C -- item         = \Startofdoc       (defined by MS Word)
                C -- buffer       = CMD (Text to insert, see above)
                  CMD = strcat("P,Winword,C:\temp\test.doc,\Startofdoc,",CMD)
                C -- Put DDE command to application
                  RES = @dde_put(CMD)

            The following LogiView variables are necessary for this example:
                APP, CMD  of type 'S'
                RES       of type 'I'

int edb_ief_blank_to_0 | ( | ) |

This userexit replaces all blanks with "0".

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<value>" With possible arguments:
  FIELD | value | All blanks in value are replaced with "0"

Returns:

  0 | OK

char* edb_ief_ctr_chr | ( | ) |

This userexit is a control function for all possible functions in PLM IEF.

This functions can be switched on or off with the transfer parameters, e.g. for the trace output, logging etc.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "{I[nit] | T[est] {E[in] | A[us]} | P[aram] <Parameter> <Value> | C}" With possible arguments:
  C[heck] |  | Check password
  I[nit] |  | Re-initialize
  L[ogging] | E[in] | Switch logging on
  | A[us] | Switch logging off
  | F[ehler] | Switch logging on as error log. Means: Only faulty data records are recorded
  T[est] | E[in] | Activate trace log
  | A[us] | Deactivate trace log
  P[aram] | Parameter value | Set parameter to certain value
  V[ersion] |  | Display the current internal EDB IEF version on the screen

Returns:

  If a value has been specified | The specified value is returned
  If no value has been specified | The current value is returned
  For values of the data type "Integer" | The userexit "edb_ief_ctr_men" must be used

int edb_ief_ctr_men | ( | ) |

This userexit is a control function for all possible functions in PLM IEF.

This functions can be switched on or off with the transfer parameters, e.g. for the trace output, logging etc.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "{I[nit] | T[est] {E[in] | A[us]} | P[aram] <Parameter> <Value> | C}" With possible arguments:
  C[heck] |  | Check password
  I[nit] |  | Re-initialize
  L[ogging] | E[in] | Switch logging on
  | A[us] | Switch logging off
  | F[ehler] | Switch logging on as error log. Means: Only faulty data records are recorded
  T[est] | E[in] | Activate trace log
  | A[us] | Deactivate trace log
  P[aram] | Parameter value | Set parameter to certain value
  V[ersion] |  | Display the current internal EDB IEF version on the screen

Returns:

  If a value has been specified | The specified value is returned
  If no value has been specified | The current value is returned
  For values of the data type "Char" | The userexit "edb_ief_ctr_chr" must be used

int edb_ief_def_val | ( | ) |

The field userexit inserts a default value if the field is empty.

The value which has to be inserted must be transferred as a parameter.
If the value starts with "@", a default value with this name is searched and its content is inserted. It is therefore possible to insert user-specific default values.
If the first character is "\", the following "@" is not interpreted as a default but inserted in the field as specified.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<contents> /PARAM=<default>" With possible arguments:
  FIELD | contents | Contents of the field
  PARAM | default | Default value of the field

Returns:

  0 | OK

int edb_ief_del_lead_0 | ( | ) |

This userexit aligns the field content to the left or to the right.

The userexit deletes leading zeros.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<value> /PARAM={LEFT | RIGHT} /K-ROW=<row>" With possible arguments:
  FIELD | value | Contents of the field
  PARAM | LEFT | Aligns field contents to the left
  | RIGHT | Aligns field contents to the right
  K-ROW | row | Row that shall be changed

Returns:

  0 | OK

int edb_ief_gen_fld_dsc | ( | ) |

Generates a field definition from the mask definition for a newly created format.

It reads the field description of the mask from the DataView dictionary and inserts the field names, the start and end positions for the system as well as the sequence number into the format description. Depending on the default settings, it is also possible to generate the file positions. If a format has no mask entry, a form asks for the mask which is saved in the format. If a field description does already exist it won't be changed. If, however, a new description shall be generated, the old field description must be deleted first (also from the trashbasket).

The generated format description must be reviewed generally and if necessary some additions must be made (e.g. selection fields set). The sequence numbers start with 100 and are counted upwards in steps of 10 in order to have space for the extension (e.g. transaction code). The Agile e6 start position is always "1" and the length of the field in the data base determines the end position. The file line identification is always "01". The file position of fields starts with "1" and is counted upwards continuously.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "{Y | y | N | n}" With possible arguments:
  | {Y|y} | File positions are to be generated
  | {N|n} | File start and end has the value "1"

Returns:

  0 | OK

int edb_ief_get_buf_elm | ( | ) |

This userexit is called from a decision table to get the buffer element from the LogiView string with the function zag_get_buf_elm().

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "<Buffer> <Key> <Value>" With possible arguments:
  | Buffer | IN/OUT buffer
  | Key | IN key
  | Value | IN value

Returns:

  0 | OK

int edb_ief_get_sep_fld | ( | ) |

This userexit imports the contents of the field n from the file to the EDB field.

The file fields are divided by separating characters. The separating character is always the same for all fields. The old field content is used as default, the new content is a mixture of the old content and the file field. The separator "t" stands for the '\t' character, "n" for '\n' and "r" for '\r'.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "<Field separator>[<Text separator>],<Field number>" With possible arguments:
  | Data delimiter | Exactly one character, must be the same for all fields.
  | Text separator | Exactly one character, must be the same for all texts.
  | Field number | Specifies the number of the field to be read out in the file line (starting with one).

Returns:

  0 | OK

Example:

        // Data delimiter = \t, Text separator = '"' Field number = 11
        int iRc = edb_ief_get_sep_fld("t\",11");
        // Data delimiter = ;, Field number = 2
        int iRc = edb_ief_get_sep_fld(";,2");

Remarks:
  23.07.98 hor
  These changes were performed in context with FIS ID 4497. If you exceed the limit of your import file (perhaps you want to read the 99th field, but there are only 98 fields) a warning message will appear in tst____.trc (error-trace has to be switched on) and corresponding fields will be filled with blanks.

int edb_ief_grpid_2_name | ( | ) |

This userexit converts DataView's group ID to group name.

With this userexit, the group name can be transferred to the external system when exporting.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<group-id>" With possible arguments:
  FIELD | group-id | GIC of the group

Returns:

  0 | OK

int edb_ief_grpname_2_id | ( | ) |

This userexit converts DataView's group name to group ID.

With this userexit, the group ID can be transferred to the external system when exporting.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<group-name>" With possible arguments:
  FIELD | group-name | Name of the group

Returns:

  0 | OK

int edb_ief_ign_dat_usx | ( | ) |

This userexit sets an error code to ignore the current data record.

If this IEF userexit is called as a field userexit in a conversion line of the field description, it is ignored in the current conversion line.
In case the userexit is called up as a pre-action userexit, the complete data record is ignored. In such a case a report message is issued.

Parameters:

  par | Reserved

Returns:

  0 | OK

int edb_ief_left_just | ( | ) |

This userexit aligns field content to the left.

The field content will be aligned to the left within the start and end position of the current configuration line defined in the configuration.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<value> /K-ROW=<row>" With possible arguments:
  FIELD | value | Content of the field
  K-ROW | row | Row that shall be changed

Returns:

  0 | OK

int edb_ief_lgv_usx_ret | ( | ) |

This routine identifies the current return value of a userexit and adds it to the parameter value string.

The LogiView variables are reset. If combining userexits with LogiView, this LogiView function must be called with the LogiView variable (IEF_PARAMETER) after a C-IEF userexit is called from LogiView.

Parameters:

  cp_par | Default parameter for LogiView variable

Returns:

  0 | OK

int edb_ief_lgvstr_2_mas | ( | ) |

This userexit is called from a decision table or LogiView procedure to convert data from the LogiView string to the EDB mask.

It enables the conversion of the string content to the field of an EDB mask within a decision table or a LogiView procedure. The call-up of this function is only allowed in a decision table or LogiView procedure.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "<format> <version> <widget> <row> <str> <len> <act> <pos> <log> <ctr>" With possible arguments:
  | format | Format name of the IEF format to be applied.
  | version | Format version of the IEF format.
  | widget | Widget ID of the mask or "0" for the current widget.
  | row | Line number of the mask from which the field content is read.
  | str | Character string to which the data is to be written.
  | len | Length of the character string.
  | act | Transaction code which is written into the string at the position "@ACTION".
  | pos | Position number which is written to the string at the position "@INDEX".
  | log | Report output which is defined in the format with "@LOGINFO".
  | ctr | Control character for filling the string: "F" - Filling the string with the mask content. "M" - Marking the row (DTV: mas_set_drt_rec). "W" - Marking the row and saving the widget content in the database (DTV: mas_set_drt_rec and wdh_wri_lis). The mask content is not changed.

Returns:

  0 | OK

Example:

        RES = #edb_ief_lgvstr_2_mas (format, version, widget, row, str, len, act, pos, log, ctr);

int edb_ief_log_cls | ( | ) |

Closes the log file which contains the transferred data.

Returns:

  0 | OK

int edb_ief_lowercase | ( | ) |

This userexit changes all letters to lowercase.

The userexit converts the field content within the start and end position, defined in the configuration, to lowercase letters.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<value>" With possible arguments:
  FIELD | value | All uppercase letters in value are replaced by lowercase letters

Returns:

  0 | OK

int edb_ief_mas_2_lgvstr | ( | ) |

This userexit is called from a decision table or LogiView procedure to convert data of the EDB mask to a LogiView string.

It enables the conversion of the mask content of the current EDB mask to a character string in LogiView. The call-up of this function is only allowed in a decision table or LogiView procedure.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "<format> <version> <widget> <row> <str> <len> <act> <pos> <log> <ctr>" With possible arguments:
  | format | Format name of the IEF format to be applied.
  | version | Format version of the IEF format.
  | widget | Widget ID of the mask or "0" for the current widget.
  | row | Line number of the mask from which the field content is read.
  | str | Character string to which the data is to be written.
  | len | Length of the character string.
  | act | Transaction code which is written into the string at the position "@ACTION".
  | pos | Position number which is written to the string at the position "@INDEX".
  | log | Report output which is defined in the format with "@LOGINFO".
  | ctr | Control character for filling the string: "I" - Implementation of the string. "F" - Filling the string with the mask content.

Returns:

  0 | OK

Example:

        RES = #edb_ief_mas_2_lgvstr (format, version, widget, row, str, len, act, pos, log, ctr);

int edb_ief_no_log_usx | ( | ) |

This userexit deactivates the trace log for the current data record.

The IEF pre-action userexit sets the error status to "No protocol output" for the current data record.

Parameters:

  par | Reserved

Returns:

  0 | OK

int edb_ief_put_sta | ( | ) |

Puts the element to the requested state/maturity level.

Checks if the group is authorized. If yes,

1. Change to next state/maturity level
2. Call pre-action userexit
3. If required
   1. Enter new state/maturity level
   2. Set owner, group and access rights
   3. Send release mail
4. Call post-action userexit

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "{r|m|y|f|n|b}" With possible arguments:
  | r | Release
  | m | Modify (Change)
  | {y|f} | Forward
  | {n|b} | Backward

Returns:

  0 | OK
  Else | Error

int edb_ief_read_buf | ( | ) |

This userexit enables reading several lines of data records from the file.

The line number in the file for a data record must be constant. The userexit must be called up as an import field userexit in an individual line in which the column EDB field is occupied with @XIT and the column file line with @XIT. The last line of a data record must not be written to the file with this function.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/ROW=<value>" With possible arguments:
  ROW | value | Read data from the mask at value

Returns:

  0 | OK

int edb_ief_right_just | ( | ) |

This userexit aligns field contents to the right.

The field content will be aligned to the right within the start and end position of the current configuration line defined in the configuration.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<value> /K-ROW=<row>" With possible arguments:
  FIELD | value | Content of the field
  K-ROW | row | Row that shall be changed

Returns:

  0 | OK

int edb_ief_run | ( | ) |

This IEF userexit executes an operating system command (start of a command procedure or a program for instance).

All call-up parameters are determined by the transferred userexit. It can be called up as a pre-action or post-action userexit. The first value in the userexit parameter is an operating system variable in which the real operating system call-up is defined. All other values in the user parameters determine the content of the action parameter which has to be transferred as a parameter to the system call-up.

Parameters:

  par | Parameter with operating system command

Returns:

  0 | OK

Example:
  Userexit entry:

        edb_ief_run(CPY_FIL_SYM,FILE,FUNCTION)

  Content of variables:
  - Content of CPY_FIL_SYM = "$EDB_COM/cpy_file.com"
  - Content of FILE = EDB_ART_EXP_DAT
  - Content of EDB_ART_EXP_DAT = "$EDB_TMP/export.dat"
  - Content of FUNCTION = "EXPORT"
  The call-up of the operating system command will then be as follows:

        $EDB_COM/cpy_file.com "EDB_ART_EXP_DAT" "EXPORT"

int edb_ief_set_buf_elm | ( | ) |

This userexit is called from the decision table to set the buffer element in a LogiView string with the function zag_set_buf_elm().

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "<Buffer> <Key> <Value>" With possible arguments:
  | Buffer | IN/OUT buffer
  | Key | IN key
  | Value | IN value

Returns:

  0 | OK

int edb_ief_tor_rr_vr | ( | ) |

This pre-action userexit sets the values for "Valid from" and "Valid until" for transitions and changes the state values to RELEASED.

Thus it is not necessary to enter the date manually.

Parameters:

  par | Reserved

Returns:

  0 | OK

int edb_ief_tst_usx | ( | ) |

This userexit is used to test the userexit function.

All given parameters are written to "stderr". It can be used do determine the parameters given to this userexit by the current version of IEF.

The values for the following parameters are printed to "stderr" (alphabetical order):

- ACTION
- ERROR
- FIELD
- FILE
- FORMAT
- FUNCTION
- IS_ACTION
- K-ROW
- MASK
- OLD_FIELD
- PARAM
- PART_ID
- REVISION
- ROW
- SHEET
- VERSION
- WHAT
- WIDGET

Parameters:

  par | The parameter of the userexit function.

Returns:

  0 | OK

int edb_ief_uppercase | ( | ) |

This userexit changes all letters to uppercase.

The userexit converts the field content within the start and end position, defined in the configuration, to uppercase letters.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<value>" With possible arguments:
  FIELD | value | All letters in value are replaced by uppercase letters

Returns:

  0 | OK

int edb_ief_usrid_2_name | ( | ) |

This userexit converts the DataView user ID to a user name.

With this userexit, the user name can be transferred to the external system when exporting.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<user-id>" With possible arguments:
  FIELD | user-id | UIC of the user

Returns:

  0 | OK

int edb_ief_usrname_2_id | ( | ) |

This userexit converts DataView's user name to its user id.

With this userexit, the user id can be transferred to the external system when exporting.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/FIELD=<user-name>" With possible arguments:
  FIELD | user-name | Name of the user

Returns:

  0 | OK

int edb_ief_wri_ascii | ( | ) |

This userexit enables filling an EDB field or an output file with non-printable characters by using ASCII code.

The TAB character is represented by ASCII code 9 for instance. Only one value is possible.

Parameters:

  cp_par | Parameter to control the behavior of this function. Syntax like: "/PARAM=<value>" With possible arguments:
  PARAM | value | Integer representation of the ASCII character.

Returns:

  0 | OK

int edb_ief_write_buf | ( | ) |

This IEF field userexit enables to write data records in several lines of the output file during the export.

It must be called up as an export field userexit in its own individual line in which the EDB field is occupied with @XIT and the column file line with @XIT. The buffer content, collected up this moment, is written into the file.
All following configuration lines describe the structure of further lines in the file for a data record.
The last line of a data record should not be written to the file with this function. The buffer area must be deleted, if necessary, after calling this function (@BLANK).

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/BUFFER=<value>" With possible arguments:
  BUFFER | value | PPS-Buffer

Returns:

  0 | OK

int exm_snd_ext | ( | ) |

Triggers the sending of mail via external mail program.

Now supports client- and server-site sending for mail. In case of client-site sending, a mail client defined by Windows operating system is started and can be used interactively.
In case of server-site sending, the mail is sent in the background not requiring any user interaction.
To use the server-site sending from your LogiView procedure append the " /MAILER=NOTIFIER" string at end of your parameter string for the exm_snd_ext trigger. For client side sending do not append anything.
To enable server-site sending, set the variable EDB-EXM-MAILSND-SITE to SERVER in the "DEFAULT DATA" mask. To enable client-site sending, set the variable to CLIENT. If this variable does not exist, you need to create it first.

Description of possible parameters used in the char string for server-side sending via Notifier:

ATTACHMENTS | "-a" | ATTACHMENTS should be in the same PATH as the FILES. If you use TEXT instead of FILES, you need to set the PATH for ATTACHMENTS.
ECI_LOOP | "-e" | Eci topic "eci_dde_loop"
PATH | "-i" | The PATH is set always independent of the FILENAME as ATTACHMENTS use the same path.
ENCODING | "-k" | Example: "ISO8859-1".
LANGUAGE | "-l" | Default entry is ENG, also possible is GER.
MIMETYPE | "-n" | Default entry is "text/plain". If you want to use html, set the MIMETYPE to "text/html"
RECIPIENT(S) | "-r" | The delimiter between RECIPIENTS is the comma. the prefix CC: will set all following RECIPIENTS to cc, also all RECIPIENTS after the prefix "BCC:" are set to bcc.
SUBJECT | "-s" | The SUBJECT of this mail. The default entry is "no subject".
TEXT | "-t" | The mail TEXT. Not required if you use file, see FILENAME. Do not forget to set the PATH for ATTACHMENTS.
SENDER | "-u" | Just the user name!, NOT the email address and NOT the uic.
FILENAME | "-x" | Only the file name where the mail text is stored, NO path.

Description of possible parameters used in the char string for client-side sending:

ATTACHMENTS | "-a" | ATTACHMENTS should be in the same PATH like the FILES. If you use TEXT instead of FILES you need to set the PATH for ATTACHMENTS.
INTERFACE | "-c" | Mail interface CMC or MAPI
DOCUMENT | "-d" | Documents and assigned files
ECI_LOOP | "-e" | Eci topic "eci_dde_loop"
PATH | "-i" | The PATH is set always independent of the FILENAME because ATTACHMENTS use the same path.
SEND-FLAG | "-p" | not set = default behavior, set to 0 = avoid client window, set to 1 = force client window | RECIPIENT(S) | "-r" | The delimiter between RECIPIENTS is the comma. the prefix CC: will set all following RECIPIENTS to cc, also all RECIPIENTS after the prefix "BCC:" are set to bcc.
SUBJECT | "-s" | The SUBJECT of this mail. The default entry is "no subject".
TEXT | "-t" | The mail TEXT. Not required if you use file, see FILENAME. Do not forget to set the PATH for ATTACHMENTS.
FILENAME | "-x" | Only the file name where the mail text is stored, NO path.
LOGFILE | "-y" | Log file for debug information.

Code sample for server-side sending in LogiView:
To use this code, copy this description into a file "ExtMailTest.dat" in the C:\Temp directory.
Copy the LogiView code, replace the email addresses with existing ones and start this procedure.

      10 EP_MAIL_OPT = "-s'ext mail test'-k'ISO8859-1'-e'eci_dde_loop'-r'eu-support@agile.com,CC:eu-support@agile.com,BCC:eu-support@agile.com'-i'C:\temp\'-x'ExtMailTest.dat'-a'ExtMailTest.dat'/MAILER=NOTIFIER"
      20 RES=@exm_snd_ext(EP_MAIL_OPT)
      30 put(EP_MAIL_OPT)
      40 put(RES)

Parameters:

  cp_opt | : char string with options for starting external mail-interface. String is created in LogiView functions (in logic model EP_EXTMAIL).
  cp_ignore | : Second userexit parameter (ignored)

Returns:

  0 | OK
  -1 | Error

int ief_bau_end | ( | ) |

This trigger combines edb_mrl_art_lst_cls() and ief_ntm_end().

Parameters:

  par | Same as ief_ntm_end()

Returns:

  0 | OK

int ief_bau_start | ( | ) |

This trigger combines edb_mrl_art_lst_opn() and ief_ntm_start().

Parameters:

  par | Same as ief_ntm_start()

Returns:

  0 | OK

int ief_ntm_del_fld | ( | ) |

This field import trigger reads the current field (must be NTM_REF).

If the value is greater than zero, all notes with the read note_id are deleted. The note reference is reset.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/ROW=<row> /OLF_FIELD=<note>" With possible arguments:
  ROW | row | Row number
  OLD_FIELD | note | ID of the note

Returns:

  0 | OK

int ief_ntm_end | ( | ) |

This trigger closes the note widget and resets the virtual mode.

Parameters:

  par | Reserved

Returns:

  0 | OK

int ief_ntm_exp_fld | ( | ) |

This import field trigger is used for note ID fields in items or refine lists.

The converting line must be the last line in an IEF field definition. This trigger opens a virtual widget for the note management, checks whether a note ID exists and writes all notes with this note ID to a file.

To open a note widget, use the IEF start userexit ief_ntm_open_widget.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/PARAM={(WRITE_FIRST)|(WRITE_ALL)} /ROW=<row> /BUFFER=<buffer> /FIELD=<note>" With possible arguments:
  FIELD | (WRITE_FIRST) | When notes are present: write buffer before writing note records.
  | (WRITE_ALL) | Write buffer every time this userexit is called, no matter whether notes are present or not.
  ROW | row | Row number
  BUFFER | buffer | The buffer that shall be used
  FIELD | note | Note ID

Returns:

  0 | OK

int ief_ntm_get_fld | ( | ) |

This IEF field trigger retrieves the saved value from a buffer.

The buffer name is given as a parameter. It then sets the current field to this value.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/PARAM=<buffer> /ROW=<row>" With possible arguments:
  PARAM | buffer | The buffer that shall be used.
  ROW | row | Row number

Returns:

  0 | OK

int ief_ntm_imp_fld | ( | ) |

This IEF import field trigger is used at note ID fields in items or refine lists.

This converting line must be the last one in the IEF field definition. The userexit opens a virtual widget for managing notes, checks whether a note ID exists and inserts the given or a new note ID into the parent element and into the note mask.

This trigger checks the action if the parameter is (/TRA-STRICT=1). LogiView: definition of system variable "IEF_NOTE_ID" is necessary, which must contain the new note ID after the LogiView userexit is called.

Action is used from parent format (ex. Item). The note mask must be a special mask without userexits.

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/SEL-FLG={0|1} /ID=<value> /CIRCLE=<cycle> /LGV=<dt>" With possible arguments:
  SEL-FLG | {0|1} | This parameter defines whether a pre-selection in NTM widget with keys from IEF format is done.
  ID | OLD | Old style locking (without number server).
  | NSV | Note ID is generated by number server (default).
  | CID | C_ID of origin record is taken for note ID.
  | LGV | C_ID of origin record is generated by LogiView.
  CIRCLE | cycle | Number cycle for generating note ID (/ID=NSV is automatically set)
  LGV | dt | Name of decision table to be called (/ID=LGV is automatically set)

Returns:

  0 | OK

int ief_ntm_sav_fld | ( | ) |

This IEF field trigger saves the content of the current field in a buffer.

The name of the buffer is given as a parameter. The content can be read with ief_ntm_get_fld().

Parameters:

  par | Parameter to control the behavior of this function. Syntax like: "/PARAM=<buffer> /ROW=<row> /FIELD=<field>" With possible arguments:
  PARAM | buffer | Buffer that shall be used.
  ROW | row | Row number
  FIELD | field | Field that shall be saved.

Returns:

  0 | OK

int ief_ntm_start | ( | ) |

This trigger is called as IEF start userexit.

This function opens a widget for notes. You can define the widget type, the IEF format and parameters to open the widget. Because the userexit column in IEF is short, you can define the widget parameters as a default value. The name of the value is passed with a '@'.

Note:
  When this function is called, you must call ief_ntm_end() as IEF end userexit to close the note widget.

Parameters:

  par | Special IEF Parameter has the form: "( <Type> , IEFFmt ,@Default )". "( <Type> , IEFFmt , Entity1 , Mask ,,)". "( <Type> , IEFFmt , Entity1 , DocType , Mask ,)". "( <Type> , IEFFmt , Entity1 , Entity2 , View , Mask )". Type is one character ('E', 'T', 'R'). Additionally modifiers are allowed: /F = name of note ID field. /T = datatype of note ID field 'C' or 'I'. /I = name of index field 'POS_NO'... or empty. /P = Entity1,Entity2,...

Returns:

  0 | OK

int lgv_usx_get_tra_lev | ( | ) |

This userexit returns the current EPQ transaction level.

The level is less than zero if a nested transaction calls epqabo().

Returns:
  The current EPQ transaction level

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

Userexit to check the password of an user.

Parameters:

  context | the userexit context
  param | the name of the user or empty for the current user

Returns:

  0 | The password is valid |  | 1 | The user / password is invalid |  | 2 | The user aborted the dialog
  -2 | Error during creating the password mask

int sig_chk_use_sta | ( | ) |

Checks the state of a digital signature usage.

Parameters:

  cpPar | Parameter to control the behaviour of this function. Syntax like: "/USAGE=type" with possible arguments:
  USAGE | type | Available usage types: "RELEASE" Signing on release. "EMAIL" Not supported jet. "NETMEETING" Not supported jet.
  cpIgn | not used

Returns:

  0 | on
  1 | off

int sig_cre_tic | ( | ) |

Creates an access ticket and stores it into the LogiView system variable.

Parameters:

  cpPar | the name of the Lgv system variable
  cpIgn | not used

Returns:

  0 | ok
  1 | error

int xapp_exc | ( | ) |

Starts an external application (by evaluating table T_APP_DAT).

The executed shell command depends on the passed parameters. These parameters are used to find the appropriate command from the list of external applications.

Parameters:

  cp_par | Parameters to execute a specific shell command contained in the table of external applications (T_APP_DAT). These parameters are used to build-up the search structure for the command that should be executed. Syntax like: "/FILE=<file name> [/PARAM=<parameters>] [/MODE=<application mode>] [/TYPE=<file type>] [/WAIT] [/NOWAIT]" With possible arguments:
  FILE | filename | Filename (including the complete path). If there is a s in your command string the filename is inserted there. Otherwise, the filename is added at the end of the command string.
  PARAM | parameters | Same as the FILE option except that no conversion of path separators is performed (i.e. the original parameter is passed to the application).
  MODE | V | View mode
  | E | Edit mode
  | R | Redline mode
  | P | Plot mode
  | C | Convert mode
  | U | Unwrap mode
  | H | Help mode
  | O | Office Suite mode
  TYPE | file type | File type (file extension). If the option is not chosen it is determined by the filename.
  WAIT |  | If this option is chosen, the client will wait until the called application has been closed.
  |  | If this option is not chosen, the userexit returns immediately.
  NOWAIT |  | If this option is chosen, the userexit returns immediately.
  |  | If this option and the WAIT option is not chosen, the system uses the NOWAIT option as default.

Returns:

  0 | Application started (& finished) successfully
  -1 | Error when executing command
  -2 | No application (for this parameters) found
  -3 | Environment variable not set (check CLI_HWS)

Example:

        // Search the list of external applications for the command you defined for
        // html files (filetype=html) and mode (view)
        // The option /WAIT forces the PLM server to wait until your application has closed.
        // The filename & path should be written in 'quotes' to avoid
        // confusions with other options of the parameter.
        int iRc = xapp_exc("/FILE='C:\tmp\demo.html' /MODE=V /WAIT");

int xapp_prt_inf | ( | ) |

Shows information about the application that will be started when calling xapp_exc.

This userexit shows the startup information that is used by the external application module when the userexit xapp_exc() is called with the same parameters.
This information is displayed in the message window.

Parameters:

  cp_par | The parameter is identical to the input parameter of xapp_exc() Please refer to the userexit xapp_exc() for a detailed syntax description.

Returns:

  0 | Application info is printed successfully.
  -2 | No application found (for this parameter).
  -3 | Environment variable not set (check CLI_HWS).

int xapp_rea_fld | ( | ) |

This userexit can be used by LogiView to determine specific external application entries.

The parameter EP_APP_PAR has the same syntax as described in xapp_exc().

Parameters:

  cpPar | LogiView parameter that is divided into the following arguments.
  EP_APP_PAR | Parameter for xapp_exc() (input) | Input parameter used for the userexit xapp_exc().
  EP_FLD | field name (input) | Field name of the table T_APP_DAT that belongs to the row matching with the parameter EP_APP_PAR.
  EP_CONTENTS | field content (output) | Field contents of the found external application entry.

Returns:

  0 | OK
  Else | Error

Example:

         10 EP_APP_PAR = "/FILE=example.html  /MODE=E"
         20 EP_FLD = "T_APP_DAT.APP_CMD"
         30 EP_CONTENTS = ""
         40 RES = #xapp_rea_fld(EP_APP_PAR, EP_FLD, EP_CONTENTS)
         50 put(strprint("Use command %s to start application !"))

         The contents (EP_CONTENTS) could be "cmd.exe /c start %s".

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

Retrieves the change management configuration of a specific entity or entity relation.

Parameters:

  context | Context of the userexit
  param | Parameter to get the different change management configuration information. Syntax like: "/FIELD={EDB_CHG_FLG | EDB_PAR_VER_MOD | EDB_PAR_EFF_MOD} /EN1=<entity1> [/EN2=<entity2> /VIEW=<view>] with possible fieldnames:
  FIELD | EDB_CHG_FLG | Change management flag
  | EDB_PAR_VER_MOD | Parallel versioning flag
  | EDB_PAR_EFF_MOD | Parallel effectivity flag
  EN1 | entity1 | Name of entity1
  EN2 | entity2 | Name of entity2
  VIEW | view | Name of view
  | Do not pass options EN2 and VIEW for entity configurations

Returns:
  Depends on the value of "/FIELD":

  Field Name | Return Values | Description
  --- | --- | ---
  EDB_CHG_FLG | 0 | No control [StatusControlModeEnum::OFF]
  | 1 | Manual control (status transition) [StatusControlModeEnum::MANUAL]
  | 2 | Controlled by work set from approved on [StatusControlModeEnum::WITH_RELEASE]
  | 3 | Controlled by work set from create on [StatusControlModeEnum::WITH_CREATE]
  EDB_PAR_VER_MOD | 0 | No parallel versioning
  | 1 | Parallel versioning enabled
  | 2 | Parallel versioning enabled with confirm
  EDB_PAR_EFF_MOD | 0 | No parallel effectivity
  | 1 | Parallel effectivity enabled

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

Check if the Change Management is active.

Check if the configuration parameter EDB-CHG-SET-ACTIVE is set to ON.

Parameters:

  context | The context of the userexit
  param | Reserved

Returns:

  0 | Change Management is switched off.
  1 | Change Management is active.

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

Call the undo operation method of the base implementation of the given change operation.

This userexit provides a userexit wrapper for the undo operation of a change operation's base class. Basically the undo framework works like this:

1. The undo button calls the userexit 'xchg_log_opr_und' (ChgLogPresenter::undoChangeOperation)
2. The userexit checks if the trashbasket is empty and optionally asks for confirmation
3. The userexit creates a change operation instance and calls ChgChangeOperation::undo()
4. The undo method checks again if the trashbasket is empty
5. The Work Set is locked and a transaction is opened
6. All children of this change operation are undone in reverse order by calling ChgChangeOperation::undoOperation(ChgChangeOperationContextR) [see below]
7. The change operation itself is undone by calling its undo userexit
8. The default undo userexit performs the following steps:
   1. Checks if new and old objects of this operation are "undoable"
   2. undoNewObjects is called: For each object, the FROM operation is cleared and the delete userexit is called.
   3. undoOldObjects is called: For each object, the UNTIL operation is cleared.
9. The trashbasket is emptied and the transaction is closed.

If an exception is thrown during this process, the transaction is rolled back.

Looking at this process, at least the method ChgChangeOperation::undoOperation(ChgChangeOperationContextR) must be accessible from the customizers world (i.e. LogiView), otherwise (s)he would have to code too much stuff (with the respective risk). So the 'undo userexit' stored in the change operation LUT is in fact a customizer written replacement for the undoOperation method.

Parameters:

  context | The context of the userexit
  param | Parameter to control the behavior of this function. Syntax like: "/CHGCTX=<operation context id>]" With possible arguments:
  CHGCTX | operation context id | Pass the EDB_ID of the change operation. The base operation of the passed change operation will be determined and its ChgChangeOperation::undoOperation() method will be called

Returns:

  0 | OK
  Else | Error

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

Determines the product structure elements corresponding to the specified BOM position.

Userexit can be called from LGV to get a product structure element.

LGV parameters:

I_PAR_EDB_ID | Integer variable with EDB_ID of parent item (0 if I_BOM_EDB_ID is given) (input)
I_POS_NO | Integer variable with POS_NO of BOM position (0 if I_BOM_EDB_ID is given) (input)
I_BOM_EDB_ID | Integer variable with EDB_ID of BOM position (0 if I_PAR_EDB_ID and I_POS_NO are passed) (input)
D_VAL_FROM | Date variable with "valid from" value for timeframe (input)
D_VAL_UNTIL | Date variable with "valid until" value for timeframe (input)
S_VIEW_MODE | String variable with view mode ("PRD" = production, "DEV" = development (input)
I_ELM_EDB_ID | Integer variable with EDB_ID of (first) corresponding product structure element (output)
I_ELM_NUM | Integer variable with number of found product structure elements (output)
I_ELM_ERROR | Integer variable with error code (output)

The default variable EDB-CPS-ELM-EDBIDS (of type string) is set, containing a comma separated list of all found T_CPS_ELM_DAT.EDB_IDs.

Parameters:

  context | Menu userexit context
  param | Reserved

Returns:

  0 | OK
  Else | Error

Example:

       // LGV code
       RES = #xcps_vrf_get_pse(I_PAR_EDB_ID, I_POS_NO, I_BOM_EDB_ID, D_VAL_FROM, D_VAL_UNTIL,
                               S_VIEW_MODE, I_ELM_EDB_ID, I_ELM_NUM, I_ELM_ERROR)

int xeer_exp_chk_out | ( | ) |

Calls xfile_chk_out() to check out all files assigned to document records that are selected in the current mask.

Records (meta data) that are related to the document records are marked for EER export, too. These are basically the document record itself, the file record and the corresponding relation record.

Parameters:

  cpArgument | Default trigger parameter (reserved)

Returns:

  0 | OK
  Else | Error

int xeer_exp_ins_rec | ( | ) |

Checks all selected records of the current mask for EER replication.

Related records of the selected records (parent and child of relation records for instance) are marked for EER export, too.

Parameters:

  cpArgument | Default trigger parameter (reserved)

Returns:

  0 | OK
  EER_EXP_ALREADY_SENT | Record is already replicated
  EER_EXP_BREAK_ON_TOP | Record is replicated and recursion is detected
  Else | Error

int xewm_crm_elm_mod | ( | ) |

Transfers the elements of the assigned folder into the the state 'IN MODIFICATION' (only if WORK_TYPE=CHANGE).

Parameters:

  cpPar | Default parameter with current mode and current row.

Returns:

  0 | OK
  Else | Error

int xewm_crm_elm_sta | ( | ) |

Depending on the entry in the field WORK_TYPE, this userexit checks the element state of the assigned folder.

WORK_TYPE | What check is done?
START | it is checked if all elements are in the lowest state.
CHANGE | it is checked if all elements are in the state "RELEASED".
otherwise | no check is performed

Parameters:

  cpPar | Default parameter with current mode and current row.

Returns:

  0 | OK
  1 | Not all elements are in the desired state

int xgfi_chk | ( | ) |

Calls function gfi_chk() The userexit checks if the graphical interface is initialized or not.

Parameters:

  cpPar | not used

Returns:

  0 | graphical interface is not initialized
  1 | graphical interface initialized

int xmail_action | ( | ) |

Edit action userexit to check for query mode.

Modes other than query are not allowed!

Returns:

  0 | OK
  1 | Mode is not Q

int xmail_post_action | ( | ) |

If the field M_SND_U exists and includes a valid uic the corresponding user name is added to the field M_SND_USER.

Returns:

  0 | OK
  1 | Mode is not Q

int xmail_pre_action | ( | ) |

If the mask name includes 'SND' and is longer than 3 digits, The uic of the current user is inserted into the field M_SND_U to search for all mail entries.

Returns:

  0 | OK
  1 | Mode is not Q

int xmail_snd_to_dbl | ( | ) |

Creates a message for all users and groups in a distribution list.

Parameters:

  par | Parameter to control the behaviour of this function. The parameter includes the following arguments in the described order separated by '\n'::
  1 | Send User Id
  2 | Receive Group Id
  3 | Mail trigger
  4 | Mail trigger parameter
  5 | Mail text
  6 | Mail Id (user-defined)
  7 | Comment for sender
  8 | Activation date = Wake date
  9 | Start date
  10 | End date
  11 | Priority

Returns:

  0 | Message was sent
  1 | Error
  2 | Error in resolving dbl

int xmail_snd_to_grp | ( | ) |

Creates a message for a certain group.

Parameters:

  par | Parameter to control the behaviour of this function. Syntax like: The parameter includes the following arguments in the described order separated by '\n'::
  1 | Send User Id
  2 | Receive Group Id
  3 | Mail trigger
  4 | Mail trigger parameter
  5 | Mail text
  6 | Mail Id (user-defined)
  7 | Comment for sender
  8 | Activation date = Wake date
  9 | Start date
  10 | End date
  11 | Priority

To send external mails, the default parameter EDB-MAL-SND-EXT must be set to off(0), on(1), inter(2)

Returns:

  0 | Message was sent
  other | Error

int xmail_snd_to_usr | ( | ) |

Creates a message for a certain user.

Parameters:

  par | Parameter to control the behaviour of this function. The parameter includes the following arguments in the described order separated by '\n'::
  1 | Send User Id
  2 | Receive Group Id
  3 | Mail trigger
  4 | Mail trigger parameter
  5 | Mail text
  6 | Mail Id (user-defined)
  7 | Comment for sender
  8 | Activation date = Wake date
  9 | Start date
  10 | End date
  11 | Priority
  12 | Name of role
  13 | Usr Id(role)

To send external mails, the default parameter EDB-MAL-SND-EXT must be set to (off(0), on(1), inter(2))

Returns:

  0 | Message was sent
  1 | Incorrect parameters
  2 | Insert into database not possible

int xmgt_drp_fnc | ( | ) |

Drag&Drop userexit when a Drag&Drop action is performed in the target widget.

Calls the LogiView procedure if passed by xmgt_drp_prm and writes the record C_ID and the parent record C_ID to the widget buffer of the target widget.

Note:
  The function pointer for Drag&Drop operation is set to this userexit by xmgt_drp_prm .

Parameters:

  h_DstWdg | Id of target widget by a Drag&Drop operation.

Returns:

  0 | OK
  1 | Error

See also:
  xmgt_drp_prm

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

Userexit to check if the office suite client components are installed.

Parameters:

  context | The userexit context
  param | Reserved

Returns:

  1 | The client components are available
  Else | The client components are not available

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

Delete all document properties from the widget buffer.

Parameters:

  context | The userexit context
  param | the widget id whose buffer contains the document properties.

Returns:

  1 | Values written |  | -1 | Widget not valid | ]

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

Userexit to check if the target table is valid for file drag & drop operations.

Parameters:

  context | The userexit context
  param | The table name

Returns:

  1 | The drop target is valid
  Else | The drop target is invalid

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

Get all properties value from java client with one call and set them in the widget buffer of trash.

The document properties in the widget buffer of trash have the prefix: PRP.

Parameters:

  context | The userexit context
  param | the trash widget id.

Returns:
  int

  1 | Values written |  | -1 | Widget not valid
  -2 | Client communication failed

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

Registers the client start-up values on the client machine.

The method writes registry values to HKEY_CURRENT_USER.

Parameters:

  context | The userexit context
  param | not used

Returns:

  1 | Values written
  Else | Error

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

Get all properties from widget buffer and send it to client within one call.

The document properties have the following prefix: docProps.BuiltInPropWrite. for the built in properties; docProps.CustomerPropWrite. for the customer properties;

Parameters:

  context | The userexit context
  param | the widget id whose buffer contains the document properties.

Returns:

  1 | Values written |  | -1 | Widget not valid
  -2 | Client communication failed

int xpac_act | ( | ) |

Set the first selected record to the current element packet.

You have to have write permission to this element. If an element already exist, you are asked whether to close this element first, or leave it as is.

Returns:

  0 | OK
  1 | Error

int xpac_act_asg | ( | ) |

Opens the specified refine widget for the currently chosen elements and inserts all selected records from the current widget.

Parameters:

  char | *cpPar => Name of entity1 and entity2 (e.g. "EDB-PACKET EDB-PROJECT")

Returns:

  0 | OK
  1 | Unable to open refine widget

int xpac_act_cls | ( | ) |

The current element will be closed.

The value of the static data xpaActElm is set to 0L ( = initial value).

Returns:

  Always | 0

int xpac_act_cnt | ( | ) |

Opens the widget with the content of the currently chosen element and the respective entity.

Parameters:

  char | *cpEntity => Name of the entity (e.g. EDB-PACKET)

Returns:

  0 | OK
  1 | Unable to open widget with content of the entity.

int xpac_act_opn | ( | ) |

Opens a widget with all records of the desired entity.

You can choose one entity to be the current element for further operations. You have to have write permission to this element. If an element already exist, you are asked whether to close this element first, or leave it as is.

Parameters:

  char | *cpPar -> Name of entity (e.g. EDB-PACKET)

Returns:

  0 | OK
  1 | Unable to open widget to choose current element

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

Cleans up the temporary access table.

Deletes the entries that were created by the userexit `xpdw_cre_acc_tmp` from the temporary access table.

Parameters:

  ctx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[/KEY=key]" With possible arguments:
  KEY | unique key | The key that is used to select the records from the temporary table. All records with this key are removed from `T_PDW_ACC_TMP`. If no `/KEY` parameter is passed, the unique id is calculated from the current widget and the current user.

Returns:

  0 | OK
  1 | Error

See also:
  xpdw_cre_acc_tmp

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

Creates the data for the object access list of the current object.

This userexit is similar to `xpdw_frm_acc`, but does not display the access mask interactively. Instead, it only creates the data in the temporary table `T_PDW_ACC_TMP`. To remove the entries from the table, call the userexit `xpdw_clr_acc_tmp`.

Parameters:

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

Returns:

  0 | OK
  1 | Error

Example:

        xpdw_cre_acc_tmp /KEY=MyUniqueKey /HIGHEST_ONLY

See also:
  xpdw_clr_acc_tmp

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

Checks if an user has access to an object.

Parameters:

  usxCtx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax is: "/CID=objectCid /ENT=entityName [/CFG]" With arguments:
  objectCid | C_ID of object
  entityName | Entity of object
  CFG | Check is only done if configuration parameter EDB-PDW-CHK-OBJ-BY-EDB has value "yes".

Returns:

  0 | User has no PDW access to object.
  1 | User has PDW access to object.
  -1 | PDW (MPA/MOA) is not activated.
  -2 | Configuration parameter EDB-PDW-CHK-OBJ-BY-EDB has value "no" or is not available

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

Checks if an entity is under control of multi project or multi organization access rights.

Parameters:

  usxCtx | The userexit context.
  param | Parameter to control the behavior of this userexit. Syntax like: "[entityname] | [/EN1=entity1 /EN2=entity2 /VIEW=view]" With possible arguments:
  entityname | name of entity | Name of entity to check whether it is under control of multi project or multi organization access rights or not.

Instead of the entity, it is also possible to check if the relation is protected by multi project or multi organization access rights (needed for `xcpy_str`). The following parameters can be used for this check:

EN1 | entity name | Name of first entity.
EN2 | entity name | Name of second entity.
VIEW | view name | Name of view.

Returns:

  0 | Entity is not under control of multi project or multi organization access rights.
  1 | Entity is under control of multi project or multi organization access rights.

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

Checks if the PDW views have been temporarily disabled by using `xpdw_view_off`.

Parameters:

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

Returns:

  0 | The PDW views are not temporarily disabled.
  1 | The PDW views are temporarily disabled.

int xprg_cls | ( | ) |

Closes the progress reporter form.

Checks if a widget opened by xprg_opn() is open and closes it.

Returns:

  0 | OK
  5 | User aborted (XPRG_USER_ABORTED)
  Else | Error

Example:

        // working example
        int iRc = xprg_cls();

int xprg_opn | ( | ) |

Opens a passed or dynamically generated progress reporter form.

If the /FORM option is set, the passed form will be opened and the title, theme, action and image field (if in the form) will be set to the corresponding value. If the /FORM option is not set, a form with the desired fields (optional parameters /THEME, /ACTION, /IMAGE, /REMAINING) will be generated dynamically with the following layout:

| 1st column | 2nd column
--- | --- | ---
1st row | Image | Theme
2nd row |  | Action
3rd row | Remaining | Progress

If an item in the first column is missing, the item(s) in the second column will be aligned to the left side.

The widget ID and the current system time will be stored in module global variables. The progress indicator (float value, truncated to integer when displayed in the form) will be set to 0.0.

Parameters:

  cpParameter | Parameter to control the behavior of this function. Syntax is: "<title> [/THEME=<theme>] [/ACTION=<action>] [/IMAGE=<image>] [/FORM=<form>] [/REMAINING] [/PROGRESS]" with possible arguments:
  | title | Title of the generated form.
  THEME | theme | Theme (chapter) displayed in the form.
  ACTION | action | Action displayed in the form.
  IMAGE | image | Image displayed in the form.
  FORM | form | Name of the form to be displayed.
  REMAINING |  | Remaining time shall be displayed.
  PROGRESS |  | Progress bar shall be displayed.
  || ABORTABLE | | Allow the user to abort the operation? ]

Remarks:
  The image field has a column size of 14 and a row size of 4, the other fields have a length of 40.

Returns:

  0 | OK
  Else | Error

Example:

        // working example
        int iRc = xprg_opn("EER Export /FORM=\"EDB-EER-PRG-SFR\" /THEME=\"Working on N*Tree\""
                           "/ACTION=\"Initializing\" /IMAGE=\"#eerini00.gif\"");

int xprg_upd | ( | ) |

Updates an already opened progress reporter form.

It determines if a progress reporter widget has already been opened by xprg_opn(). If not, return with error. Updates all fields in the form with the corresponding values or leaves the fields unchanged for which the option is not set.
The remaining-time field is only updated it following condition is met: The process must run since TIME_THRSHD seconds and the progress indicator must be at least PROG_THRSHD. The remaining time is calculated with

and exponential smoothing (smooth = 0.8) is applied with

Parameters:

  cpParameter | Parameter to control the behavior of this function. Syntax is: "[/THEME=<theme>] [/ACTION=<action>] [/IMAGE=<image>] [/PROGRESS=<progress>]" with possible arguments:
  THEME | theme | Theme (chapter) displayed in the form.
  ACTION | action | Action displayed in the form.
  IMAGE | image | Image displayed in the form.
  PROGRESS | progress | Current progress to be displayed in the form (float value).

Returns:

  0 | OK
  5 | User aborted
  Else | Internal Error

Example:

        // working example
        int iRc = xprg_upd("/THEME=\"Working on N*Tree\" /ACTION=\"Starting n*tree\"");

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

Starts the batch job.

The method sets the default value "EDB-PVM-BATCH-<site>" to "RUN" and executes the batch loop.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

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

Executes the check to create a new markup document.

Parameters:

  context | The context of the userexit
  param | not used

Returns:

  0 | OK
  1 | Error

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

Deletes the temporary viewing data in error case.

The userexit deletes the file list and the DMS properties of the passed view ID from T_PVM_FIL_DAT and T_PVM_DMS_DAT.

Parameters:

  usxContext | The userexit context.
  viewId | The view ID

candcpp

Returns:

  0 | OK
  1 | Data could not be deleted.

int xrel_set_rel | ( | ) |

The reference to the given entity is set in the multi list of the folder.

The reference to the given entity is created.

Parameters:

  cp_Entity | The entity to activate

Returns:

  0 | OK
  1 | Error

int xwfl_act_access | ( | ) |

Userexit to check if access to the given activity is allowed.

Parameters:

  cpPar | : Activity c_id
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error
  2 | No access to activity

int xwfl_act_restart | ( | ) |

Userexit to restart an activity which was already rejected.

Used in LogiView procedure EP_WFL/RestartActivity.

If a work item is initially rejected the respective activity is stopped. The process responsible user has the possibility to change the resource of the activity. With this userexit the activity can be restarted.

Parameters:

  cpPar | : Activity c_id
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example: Refer to LogiView procedure EP_WFL/RestartActivity

int xwfl_batch_call | ( | ) |

Userexit to start a post-action on a process or activity.

Used in LogiView procedure EP_WFL_BATCH/BATCH_EXECUT.

Parameters:

  cpPar | : Parameter to control the behavior of this function. Syntax like: "<activity c_id> <table name>" With possible arguments:
  activity c_id | Activity c_id
  table name | The table name of the respective entity (T_ACT_DAT/T_PRC_DAT)
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example: Refer to LogiView procedure EP_WFL_BATCH/BATCH_EXECUT

int xwfl_res_typ_chk | ( | ) |

Userexit to check if the chosen resource type makes sense for the type of given activity.

For example only Split-Xor or Split-Or activities can use distribution lists as resources. Used in LogiView procedure EP_WFL/CheckResourceChoise.

Parameters:

  cpPar | : Parameter to control the behavior of this function. Syntax like: "<activity c_id> <recourse type> <recourse id>" With possible arguments:
  activity c_id | Activity C_ID
  recourse type | Possible types are: USER, GROUP, ROLE, DISTRIBUTOR; Forbidden: AUTOMATIC
  recourse id | Corresponding to the type: User id, group id, role id, distributor id
  cpIgn | : second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error
  2 | Resource type not allowed

      // working example
      field_read(WDG, "T_ACT_DAT.C_ID", ROW, EP_WFL_ACT_POS)
      field_read(WDG, "T_ACT_DAT.RES_TYPE", ROW, EP_WFL_RES_NAME)
      field_read(WDG, "T_ACT_DAT.RES_REF", ROW, EP_WFL_OBJ_ID)
      RES = #xwfl_res_typ_chk(EP_WFL_ACT_POS, EP_WFL_RES_NAME, EP_WFL_OBJ_ID)

Example: Refer to LogiView procedure EP_WFL/CheckResourceChoise

int xwfl_upd_ibx | ( | ) |

Userexit to update all currently open work item lists (inboxes).

Used in LogiView procedure EP_WFL/MEN_XOpenWorkItemForm.

Parameters:

  cpPar | : First userexit parameter (not used)
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example: Refer to LogiView procedure EP_WFL/MEN_XOpenWorkItemForm

int xwfl_workitem_abort | ( | ) |

Userexit to cancel a work item.

This userexit is called if an ad hoc process is cancelled.

Parameters:

  cpPar | : First userexit parameter (not used)
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

int xwfl_workitem_accept | ( | ) |

Userexit to accept a work item.

It is not possible to accept an already accepted work item again. To forward a work item it has to be accepted first.
Used in LogiView procedure EP_WFL/AcceptWrkItm_sel.

Parameters:

  cpPar | : Workitem c_id
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example: Refer to LogiView procedure EP_WFL/AcceptWrkItm_sel

int xwfl_workitem_forward | ( | ) |

Userexit to forward a work item to another user and send an email to this user (receiver).

Used in LogiView procedure EP_WFL/ForwardWrkItmMaskInit_sel.

Parameters:

  cpPar | : Parameter to control the behavior of this function. Syntax like: "<work item c_id> <receiver> <message text>" With possible arguments:
  work item c_id | Work item C_ID
  receiver | Name of the receiver
  message text | Message text
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example: see LogiView procedure EP_WFL/ForwardWrkItmMaskInit_sel

int xwfl_workitem_reject | ( | ) |

Userexit to reject a work item to another user who forwarded it before or to the system that created it.

An email is sent to this user (receiver) or to the process responsible user in case of a newly created workitem. Used in LogiView procedure EP_WFL/RejectWrkItmMaskInit_sel.

between "normal reject" and "initial reject":

normal reject

If a user rejects a forwarded work item the "normal reject" case happens FORWARDEDREJECTED. This means that the work item, which was forwarded by another user, can be rejected and a mail is sent to this user.

initial reject

If a work item is rejected, which was just created from the system and sent to the user, the "initial reject" is used INITIALREJECTED. Because there is no receiver for the rejected work item, the respective process is stopped and the current activity is REJECTED. The work item will be deleted and the "process responsible user" will be informed about it. The resource of the activity can be changed and the activity can be restarted.

Parameters:

  cpPar | : Parameter to control the behavior of this function. Syntax like: "<work item c_id> <message text>" With possible arguments:
  work item c_id | Work item C_ID
  message text | Message text
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example: Refer to LogiView procedure EP_WFL/RejectWrkItmMaskInit_sel

int xwfl_wrkitm_get_pv_bywid_i18n | ( | ) |

Userexit to get the value of a process variable associated with a work item, which is defined by the given id.

This userexit gets the work item id as parameter.

Parameters:

  cpPar | : Parameter to control the behavior of this function. Syntax like: "<process var>,<workitem id>" With possible arguments:
  process var | Process variable ( like C_*)
  workitem id | Id of work item
  result | Value of process var
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

Example

                RES=#xwfl_wrkitm_get_pv_bywid(EP_LIST,EP_STRING,EP_STR2)

See also:
  xwfl_wrkitm_get_pv

int xwfl_wrkitm_prea | ( | ) |

Userexit to execute a LogiView procedure that is defined in the onComplete field of an activity shortly before completion.

This userexit is called if a work item has to be completed.

Parameters:

  cpPar | : Activity c_id
  cpIgn | : Second userexit parameter (ignored)

Returns:

  0 | OK
  1 | Error

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