HTTP Service Example (XML Inbound)
Loads the HTTPService service. Receives xml order using Inbound xml content handler and stylesheet (created using the XML Transformation Wizard).
********** Beginning of RDML commands **********
FUNCTION OPTIONS(*DIRECT)
**********
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(255)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(255)
**********
DEFINE FIELD(#ORDER) TYPE(*CHAR) LENGTH(10)
DEFINE FIELD(#NAME) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#STREET) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#CITY) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#STATE) TYPE(*CHAR) LENGTH(5)
DEFINE FIELD(#ZIP) TYPE(*CHAR) LENGTH(5)
**********
DEFINE FIELD(#LINENUM) TYPE(*DEC) LENGTH(3) DECIMALS(0)
DEFINE FIELD(#PARTNUM) TYPE(*DEC) LENGTH(3) DECIMALS(0)
DEFINE FIELD(#PARTDSC) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#PARTAMT) TYPE(*DEC) LENGTH(10) DECIMALS(2)
DEFINE FIELD(#PARTQTY) TYPE(*DEC) LENGTH(3) DECIMALS(0)
DEFINE FIELD(#FILL1) TYPE(*CHAR) LENGTH(3)
**********
DEF_LIST NAME(#WRKLST) FIELDS((#FILL1) (#LINENUM) (#PARTNUM)
(#PARTDSC) (#PARTAMT) (#PARTQTY)) TYPE(*WORKING)
**********
********** 'Open service'
**********
USE BUILTIN(JSM_OPEN) TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** 'Load service'
**********
USE BUILTIN(JSM_COMMAND) WITH_ARGS('SERVICE_LOAD SERVICE(HT
TPSERVICE)') TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** Receive XML order, SV order, POST order
**********
********** HANDLER(IXML) XSL(RECEIVEORDER) or
********** HANDLER(IXML) XSL(SENDORDER) or
********** HANDLER(ISVL) SVHEAD(ORDER) or
********** HANDLER(INVL) BIND(*FIELD)
********** HANDLER(IMP) SVHEAD(ORDER)
**********
CHANGE FIELD(#JSMCMD) TO('RECEIVE HANDLER(ISVL) SVHEAD(ORDER)
SERVICE_LIST(FILL1,LINENUM,PARTNUM,PARTDSC,PARTAMT,
PARTQTY)')
**********
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS
#JSMMSG #WRKLST)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** Process and validate
**********
SELECTLIST NAMED(#WRKLST)
**********
ENDSELECT
**********
********** Send response
**********
CHANGE FIELD(#JSMCMD) TO('SEND HANDLER(ISVL) SERVICE_LIST(FILL
1,LINENUM,PARTNUM,PARTDSC,PARTAMT,PARTQTY)')
**********
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS
#JSMMSG #WRKLST)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** 'Close service'
**********
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** SUB ROUTINES
**********
SUBROUTINE NAME(CHECK) PARMS((#JSMSTS *RECEIVED) (#JSMMSG *RECEIVE
D))
**********
IF COND('#JSMSTS *NE OK')
**********
********** Close service and send the HTTP response
**********
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)
**********
ENDIF
**********
ENDROUTINE
********** End of RDML commands **********