私はJZOSのIBMメインフレームでバッチJavaを実行しています。ジョブは、データベース内で何が検出されたかに応じて、0〜6個の ".txt"出力を作成します。その後、これらのファイルをUnixからMVS(ebcdic)に変換する必要があり、IKJEFT01で実行されているOCOPYコマンドを使用しています。しかし、特定の出力が作成されなかった場合、JCLエラーが発生し、ジョブは終了します。私は各ファイル名の有無をチェックし、IKJEFT01のステップが実行されるかどうかを制御するための条件コードを設定したいが、Unixのファイルパス名にアクセスするために使用するものを知らない。
変換されたMVSファイルをチェックし、後続のJCLステップの実行を制御する戻りコードを設定するCOBOLプログラムを作成することで、この問題を解決しました。完了したジョブは、現在、ユーザー受け入れテストを受けています。おそらくそれはクルージュのように聞こえるかもしれませんが、うまくいきます。私はこの解決策を分かち合うことができます。Unixシステムサービスファイルの存在を確認する方法
2
A
答えて
2
JCLでこれを行う最も簡単な方法は、次のようにBPXBATCHを使用することです:
//EXIST EXEC PGM=BPXBATCH,
// PARM='pgm /bin/cat /full/path/to/USS/file.txt'
//*
// IF EXIST.RC = 0
//* do whatever you need to
// ENDIF
ファイルが存在する場合、ステップは、CC 0で終わるとIF
は成功します。ファイルが存在しない場合は、非ゼロのCC(256、私は信じる)を取得し、IF
は失敗します。
//STDOUT DD
ステートメントが存在しないため、JESに書き込まれる出力はありません。
唯一の欠点は、別のジョブステップであり、proc(コンパイル/アセンブルジョブのような)がたくさんある場合、255ステップの制限に達することができるということです。
+1
ありがとうございます。 COBOLプログラムもステップを追加しますが、JESに書き込むことができます。後続のステップの調整に使用する戻りコードを選択できます。また、一度に複数のファイルをチェックすることもできます。 –
関連する問題
- 1. MySQLテーブルの存在確認方法
- 2. 無向グラフのサイクルの存在を確認する方法は?
- 3. JList内のファイルの存在を確認する方法
- 4. Railsのparamsでキーの存在を確認する方法は?
- 5. 配列内のオブジェクトの存在を確認する方法
- 6. Androidデバイスに存在するwidevine DRMを確認する方法
- 7. ファイルが存在することを確認する方法c#
- 8. Qwidgetが存在することを確認する方法
- 9. SQLに存在する列を確認する方法
- 10. クラスと関数の存在を確認する方法は?
- 11. SVクラスプロパティの存在を確認する方法
- 12. 仮想インターネットアンドロイドスタジオの接続と存在を確認する方法
- 13. PHPで名前空間の存在を確認する方法
- 14. マッチングの存在を確認する方法は?
- 15. バックボーン/チャップリンズ:オブジェクトにキーの存在を確認する方法
- 16. DBの存在を確認する方法は?
- 17. サブフォルダの存在を確認する方法VB6
- 18. 値の存在を確認する最も簡単な方法
- 19. 子ウィンドウの存在を確認する方法
- 20. dllの存在を確認する方法
- 21. ファイルの存在を確認する方法
- 22. JPA EntityListenersでインターフェイスの存在を確認する方法
- 23. 配列にNaNキーワードの存在を確認する方法は?
- 24. サブディレクトリの存在を確認
- 25. ファイルが存在するまで確認する方法
- 26. SQLAlchemy:データベースに存在を確認する方法
- 27. 現在アクティビティインスタンスが存在するかどうかを確認する方法
- 28. SQLite DBの存在を確認する
- 29. PHP - リモートファイルの存在を確認する
- 30. スクリーン名の存在を確認する
私はちょうどこれを見つけた。私は、ソース・ファイルがソース・リポジトリーからチェックアウトされたコンパイル/アセンブル・ジョブ・ストリームのPGM = BPXBATCHを介してJCLでこれを行いました。リリースによっては、JCLエラーが必要な場所ではありません。 私はJCLを1日か2日後に掘り起こして、ここに投稿します。 – zarchasmpgmr