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(#BNDRTNCDE) TYPE(*CHAR) LENGTH(2)
DEFINE     FIELD(#BNDPRONME) TYPE(*CHAR) LENGTH(10)
DEFINE     FIELD(#BNDFUNNME) TYPE(*CHAR) LENGTH(7)
DEFINE     FIELD(#BNDFUNDSC) TYPE(*CHAR) LENGTH(40)
DEFINE     FIELD(#BNDFUNFIL) TYPE(*CHAR) LENGTH(13)
**********
DEF_LIST   NAME(#MAPLST) FIELDS((#BNDMAPS) (#BNDMAPL)) TYPE(*WORKING)
**********
DEF_LIST   NAME(#FUNLST) FIELDS((#BNDFUNNME) (#BNDFUNDSC) (#BNDFUNFIL)) TYPE(*WORKING) ENTRYS(100)
**********
DEF_LIST   NAME(#FUNTABLE) FIELDS((#BNDPRONME) (#BNDFUNNME) (#BNDFUNDSC)) TYPE(*WORKING) ENTRYS(100)
**********
********** Build field/column map
**********
EXECUTE    SUBROUTINE(BLDMAP)
**********
********** Open service
**********
USE        BUILTIN(JSM_OPEN) TO_GET(#JSMSTS #JSMMSG)
EXECUTE    SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** Load service - Receive PRONAME
**********
CHANGE     FIELD(#JSMCMD) TO('SERVICE_LOAD SERVICE(RFIDataSourceService) SERVICE_LIST(BNDMAPS,BNDMAPL) BIND(*FIELD) TRACE(*NO)')
USE        BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #MAPLST)
EXECUTE    SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** Create data source
**********
USE        BUILTIN(JSM_COMMAND) WITH_ARGS('CREATE DATASOURCE(REPOSITORY)') TO_GET(#JSMSTS #JSMMSG)
EXECUTE    SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** Get functions
**********
USE        BUILTIN(GET_FUNCTION_LIST) WITH_ARGS(#BNDPRONME) TO_GET(#FUNLST #BNDRTNCDE)
**********
IF         COND('#BNDRTNCDE *EQ OK')
**********
SELECTLIST NAMED(#FUNLST)
**********
ADD_ENTRY  TO_LIST(#FUNTABLE)
**********
ENDSELECT
**********
CHANGE     FIELD(#JSMCMD) TO('PUT OBJECT(*TABLE) NAME(FUNCTION_LIST) SERVICE_LIST(BNDPRONME,BNDFUNNME,BNDFUNDSC)')
USE        BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #FUNTABLE)
EXECUTE    SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
ENDIF
**********
********** Send data source
**********
USE        BUILTIN(JSM_COMMAND) WITH_ARGS('SEND OBJECT(*DATASOURCE)') TO_GET(#JSMSTS #JSMMSG)
EXECUTE    SUBROUTINE(CHECK) WITH_PARMS(#JSMSTS #JSMMSG)
**********
********** Close service and send the HTTP response
**********
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
**********
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(BNDFUNNME)
CHANGE     FIELD(#BNDMAPL) TO(FUNCTION_NAME)
ADD_ENTRY  TO_LIST(#MAPLST)
**********
CHANGE     FIELD(#BNDMAPS) TO(BNDFUNDSC)
CHANGE     FIELD(#BNDMAPL) TO(FUNCTION_DESC)
ADD_ENTRY  TO_LIST(#MAPLST)
**********
ENDROUTINE
  • No labels