上級スケジューリング 1: ジョブチェーンの構築 

目的 : 不定期に連鎖ジョブ、つまり、先行および後続関係でリンクされたジョブセットをスケジュールしなければならないような場合に使用します。

この連鎖ジョブのスケジューリングを全ジョブのスケジューリングが 1 つのチェーンのように見える単一のジョブとしてまとめればスケジュールが楽になります。この連結の利点は、単一のジョブをスケジュールするだけで連鎖ジョブを開始可能なことです。

連鎖ジョブのスケジューリング :

実行 : このジョブを 3 つの小さな ABAP レポートで実行します。以下が 2 つとも含まれています。

最初のレポートはジョブ 1 を即座に実行するようにスケジュールします。ジョブ 1 は一部の作業を行い、ジョブ 2 とジョブ 3 の両方をスケジュールします。ジョブ 1 とジョブ 2 との間には厳密な先行、後続の関係はありません。通常、ジョブ 2 はジョブ 1 の処理が完了するまで開始されません。しかし、ジョブ 1 とジョブ 2 のステップは重複しても構いません。たとえば、ジョブ 1 ”Program_X” が外部プログラムで、ジョブ 1 Program_X の完了を待たない場合、ジョブ 2 ”Program_Y” とジョブ 1 Program_X が重複する可能性があります。

ジョブ 1 はそれ自体の後続ジョブをスケジュールすることができないので、ジョブ 2 とジョブ 3 の両方をスケジュールしなければなりません。これは、後続ジョブがスケジュールされるときに先行ジョブのステータスが スケジュール済またはリリース済となっていなければならないためです。連鎖ジョブを設定したい場合は、この例のように単独の第一レポートあるいはジョブから設定してください。

ジョブ 2 は、次に実行され終了するとジョブ 3 を開始します。ここでは、ジョブ 3 JOB_CLOSE 汎用モジュールの pred_jobname 引数を使用して厳密にジョブ 2 を先行ジョブとするようにリンクされています。 predjob_checkstat 引数により、ジョブ 2 が正常終了した場合にのみジョブ 3 が開始されるようになっています。プログラミングサンプルについては、 サンプルプログラム : JOB_CLOSE を使用した先行ジョブ終了待機を参照してください。