This HTTP example requires JSMDIRECT configuration and a HTTP server to host the sample HTML file.
FUNCTION OPTIONS(*DIRECT)
**********
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(256)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(256)
**********
DEFINE FIELD(#NAME) TYPE(*CHAR) LENGTH(50)
DEFINE FIELD(#VALUE) TYPE(*CHAR) LENGTH(100)
DEF_LIST NAME(#LST) FIELDS((#NAME) (#VALUE)) TYPE(*WORKING)
**********
********** JSM_OPEN
**********
USE BUILTIN(JSM_OPEN) WITH_ARGS('LOCALHOST:7560') TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** SERVICE_LOAD
**********
CHANGE FIELD(#JSMCMD) TO('SERVICE_LOAD SERVICE(HTTPService) TRACE(*YES) BIND(*LIST) SERVICE_LIST(NAME,VALUE)')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #LST)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** RECEIVE HANDLER
**********
CHANGE FIELD(#JSMCMD) TO('''RECEIVE HANDLER(InboundMultiPart) FIELD(SONUMBER)''')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** RECEIVE HANDLER
**********
CHANGE FIELD(#JSMCMD) TO('''RECEIVE HANDLER(InboundMultiPart) FILE(FILE1) TO(demo.txt)''')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** SEND HANDLER
**********
CHANGE FIELD(#JSMCMD) TO('''SEND HANDLER(InboundFile) FILE(receipt.pdf) CONTENT(*PDF) UACACHE(5)''')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** JSM_CLOSE
**********
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)
EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** SUB ROUTINES
**********
SUBROUTINE NAME(CHECK) PARMS((#JSMSTS *RECEIVED) (#JSMMSG *RECEIVED))
**********
IF COND('#JSMSTS *NE OK')
**********
********** Close service and send the HTTP response
**********
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)
**********
ENDIF
**********
ENDROUTINE
HTML Browser Client
The following HTML code is the client side to the above HTTP service example.
<!DOCTYPE html>
<html>
<form method="POST" action="http://lansa01:1099/cgi-bin/jsmdirect?service=demohttp&mode=order" enctype="multipart/form-data">
<table>
<tr><td>Order#</td><td><input name="SONUMBER" type="text" value="12345"/></td></tr>
<tr><td>Customer</td><td><input name="CUSTNAME" type="text" value="ABC Industries"/></td></tr>
<tr><td>Street</td><td><input name="STREET" type="text" value="123 Main St"/></td></tr>
<tr><td>City</td><td><input name="CITY" type="text" value="Chicago"/></td></tr>
<tr><td>PostCode</td><td><input name="POSTCODE" type="text" value="60609"/></td></tr>
</table>
<br/>
<input name="FILE1" type="file"/>
<br/>
<br/>
<input type="SUBMIT" value="Send order"/>
</form>
</html>