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(#BNDMAPS) TYPE(*CHAR) LENGTH(10)DEFINE FIELD(#BNDMAPL) TYPE(*CHAR) LENGTH(30)DEFINE FIELD(#BNDPROSTR) TYPE(*CHAR) LENGTH(10)DEFINE FIELD(#BNDPRONME) TYPE(*CHAR) LENGTH(10)DEFINE FIELD(#BNDPRODSC) TYPE(*CHAR) LENGTH(40)DEFINE FIELD(#BNDPROFIL) TYPE(*CHAR) LENGTH(10)**********DEF_LIST NAME(#MAPLST) FIELDS((#BNDMAPS) (#BNDMAPL)) TYPE(*WORKING)**********DEF_LIST NAME(#PROLST) FIELDS((#BNDPRONME) (#BNDPRODSC) (#BNDPROFIL)) TYPE(*WORKING) ENTRYS(2000)**********DEF_LIST NAME(#PROTABLE) FIELDS((#BNDPRONME) (#BNDPRODSC)) TYPE(*WORKING) ENTRYS(2000)******************** フィールド/列マップの作成**********EXECUTE SUBROUTINE(BLDMAP)
******************** サービスを開く**********
USE BUILTIN(JSM_OPEN) TO_GET(#JSMSTS #JSMMSG)EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)******************** サービスのロード**********
CHANGE FIELD(#JSMCMD) TO('SERVICE_LOAD SERVICE(RFIDataSourceService) SERVICE_LIST(BNDMAPS,BNDMAPL) TRACE(*NO)')USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #MAPLST)EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
******************** データソースの作成**********
USE BUILTIN(JSM_COMMAND) WITH_ARGS('CREATE DATASOURCE(REPOSITORY)') TO_GET(#JSMSTS #JSMMSG)EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
******************** プロセスの追加**********
USE BUILTIN(GET_PROCESS_LIST) WITH_ARGS(#BNDPROSTR) TO_GET(#PROLST)**********SELECTLIST NAMED(#PROLST)**********ADD_ENTRY TO_LIST(#PROTABLE)**********ENDSELECT**********CHANGE FIELD(#JSMCMD) TO('PUT OBJECT(*TABLE) NAME(PROCESS_LIST) SERVICE_LIST(BNDPRONME,BNDPRODSC)')USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #PROTABLE)EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)******************** データソース送信**********
USE BUILTIN(JSM_COMMAND) WITH_ARGS('SEND OBJECT(*DATASOURCE)') TO_GET(#JSMSTS #JSMMSG)EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)******************** サービスを閉じ、HTTP 応答を送信**********
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)EXECUTE SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
******************** サブルーチン**********
SUBROUTINE NAME(CHECK) PARMS((#JSMSTS *RECEIVED) (#JSMMSG *RECEIVED))**********IF COND('#JSMSTS *NE OK')
******************** サービスのクローズ**********
USE BUILTIN(JSM_CLOSE) TO_GET(#JSMSTS #JSMMSG)**********ENDIF**********ENDROUTINE**********SUBROUTINE NAME(BLDMAP)**********CHANGE FIELD(#BNDMAPS) TO(BNDPRONME)CHANGE FIELD(#BNDMAPL) TO(PROCESS_NAME)ADD_ENTRY TO_LIST(#MAPLST)**********CHANGE FIELD(#BNDMAPS) TO(BNDPRODSC)CHANGE FIELD(#BNDMAPL) TO(PROCESS_DESC)ADD_ENTRY TO_LIST(#MAPLST)**********ENDROUTINE