The following keywords are reserved:
When using a working list argument with the JSM_COMMAND BIF, a SERVICE_LIST keyword must be included with the command.
The SERVICE_LIST keyword is used to describe the list argument being passed to the JSM command as shown in the following example:
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(256)
DEF_LIST NAME(#WRKLIST) FIELDS(#DEPTMENT,#DEPTDESC) TYPE(*WORKING)
USE BUILTIN(JSM_COMMAND) WITH_ARGS('RECEIVE HANDLER(IXML) XSL(ORDER) SERVICE_LIST(DEPTMENT,DEPTDESC)') TO_GET(#JSMSTS #JSMMSG #WRKLIST)
Note: The SERVICE_LIST keyword fields do not require the # prefix.
If the list of fields is very long, it may exceed the size limit of a JSM command string. In this case, externalize the list of fields to an entry in the list.properties file located in the instance system sub-directory as shown in the following example:
USE BUILTIN(JSM_COMMAND) WITH_ARGS('RECEIVE HANDLER(IXML) XSL(ORDER) SERVICE_LIST(JS016.RECEIVE01)') TO_GET(#JSMSTS #JSMMSG #WRKLIST)
If the SERVICE_LIST keyword only contains one entry then the command parser will check if this single value is a program field. If this value is not a program field, then it is used as a lookup value on the list.properties file to locate a field list entry. It is recommended that you use a naming convention of function name plus dot plus command + sequence (JS016.RECEIVE01). This allows for an easy identification of what programs are using a particular entry when the list.properties file is viewed.
Note: An implied SERVICE_EXCHANGE(*FIELD) is done when the SERVICE_LIST keyword is used.
The SERVICE_EXCHANGE keyword is used to trigger the exchange between the LANSA function field values and the currently loaded JSM service. The only values supported by this keyword is *FIELD or *FIELDS.
The LANSA BIF performs a scan on the command string and searches for the following pattern:
The keyword and its value must be identical to the examples above and without imbedded spaces.
Note: If a working list and the associated SERVICE_LIST keyword is used, then all fields are passed and a SERVICE_EXCHANGE(*FIELD) or SERVICE_EXCHANGE(*FIELDS) is not required on the same command.