CLプログラムからの要求発行

この節では要求発行を行うサンプルCLを掲載しています。

<サンプルCLについて>

  • エラーコードをCL変数&EXTで受け取ります。要求発行を行う前に、&EXTを7バイトのスペース+「0x00」で初期化しています。

    = 備考 =

    エラーコードをCL変数に受け取る場合、サンプルCLのように使用前に必ず変数を初期化してください。

  • PARMに'OUTPUT='の指定があるものは、エラーメッセージをライブラリ「MYLIB」のファイル「MSG」、メンバ「MSG」に出力します。エラーコードについては「エラーコード・メッセージ」を参照してください。

(1) ファイルID「TEST01」の配信要求を発行する

START:PGM
DCL   &FILEID   TYPE(*CHAR)    LEN(11)
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)         VALUE(X'00')

CHGVAR          VAR(&FILEID)   VALUE('F=TEST01' *CAT &NULL)
CHGVAR          VAR(&EXT)      VALUE('       ' *CAT &NULL)

CALL  PGM(HULFT/UTLSEND) +
PARM(&FILEID 'OUTPUT=MYLIB/MSG(MSG)' 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM

(2) ファイルID「TEST01」(相手ホスト:RS6000)の再配信要求を発行する

START:PGM
DCL   &FILEID   TYPE(*CHAR)    LEN(11)
DCL   &HOST     TYPE(*CHAR)    LEN(71)
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)         VALUE(X'00')

CHGVAR          VAR(&FILEID)   VALUE('F=TEST01' *CAT &NULL)
CHGVAR          VAR(&HOST)     VALUE('R=RS6000' *CAT &NULL)
CHGVAR          VAR(&EXT)      VALUE('       ' *CAT &NULL)

CALL  PGM(HULFT/UTLSEND) +
PARM(&FILEID 'OUTPUT=MYLIB/MSG(MSG)' &HOST 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM

(3) ファイルID「TEST01」(相手ホスト:RS6000)の送信要求を発行する

START:PGM
DCL   &FILEID   TYPE(*CHAR)    LEN(11)
DCL   &HOST     TYPE(*CHAR)    LEN(71)
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)         VALUE(X'00')

CHGVAR          VAR(&FILEID)   VALUE('F=TEST01' *CAT &NULL)
CHGVAR          VAR(&HOST)     VALUE('H=RS6000' *CAT &NULL)
CHGVAR          VAR(&EXT)      VALUE('       ' *CAT &NULL)

CALL  PGM(HULFT/UTLRECV) +
PARM(&FILEID 'OUTPUT=MYLIB/MSG(MSG)' &HOST 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM

(4) ファイルID「TEST01」(相手ホスト:RS6000)の再送要求を発行する

START:PGM
DCL   &FILEID   TYPE(*CHAR)    LEN(11)
DCL   &HOST     TYPE(*CHAR)    LEN(71)
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)         VALUE(X'00')

CHGVAR          VAR(&FILEID)   VALUE('F=TEST01' *CAT &NULL)
CHGVAR          VAR(&HOST)     VALUE('H=RS6000' *CAT &NULL)
CHGVAR          VAR(&EXT)      VALUE('       ' *CAT &NULL)

CALL  PGM(HULFT/UTLRECV) +
PARM(&FILEID 'OUTPUT=MYLIB/MSG(MSG)' &HOST 'R' 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM

(5) ホストRS6000へジョブID「JOB0001」のジョブ実行結果通知を行う

START:PGM
DCL   &HOST     TYPE(*CHAR)    LEN(71)
DCL   &JOB      TYPE(*CHAR)    LEN(11)
DCL   &MSG      TYPE(*CHAR)    LEN(53)
DCL   &RC       TYPE(*CHAR)    LEN(7)
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)         VALUE(X'00')

CHGVAR          VAR(&JOB)      VALUE('J=JOB0001' *CAT &NULL)
CHGVAR          VAR(&HOST)     VALUE('H=RS6000' *CAT &NULL)
CHGVAR          VAR(&MSG)      VALUE('M=PERSONNEL INFORMATION' *CAT &NULL)
CHGVAR          VAR(&RC)       VALUE('R=0000' *CAT &NULL)
CHGVAR          VAR(&EXT)      VALUE('       ' *CAT &NULL)

CALL  PGM(HULFT/HULSNDRC) +
PARM(&HOST &JOB &MSG &RC 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM

(6) ジョブID「JOB01」(相手ホスト:RS6000)のリモートジョブ実行を行う

START:PGM
DCL   &HOST     TYPE(*CHAR)    LEN(71)
DCL   &JOBID    TYPE(*CHAR)    LEN(11)
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)        VALUE(X'00')

CHGVAR          VAR(&JOBID)    VALUE('J=JOB01' *CAT &NULL)
CHGVAR          VAR(&HOST)     VALUE('H=RS6000' *CAT &NULL)
CHGVAR          VAR(&EXT)      VALUE('       ' *CAT &NULL)

CALL  PGM(HULFT/UTLRJOB) +
PARM(&HOST &JOBID 'SYNC' 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM

(7) 配信受付ジョブ、集信受付ジョブ、要求受付ジョブを終了させる

START:PGM
DCL   &EXT      TYPE(*CHAR)    LEN(8)
DCL   &NULL     TYPE(*CHAR)    LEN(1)        VALUE(X'00')

CHGVAR          VAR(&EXT)      VALUE('      ' *CAT &NULL)

CALL  PGM(HULFT/UTLKILLSND) +
PARM('OUTPUT=MYLLIB/MSG(MSG)' 'EXIT' &EXT)

CALL  PGM(HULFT/UTLKILLRCV) +
PARM('OUTPUT=MYLLIB/MSG(MSG)' 'EXIT' &EXT)

CALL  PGM(HULFT/UTLKILLOBS) +
PARM('OUTPUT=MYLLIB/MSG(MSG)' 'EXIT' &EXT)

SNDPGMMSG       MSG('EXIT=' *BCAT &EXT)      MSGTYPE(*COMP)
ENDPGM