2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

IBM i の実用的なSQLサンプル② 雑多なサンプル (システム応答リスト関連)

Last updated at Posted at 2024-06-13

こちらの記事の続編です。
環境はIBM i 7.5を使用しています。

■今回ご紹介するサンプル一覧表

どこから? SQLのカテゴリ SQLサンプル 操作内容
ACS 雑多なサンプル CL ADDRPYLE システム応答リストに自動応答させたいMSG IDを登録
ACS 雑多なサンプル CL CHGJOB INQMSGRPY(*SYSRPYL) システム応答リストを参照するようにジョブ属性を変更
ACS 雑多なサンプル CL CHGJOB INQMSGRQY(*DFT) システム応答リストの参照属性を元に戻す
ACS 雑多なサンプル CL RMVRPYLE システム応答リストからMSG IDを除去

ACS SQLサンプル カテゴリー:Miscellaneous(雑多なサンプル)システム応答リスト関連

直訳ですみません^^;、よく使うであろうベーシックなサンプルが収められています。
image.png

※システム応答リストの説明記事はこちらです。

CL ADDRPYLE

システム応答リストに自動応答させたいMSG IDを登録

CL: ADDRPYLE SEQNBR(3333) MSGID(CPA32B2) RPY(I);

コメント:上記のパラメーターは全て例です。実際必要なメッセージIDとその応答を入力します。SEQNBRは1OS上でユニークで、小さい番号から参照されます。
実行例(CL ADDRPYLE):メッセージID CPA32B2 をシステム応答リストの3333番目に登録し、その自動応答は 'I' と指定しています。

image.png

※メッセージID CPA32B2 はどんなときに発生する?
たとえばALTER TABLEでテーブル(PF)の属性を変更しようとした際、ワーニングとして出力されたりします。通常無視してよい場合も多くその際はメッセージ応答に 'I' を入力しないと処理が継続しません。この操作をシステム応答リストに登録するのがこのSQLサンプルです。

ただし、システム応答リストを参照する、しないはジョブ毎に属性を持っています。デフォルトでは参照しない、になっていることが多いため、次のサンプルが役に立ちます。

CL CHGJOB INQMSGRPY(*SYSRPYL)

システム応答リストを参照するようにジョブ属性を変更

CL: CHGJOB INQMSGRPY(*SYSRPYL);

コメント:ジョブ属性 INQMSGRPYはシステム応答リストを参照する、しないを指定します。*SYSRPYLはシステム応答リストを参照するよう変更しています。

CL CHGJOB INQMSGRPY(*DFT)

システム応答リストをデフォルトに変更

CL: CHGJOB INQMSGRPY(*DFT);

コメント:1つ上のサンプルと組み合わせて使う想定です。*SYSRPYLに変更したままだと別なメッセージIDへの自動応答を意図せずに参照してしまう可能性もあるため、参照させたい処理・コマンドが完了したら参照属性を元にもどします。サンプル *DFT はジョブ記述 JOBD の照会メッセージ応答パラメーター INQMSGRPY などでジョブが開始時に設定されている属性を想定しています。環境によってはDFT以外の値がINQMSGRPYパラメーターに指定されている場合もあると思いますので、ジョブ開始時の値に戻す、という操作で使用してください。

***参考:ジョブ記述 *JOBD のINQMSGRPYパラメーター
image.png

CL RMVRPYLE

システム応答リストからMSG IDを除去

CL: RMVRPYLE SEQNBR(3333);

コメント:3333 は上のADDRPYLEの例と呼応したサンプルの番号です。実際のメッセージIDのSEQNBRを指定します。この操作でADDDRPYLEで追加したメッセージIDがシステム応答リストから除去されます。この操作も必須ではない、とも言えますが、自分のジョブが使用したいだけ、というようなシステム応答リスト登録は他のジョブに影響が無いように一時的な使用にする(ジョブ終了前に除去する)というのは適切な考え方です。

2
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?