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

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

<サンプルCLについて>

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

  = 備考 =

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

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

  HULFT10 for IBMi エラーコード・メッセージ : 終了ステータス

## ファイル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

## ファイル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

## ファイル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

## ファイル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

## ホスト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

## ジョブ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

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

    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=MYLIB/MSG(MSG)' 'EXIT' &EXT)

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

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

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