CBLDCMCF('SEND ') - 一方送信メッセージの送信(COBOL言語)
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3
DATA DIVISIONの指定
01 一意名1.
02 データ名A PIC X(8) VALUE 'SEND '.
02 データ名B PIC X(5).
02 FILLER PIC X(3).
02 データ名C PIC X(4) VALUE SPACE.
02 データ名D PIC X(4) VALUE SPACE.
02 データ名E PIC 9(8).
02 データ名F PIC 9(8).
02 データ名G PIC 9(9) COMP VALUE ZERO.
02 データ名H PIC X(4).
02 データ名I PIC X(4) VALUE SPACE.
02 データ名J PIC X(4).
02 データ名K PIC X(4).
02 データ名L PIC X(8) VALUE SPACE.
02 データ名M1 PIC X(4) VALUE SPACE.
02 データ名M2 PIC X(8) VALUE SPACE.
02 データ名M3 PIC X(4) VALUE SPACE.
02 データ名M4 PIC 9(9) COMP VALUE ZERO.
02 データ名M5 PIC 9(9) COMP VALUE ZERO.
02 データ名M6 PIC X(1) VALUE SPACE.
02 データ名M7 PIC X(1).
02 データ名N PIC X(14) VALUE LOW-VALUE.
01 一意名2.
02 データ名O PIC X(4) VALUE 'OUT '.
02 データ名P PIC X(8).
02 データ名Q PIC X(8) VALUE SPACE.
02 データ名R PIC X(8) VALUE SPACE.
02 データ名T PIC X(28) VALUE LOW-VALUE.
01 一意名3.
02 データ名U PIC 9(x) COMP.
02 データ名V PIC X(x).
02 データ名W.
03 データ名W1 PIC X(n).
03 データ名W2 REDEFINES データ名W1.
04 データ名W3.
05 データ名W4 PIC 9(1).
05 データ名W5 PIC 9(2).
05 データ名W6.
06 データ名W7 PIC 1(1).
06 データ名W8 PIC 1(7).
04 データ名W9 PIC X(n-4).
機能
相手システムへ一方送信メッセージを送信します。一方送信メッセージは,一つのセグメントで構成されます。
メッセージを送信する領域(一意名3で示す領域)の形式を次に示します。
制御ヘッダを使用する場合(MCF通信構成定義 mcftalccn -o ctlheader=useを指定)
制御ヘッダを使用しない場合(MCF通信構成定義 mcftalccn -o ctlheader=nouseを指定,または-oオプションを省略)
UAPで値を設定するデータ領域
●データ名A
一方送信メッセージの送信を示す要求コード「VALUE 'SEND△△△△'」を設定します。
●データ名C,データ名D
空白を設定します。
●データ名E,データ名F
MCFで使用する領域です。
●データ名G
0を設定します。
●データ名H
単一セグメントの送信を示す「VALUE 'EMI△'」を設定します。
●データ名I
空白を設定します。
●データ名J
一般として送信するか優先として送信するかを設定します。
●データ名K
出力通番を付けるかどうかを設定します。
●データ名L,データ名M1,データ名M2,データ名M3
空白を設定します。
●データ名M4,データ名M5
0を設定します。
●データ名M6
空白を設定します。
●データ名M7
使用するバッファ形式を設定します。
●データ名N
MCFで使用する領域です。
●データ名O
一方送信を示す「VALUE 'OUT△'」を設定します。
●データ名P
出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない名称を設定する場合は,後ろを空白で埋めてください。
●データ名Q,データ名R
空白を設定します。
●データ名T
MCFで使用する領域です。
●データ名U
●データ名V
●データ名W1【制御ヘッダを付けなかった場合】
送信するメッセージの内容を設定します。32000バイトまで送信できます。
●データ名W4【制御ヘッダを付けた場合】
制御ヘッダ識別子 (20)16を設定します。
●データ名W5【制御ヘッダを付けた場合】
0を設定します。
●データ名W7【制御ヘッダを付けた場合】
送信するデータパケットのQビットを設定します。
●データ名W8【制御ヘッダを付けた場合】
0を設定します。
●データ名W9【制御ヘッダを付けた場合】
送信するメッセージの内容を設定します。31996バイトまで送信できます。
なお,制御ヘッダを使用する場合,4バイト以下のメッセージは送信しないで,出力キューから削除されます。
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。 |
71002 | メッセージキューへの出力処理中に障害が発生しました。 |
メッセージキューが閉塞されています。 | |
メッセージキューが割り当てられていません。 | |
データ名Uに32000バイトを超える値を設定しています。 | |
MCFが終了処理中のため,メッセージの送信を受け付けられません。 | |
71003 | メッセージキューが満杯です。 |
71004 | メッセージを格納するバッファをメモリ上に確保できませんでした。 |
71108 | メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。 |
プロセスのローカルメモリが不足しています。 | |
72000 | <MHPの実行でリターンした場合> 先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('SEND△△△△')を呼び出しています。 |
<SPPの実行でリターンした場合> トランザクションでないSPPの処理から,CBLDCMCF('SEND△△△△')を呼び出しています。 | |
72001 | データ名Pに設定した論理端末名称が間違っています。 |
CBLDCMCF('SEND△△△△')を呼び出せない論理端末を設定しています。 | |
72016 | データ名Jに設定した値が間違っています。 |
データ名M1に設定した値が間違っています。 | |
データ名M7に設定した値が間違っています。 | |
データ名Nまたはデータ名Tに設定した値が間違っています。 | |
72017 | データ名Kに設定した値が間違っています。 |
72019 | データ名M6に設定した値が間違っています。 |
72020 | データ名Iに設定した値が間違っています。 |
72024 | データ名Oに設定した値が間違っています。 |
72026 | データ名Hに設定した値が間違っています。 |
72028 | データ名Aに設定した値が間違っています。 |
72041 | バッファ形式1の場合はデータ名Uに0,またはマイナスの値を設定しています。バッファ形式2の場合はデータ名Uに4以下,またはマイナスの値を設定しています。 |
上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |