SEND - メッセージの送信(データ操作言語)
形式1(論理端末へ送信するメッセージを設定して,送信要求する場合)
DATA DIVISION(通信記述項)の指定
CD 通信記述名
FOR {OUTPUT|I-O}
〔STATUS KEY IS データ名1〕
〔SYMBOLIC TERMINAL IS データ名2〕
〔MAP NAME IS データ名5〕
〔SYNCHRONOUS MODE IS {ASYNC|データ名6}〕
〔SWITCHING MODE IS {NORMAL|PRIOR|データ名7}〕
〔NEXT TRANSACTION IS データ名8〕
〔DETAIL MODE IS データ名10〕
〔PAGE NAME IS データ名12〕
〔MAPPING MODE IS データ名13〕.
DATA DIVISION(データ記述項)の指定
01 一意名1.
02 データ名A PIC 9(4) COMP.
02 データ名B PIC X(2).
02 データ名C 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).
PROCEDURE DIVISION(通信文)の指定
SEND 通信記述名 FROM 一意名1
〔WITH {ESI|EMI|一意名2}〕
〔PAGE CONTROL IS 一意名4〕.
形式2(先頭セグメントまたは中間セグメントの送信後,メッセージ送信の終了を連絡する場合)
DATA DIVISION(通信記述項)の指定
CD 通信記述名
FOR {OUTPUT|I-O}
〔STATUS KEY IS データ名1〕
〔SYMBOLIC TERMINAL IS データ名2〕
〔SWITCHING MODE IS {NORMAL|PRIOR|データ名7}〕.
PROCEDURE DIVISION(通信文)の指定
SEND 通信記述名 WITH EMI.
機能
次に示すCALLインタフェースの機能を実現します。
送信できる一つのセグメントの最大長は,32000バイトまでです。
送信するセグメントの領域(一意名1で示す領域)の形式を次に示します。
TP1/NET/XMAP3の論理端末に送信する場合は,XMAP3で作成した出力論理マップをCOPY文で取り込み,一意名1として指定します。出力論理マップの詳細については,マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 帳票編」,マニュアル「画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編」,マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」,またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については,「付録G.1 コーディング例」を参照してください。
UAPで値を設定する項目
●FOR句
送信するメッセージが,一方送信メッセージか応答メッセージかを設定します。
●SYMBOLIC TERMINAL句
論理端末名称を設定したデータ項目を設定します。データ名2にメッセージ出力先の論理端末名称を設定します。
●MAP NAME句
マップ名を設定したデータ項目を設定します。データ名5にマップ名を6文字以内で設定します。
●SYNCHRONOUS MODE句
非同期型でのメッセージ送信を示す,次のどちらかの値を指定して下さい。
指定を省略した場合は,非同期型のメッセージの送信が設定されます。
●SWITCHING MODE句
一方送信メッセージの場合に,一般か優先かを設定します。
省略した場合は,一般の一方送信メッセージ(NORMAL)が設定されます。
●NEXT TRANSACTION句
継続問い合わせ応答メッセージの場合で,次の端末入力メッセージによって起動するMHPを変更するときに設定します。データ名8に起動するMHPのアプリケーション名を8文字以内で設定します。
●DETAIL MODE句
出力通番を付けるかどうかを設定します。データ名10に次のどちらかを設定します。
省略した場合は,出力通番を付けません。
●PAGE NAME句
PAGEC機能を利用する場合に設定します。通信メッセージに対するPAGEC名を連絡します。データ名12にPAGEC名を6文字以内で設定します。
●MAPPING MODE句
マッピングモードを設定します。データ名13に次のどちらかを設定します。
省略した場合は,論理マップと物理マップの情報でマッピングします。
●データ名A
一意名1の長さを設定します。TP1/NET/XMAP3の論理端末にメッセージを送信する場合,出力論理マップの長さ(論理マップ固定部の長さ+論理マップ可変部・定数部の長さ)を設定します。
●データ名B
送信完了通知イベントおよび送信障害通知イベントを設定します。データ名Bとビットの設定値の関係を次に示します。
送信完了通知イベントおよび送信障害通知イベントの要否は,データ名Bの領域の24ビット目で設定します。
●データ名C
送信メッセージのセグメントの内容(論理マップ可変部・定数部に出力する内容)を設定します。
●WITH句
非同期型のメッセージ送信(一方送信メッセージ,応答メッセージ)の場合に設定します。送信するセグメントが,論理メッセージの最終セグメントかどうかを設定してください。
指定を省略した場合は,EMI(最終セグメントまたは単一セグメント)を設定します。
●PAGE CONTROL句
PAGECモジュールを動的に変更する場合に設定します。一意名4にPAGECインタフェース領域の情報を設定します。
一意名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から値が返される項目
●STATUS KEY句
ステータスコードを受け取りたい場合に設定します。省略した場合は,ステータスコードを受け取れません。データ名1にステータスコードが返されます。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。 |
71002 | メッセージキューへの出力処理中に障害が発生しました。 |
メッセージキューが閉塞されています。 | |
メッセージキューが割り当てられていません。 | |
セグメント長に32000バイトを超える値を設定しています。 | |
MCFが終了処理中のため,メッセージの送信を受け付けられません。 | |
71003 | メッセージキューが満杯です。 |
71004 | メッセージを格納するバッファをメモリ上に確保できませんでした。 |
71108 | メッセージを送信しようとしましたが,送信先の管理テーブルを確保できませんでした。 |
プロセスのローカルメモリが不足しています。 | |
72000 | <MHPの実行でリターンした場合>
|
<SPPの実行でリターンした場合>
| |
72001 | 設定した論理端末名称が間違っています。 |
設定した論理端末名称は,定義されていません。 | |
該当する論理端末には,一方送信メッセージを送信できません。 | |
SYNCHRONOUS MODE句にSYNCが設定されているか,データ名6に'1'が設定されています。 | |
72005 | 先頭セグメントまたは中間セグメントを送信するSEND文で,送信メッセージセグメント長に4以下の値を設定しています。 |
72008 | WITH句に「EMI」を設定したSEND文を,2回以上呼び出しました。 |
応答型のMHPからSEND(アプリケーションプログラムの起動)文を呼び出して応答型のほかのMHPを開始したあとで,SEND(応答メッセージの送信)文を呼び出しました。 | |
継続問い合わせ応答型のMHPからSEND(アプリケーションプログラムの起動)文を呼び出して継続問い合わせ応答型のほかのMHPを開始したあとで,SEND(応答メッセージの送信)文を呼び出しました。 | |
72011 | 継続問い合わせ応答中でないMHPが,次に起動するアプリケーション名を指定して,SEND文を呼び出しました。 |
72017 | DETAIL MODE句に設定した値が間違っています。 |
72018 | SWITCHING MODE句に設定した値が間違っています。 |
72020 | SYNCHRONOUS MODE句に設定した値が間違っています。 |
72024 | FOR句に設定した値が間違っています。 |
72026 | WITH句に設定した値が間違っています。 |
72037 | 通信文にBEFORE句が設定されています。 |
72041 | 単一セグメントを送信するSEND文で,送信セグメント長に4以下,またはマイナスの値を設定しています。 |
72044 | DISABLE文を呼び出したあとで,次に起動するアプリケーション名を指定してSEND文を呼び出しました。 |
72045 | NEXT TRANSACTION句に継続問い合わせ応答型でないアプリケーションのアプリケーション名を設定しています。 |
72046 | NEXT TRANSACTION句にアプリケーション名を設定したSEND文を2回以上発行しました。 |
72047 | NEXT TRANSACTION句に設定したアプリケーション名は,アプリケーション定義で定義されていません。 |
73001 | メッセージ出力先論理端末に障害が発生しました。 |
上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |