CBLDCMCF('SEND ') - メッセージの送信(COBOL言語)
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3 〔一意名4〕
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.
02 データ名M6 PIC X(1).
02 データ名M7 PIC X(1) VALUE '2'.
02 データ名M8 PIC X(1).
02 データ名N PIC X(13) VALUE LOW-VALUE.
01 一意名2.
02 データ名O PIC X(4) VALUE 'OUT '.
02 データ名P PIC X(8).
02 データ名Q PIC X(8).
02 データ名R PIC X(8) VALUE SPACE.
02 データ名T1 PIC X(6) VALUE SPACE.
02 データ名T2 PIC X(22) VALUE LOW-VALUE.
01 一意名3.
02 データ名U PIC 9(4) COMP.
02 データ名V PIC X(2).
02 データ名W PIC X(n).
01 一意名4.
02 JST-PAGEC-LENG PIC S9(4) COMP.
02 JST-PAGEC-FACE PIC X.
02 JST-PAGEC-STACCTL PIC X.
02 JST-PAGEC-HOPPER PIC X(2).
02 JST-PAGEC-RSV1 PIC X(2).
02 JST-PAGEC-STACKER PIC X(2).
02 JST-PAGEC-RSV2 PIC X(2).
02 JST-PAGEC-RSV3 PIC X(2).
02 JST-PAGEC-RSV4 PIC X(2).
02 JST-PAGEC-RSV5 PIC X(8).
02 JST-PAGEC-RSV6 PIC X(8).
機能
MCFで管理する論理端末に送信するメッセージのうちで,一つのセグメントを送信要求します。必要なメッセージセグメントの分だけ送信要求を呼び出すことで,一つのメッセージを送信できます。
送信できる一つのセグメントの最大長は,32000バイトまでです。
送信するセグメントの領域(一意名3で示す領域)の形式を次に示します。
TP1/NET/XMAP3の論理端末に送信する場合は,XMAP3で作成した出力論理マップをCOPY文で取り込み,一意名3として指定します。出力論理マップの詳細については,マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編」,マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編」,マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」,またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については,「付録G.1 コーディング例」を参照してください。
UAPで値を設定するデータ領域
●データ名A
メッセージの送信を示す要求コード「VALUE 'SEND△△△△'」を設定します。
●データ名C,データ名D
空白を設定します。
●データ名E,データ名F
MCFで使用する領域です。
●データ名G
0を設定します。
●データ名H
送信するセグメントが論理メッセージの最終セグメントかどうかを設定します。
●データ名I
空白を設定します。
●データ名J
一般として送信するか優先として送信するかを設定します。
●データ名K
出力通番を付けるかどうかを設定します。
●データ名L,データ名M1,データ名M2,データ名M3
空白を設定します。
●データ名M4
0を設定します。
●データ名M5
MCFで使用する領域です。
●データ名M6
マッピングモードを設定します。
●データ名M7
使用する送受信バッファの形式を「VALUE '2'」と設定します。
●データ名M8
PAGECインタフェース領域を指定するかどうかを設定します。次のどれかを設定してください。なお,先頭セグメントの送信時に設定した値が有効です。中間セグメントまたは最終セグメントの送信時に値を設定しても無効です。
●データ名N
MCFで使用する領域です。
●データ名O
分岐送信を示す「VALUE 'OUT△'」を設定します。
●データ名P
メッセージ出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない名称を設定する場合は,後ろを空白で埋めてください。
●データ名Q
メッセージ送信時,マップ名を6文字以内で設定します。マップ名の後ろを空白で埋めて,8文字になるように設定してください。
●データ名R
空白を設定します。
●データ名T1
PAGEC名を6文字以内で設定します。6文字に満たない名称を設定する場合には,後ろを空白で埋めてください。PAGEC名を設定しない場合には,すべて空白を設定してください。
データ名M8でPAGECインタフェース領域を指定して,データ名T1でPAGEC名を空白にした場合,論理端末定義(mcftalcle)の-pオプションで指定したデフォルトPAGEC名が有効になります。PAGECインタフェース領域が指定されているのに,PAGEC名が空白でデフォルトPAGEC名も定義されていない場合は,プリンタの設定に従います。
●データ名T2
MCFで使用する領域です。
●データ名U
送信する出力論理マップの長さ(論理マップ固定部の長さ+論理マップ可変部・定数部の長さ)を設定します。メッセージの送信の終了を連絡する場合で,セグメントの内容がないときは,4を設定してください。
●データ名V
データ名Vとビットの設定値の関係を次に示します。
送信完了通知イベントおよび送信障害通知イベントの要否は,データ名Vの領域の24ビット目で設定します。
●データ名W
送信するセグメントの内容(論理マップ可変部・定数部に出力する内容)を設定します。一つのセグメントで32000バイトまで送信できます。ただし,MCFが依存する通信システムによっては,送信するセグメントの長さが制限されます。
●一意名4
一意名4の形式は,XMAP3/PRINTER UTILITYが提供するPAGECインタフェース領域と同じです。XMAP3/PRINTER UTILITYが提供する登録集原文をCOPY文でUAPに取り込み,一意名4として指定します。取り込むCOBOLソースファイルを次に示します。
PAGECインタフェース領域を確保したら,JST-PAGEC-LENGにPAGECインタフェース領域の長さ32を設定します。また,変更したい情報に対応するインタフェース定数を,PAGECインタフェース領域に設定してください。PAGECインタフェース領域とPAGECインタフェース定数の詳細については,マニュアル「画面・帳票サポートシステム/プリンタユティリティ XMAP3/PRINTER UTILITY 解説・手引書」を参照してください。
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。 |
71002 | メッセージキューへの出力処理中に障害が発生しました。 |
メッセージキューが閉塞されています。 | |
メッセージキューが割り当てられていません。 | |
データ名Uに32000バイトを超える値を設定しています。 | |
MCFが終了処理中のため,メッセージの送信を受け付けられません。 | |
71003 | メッセージキューが満杯です。 |
71004 | メッセージを格納するバッファをメモリ上に確保できませんでした。 |
71108 | メッセージを送信しようとしましたが,送信先の管理テーブルを確保できませんでした。 |
プロセスのローカルメモリが不足しています。 | |
72000 | <MHPの実行でリターンした場合> 先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('SEND△△△△')を呼び出しています。 |
<SPPの実行でリターンした場合> トランザクションでないSPPの処理から,CBLDCMCF('SEND△△△△')を呼び出しています。 | |
72001 | データ名Pに設定した論理端末名称が間違っています。 |
データ名Pに設定した論理端末名称は,定義されていません。 | |
該当する論理端末には,一方送信メッセージを送信できません。 | |
72005 | 先頭セグメントまたは中間セグメントを送信するCBLDCMCF('SEND△△△△')で,データ名Uに4以下の値を設定しています。 |
72016 | データ名Nまたはデータ名T2に設定した値が間違っています。 |
データ名T1に設定した値が間違っています。 | |
データ名Jに設定した値が間違っています。 | |
データ名M1に設定した値が間違っています。 | |
データ名M7,M8に設定した値が間違っています。 | |
72017 | データ名Kに設定した値が間違っています。 |
72019 | データ名M6に設定した値が間違っています。 |
72020 | データ名Iに設定した値が間違っています。 |
72024 | データ名Oに設定した値が間違っています。 |
72026 | データ名Hに設定した値が間違っています。 |
72028 | データ名Aに設定した値が間違っています。 |
72041 | 単一セグメントを送信するCBLDCMCF('SEND△△△△')で,データ名Uに4以下,またはマイナスの値を設定しています。 |
上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |