Launch a batch execution request
The following subprogram launches the execution of a V6 batch request from V7 native code.
Main principles of a V6 batch task
A V6 batch task is associated with an X3 function that executes an action using the Standard processing template. A criteria window with associated masks is then defined. You need to provide all the required parameters for the batch task execution by filling in all the fields for these masks.
For these reasons, calling the ASYRMNGTREQ.CRERQT
subprogram requires you to define the mask fields by filling in the corresponding values.
Subprogram definition
The API is called with the corresponding funprog:
Func ASYRMNGTREQ.CRERQT(ACTX,FOLD,USER,TASK,DAT,TIM,ARYPAR,ARYVAL,NBPAR,REQUEST,MESSAGE)
The parameters are the following:
* ACTX
is the current context.
* FOLD
is the folder name.
* USER
is the user code for execution.
* TASK
is the task name.
* DAT
is the date of the requested execution, and TIM is a string containing the requested time with the hh:mm
or hhmm
format.
* ARYPAR
is an array of string containing the name of the fields to be filled in the parameter mask. The value of the corresponding parameter is given in string format at the same index on the array ARYVAL
. The number of parameters is given by the integer value NBPAR
.
The string format for ARYVAL
values is the following:
* A string containing digits for local menus (for example "12").
* A string containing a numeric representation for integer or decimals (for example "-2" or "3.1415926").
* A string containing a date in YYYYMMDD format (for example "19590529").
* If you expect a string or a clob to exceed 250 characters, you can have several successive entries in ARYPAR
with the same variable name and split the string values into chunks of 250 characters or less. The different values will be concatenated to get the complete parameter value.
The value returned by this API is 0 if the request has been successfully launched. In this case, REQUEST
returns the request id. If an error occurs, the value returned will be different from 0, and the MESSAGE
value will return the corresponding error message.
This API can be launched from inside a running database transaction. No log file is created.
Example
# Create a request in folder X3 to revalidate the current folder today at 23:00
Funprog VALID_MY_FOLDER
Local Integer ASTATUS , NBPAR , REQUESTID
Local Char TBPAR(30)(1..10) , TBVAL(250)(1..10) , TIM(8) , MESSAGE(250) , TACHE(30) , DOSSIER(30) , USER(10)
Local Date DAT
DAT = date$
TIM = "23:00"
TASKNAME = "VALDOS"
FOLDER = "X3"
USER = GACTX.USER
NBPAR = 1 : TBPAR(NBPAR) = "DOSSIER(0)" : TBVAL(NBPAR) = GACTX.AFOLDER
NBPAR += 1 : TBPAR(NBPAR) = "NBDOS" : TBVAL(NBPAR) = "1"
NBPAR += 1 : TBPAR(NBPAR) = "TRADIF" : TBVAL(NBPAR) = "1"
NBPAR += 1 : TBPAR(NBPAR) = "VALDIF" : TBVAL(NBPAR) = "2"
ASTATUS = func CRERQT(GACTX,FOLDER,USER,TASKNAME,DAT,TIM,TBPAR,TBVAL,NBPAR,REQUESTID,MESSAGE)
If ASTATUS=0
MESSAGE="Request #"+num$(REQUESTID)+" launched successfully"
Else
MESSAGE="Error #"+num$(ASTATUS)+": "+MESSAGE
Endif
End MESSAGE