Needing to receive LIST longer than 256 in a RDML function

Date:2 May 2007
Product/Release:LANSA Integrator
Abstract:Passing or receiving LANSA List which is longer than 256 in length via a JSM COMMAND
Submitted By:LANSA Technical Support

Description:

How do I receive a list which needs to be greater than 256 in length in JSM using a JSM Command. This is a generic question that may apply various commands and services where lists are passed/received.

Solution:

The best way to do this in RDML is to split the receive functionality. For obvious reasons RDMLX functions do not have this restrictions.

The following was performed using the XMLPARSERSERVICE. You don't need to have multiple XSL's to send and receive a large list. XSL's do not have the size restrictions that lists in RDML have. The same XSL can be used. See below:

* split 1 *********
CHANGE FIELD(#JSMCMD) TO('TRANSFORM XSL(INBOUNDORDER) SERVICE_LIST(LINENUM,PARTNUM,PARTDSC)')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #WRKLSTX)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)

* split 2 *********
CHANGE FIELD(#JSMCMD) TO('TRANSFORM XSL(INBOUNDORDER) SERVICE_LIST(PARTAMT,PARTQTY)')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #WRKLSTY)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)