応答リストの比較値と開始位置について
Question
応答リストを使ってメッセージIDの自動応答をしています。CPA3394の「(G B I H R C) 装置 &5 書き出しプログラム &1 の用紙タイプ'&4' をロードしてください。」のメッセージについて、装置名によって応答の内容を変更したいのですが、そういったことはできますか。WRKRPYLEコマンド実行時の画面の、「比較値」が使えるのではないかと思っているのですが。
Answer
お察しの通り「比較値」を使って装置名ごとに応答を変えることが可能です。ADDRPYLEコマンドの「比較データ」に、PRT01等、任意の名前を記入し利用してください。ただし、その際に、「メッセージ・データ開始位置」も設定しなければ、メッセージ内変数のどこからどこまでを「比較データ」の情報と照らし合わせるべきかシステムはわかりません。開始位置の調べ方を確認していきましょう。
DSPMSGD CPA3394を実行してメッセージの詳細を確認してください。「2. フィールド・データの表示」の画面の「FIELD」はメッセージ内の変数を表し、そのデータ・タイプや桁数をここでは見ることができます。「1. メッセージ・テキストの表示」を改めて眺めてみると、メッセージ中に変数が混ざっていることがわかります。「(G B I H R C) 装置 &5 書き出しプログラム &1 の用紙タイプ'&4' をロードしてください。」このメッセージの中で、装置名を表しているのは&5です。
ADDRPYLEの「メッセージ・データ開始位置」を考える時は、この場合、10ケタのフィールド&1からはじまって、10ケタのフィールド&5で終わる、一続きのレコードをイメージして頂ければと思います。&5はレコード中の何桁目から始まるかを考えますと、&5の手前の&1~&4はそれぞれ10桁ずつですので、開始位置は41桁目となります。