4.7.2 JSMLSAEXT

LANSA Integrator

4.7.2 JSMLSAEXT


JSMDIRECTプログラムは、LANSAファンクションを内部でのみ実行できます。LANSAプログラムを呼び出すときに3GLプログラムを実行する必要があるか、柔軟性がさらに必要な場合は、JSMLSAEXTプログラムを作成する必要があります。

この終了プログラムのソース・コードは、JSMライブラリのQCLSRCに保管されます。

 

/* JSM LANSA/3GL終了プログラム*/

 

PGM PARM(&SERVICE &SERVERHOST &HOST &PORT &REMOTEUSER &REMOTEADDR +

         &PROCESS &FUNCTION &PARTITION &LANGUAGE &PROGRAM &RDMLX &CONTINUE &MESSAGE)

 

DCL VAR(&SERVICE)    TYPE(*CHAR) LEN(30)

DCL VAR(&SERVERHOST) TYPE(*CHAR) LEN(80)

DCL VAR(&HOST)       TYPE(*CHAR) LEN(80)

DCL VAR(&PORT)       TYPE(*CHAR) LEN(5)

DCL VAR(&REMOTEUSER) TYPE(*CHAR) LEN(30)

DCL VAR(&REMOTEADDR) TYPE(*CHAR) LEN(15)

 

DCL VAR(&REQUEST)    TYPE(*CHAR) LEN(10) VALUE(RUN)

DCL VAR(&PROCESS)    TYPE(*CHAR) LEN(10)

DCL VAR(&FUNCTION)   TYPE(*CHAR) LEN(10)

DCL VAR(&PARTITION)  TYPE(*CHAR) LEN(3)

DCL VAR(&LANGUAGE)   TYPE(*CHAR) LEN(4)

DCL VAR(&PROGRAM)    TYPE(*CHAR) LEN(32)

DCL VAR(&RDMLX)      TYPE(*CHAR) LEN(1)

DCL VAR(&CONTINUE)   TYPE(*CHAR) LEN(1)

DCL VAR(&MESSAGE)    TYPE(*CHAR) LEN(256)

 

DCL VAR(&PARM01)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM02)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM03)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM04)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM05)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM06)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM07)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM08)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM09)     TYPE(*CHAR) LEN(256)

DCL VAR(&PARM10)     TYPE(*CHAR) LEN(256)

 

DCL VAR(&TASKID)     TYPE(*CHAR) LEN(8)

DCL VAR(&PCTYPE)     TYPE(*CHAR) LEN(1) VALUE(N)

DCL VAR(&DEVELOPER)  TYPE(*CHAR) LEN(1) VALUE(N)

DCL VAR(&ALLOWMSGS)  TYPE(*CHAR) LEN(1) VALUE(N)

DCL VAR(&PCNAME)     TYPE(*CHAR) LEN(10)

DCL VAR(&DATESRC)    TYPE(*CHAR) LEN(1) VALUE(S)

DCL VAR(&BDEBUG)     TYPE(*CHAR) LEN(1) VALUE(N)

DCL VAR(&BDEBUGDEV)  TYPE(*CHAR) LEN(10)

DCL VAR(&BDEBUGMSG)  TYPE(*CHAR) LEN(10)

DCL VAR(&XRUNADPRM)  TYPE(*CHAR) LEN(512)

 

MONMSG MSGID(CPF0000)

 

/* CONTINUEの省略値は'Y' */

/* CHGVAR VAR(&CONTINUE)の値('N') */

/* CHGVAR VAR(&MESSAGE)の値('I do not know you') */

/* 終了*/

 

IF COND(&PROGRAM *NE ' ') THEN(DO)

   /* RPGを呼び出す*/

   CALL &PROGRAM

 

   GOTO END

 

ENDDO

 

IF COND(&RDMLX *EQ 'Y') THEN(DO)

   /* RDMLXを実行する要求を変更する*/

   CHGVAR VAR(&REQUEST) VALUE(X_RUN)

ENDDO

 

IF COND(&PROCESS *NE ' ' *AND &FUNCTION *NE ' ') THEN(DO)

 

   IF COND(&REQUEST *EQ 'RUN') THEN(DO)

      /* LANSA V10またはV11を呼び出す*/

      CALL PGM(LANSA) PARM(&REQUEST &PROCESS &FUNCTION +

                           &PARM01 &PARM02 &PARM03 &PARM04 &PARM05 +

                           &PARM06 &PARM07 &PARM08 &PARM09 &PARM10 +

                           &PARTITION &LANGUAGE &TASKID &PCTYPE +

                           &DEVELOPER &ALLOWMSGS &PCNAME &DATESRC +

                           &BDEBUG &BDEBUGDEV &BDEBUGMSG)

      GOTO END

 

   ENDDO

 

   IF COND(&REQUEST *EQ 'X_RUN') THEN(DO)

      /* LANSA V11を呼び出す - RDMLX */

      CALL PGM(LANSA) PARM(&REQUEST &PROCESS &FUNCTION +

                           &PARM01 &PARM02 &PARM03 &PARM04 &PARM05 +

                           &PARM06 &PARM07 &PARM08 &PARM09 &PARM10 +

                           &PARTITION &LANGUAGE &TASKID &PCTYPE +

                           &DEVELOPER &ALLOWMSGS &PCNAME &DATESRC +

                           &BDEBUG &BDEBUGDEV &BDEBUGMSG &XRUNADPRM)

      GOTO END

 

   ENDDO

 

   GOTO END

 

ENDDO

 

SNDPGMMSG MSG('No program or function specified for execution')

 

END: ENDPGM