HTTPService Inbound Example

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>