初期端末データの変更
ルーティングされたトランザクションが初期端末データを取得できなくなるため、動的ルーティング・プログラムで EXEC CICS RECEIVE および EXEC CICS GDS RECEIVE コマンドを実行してはいけません。
CICS ® 中継プログラム DFHAPRT は、ユーザーの初期端末入力の コピー を個別のバッファーに入れます。 この情報には、APPC のマップ式会話および非マップ式会話の SNA プレゼンテーション・サービス・ヘッダーが含まれています。 このバッファーのポインター (DYRBPNTR) および長さ (DYRBLGTH) は、DFHAPRT から動的ルーティング・プログラムに渡される通信域を介して提供されます。
次の点に注意してください。
- DYRBPNTR が指すバッファーには、メッセージの最初の要求単位 (RU) で届いたデータが含まれています。 RU サイズがメッセージ全体を収容できる十分な大きさである場合、バッファーには完全なメッセージが含まれています。 一方、RU サイズがメッセージ長より短い場合、(バッファー自体の長さがメッセージ全体を収容できる十分な大きさであっても) バッファーには最初の RU のデータのみが含まれています。
- DYRBLGTH フィールドが指す長さは、メッセージ の長さであり、バッファーのデータの長さではありません。 メッセージ全体が単一の RU で届いた場合にのみ、DYRBLGTH の長さは、バッファーのデータの長さになります。
- 次のすべてが真の場合、初期端末入力データはルーティング・プログラムに渡されません。
- ルーティング・プログラムが AOR で実行されている。
- 元の要求が、TOR からルーティングされたトランザクションである。
- 元の機能が APPC 並列セッションである。
この時点ではトランザクション・プロファイルは照会されていないため、入力データの大文字変換は実行されていません。ただし、TYPETERM 定義で UCTRAN(YES) が指定されている場合は別です。
ユーザーによる初期データ入力を変更する必要がある場合があります (例えば、通信域の DYRTRAN フィールドを使用して、リモート・トランザクションの ID を変更する場合などに、変更が必要になることがあります)。 入力データを変更するには、ルート選択で呼び出されたときに、ルーティング・プログラムで以下を実行する必要があります。
- DYRBPNTR が指す入力データを、長さが DYRBLGTH の名前付き変数にコピーする
- その名前付き変数のデータを変更する
- EXEC CICS RETURN コマンドの INPUTMSG オプションを使用して、変更したデータをアプリケーション・プログラムに提供する。
EXEC CICS RETURN コマンドで INPUTMSG を使用する方法については、 INPUTMSGで説明されている他の方法を参照してください。 INPUTMSG オプションに関するプログラミング情報については、 RETURNを参照してください。
注: 入力データを変更した後、選択したトランザクションへのルーティングでエラーが発生したために動的ルーティング・プログラムが再度呼び出された場合は、元のユーザー入力を変更したことを「覚えておく」必要があります。