SAPバックグラウンドジョブ処理SM36:登録、スケジュール、再スケジュール
バックグラウンドジョブとは何ですか?
バックグラウンドジョブは、通常の対話型操作の背後で実行される非対話型プロセスです。 これらは並行して実行され、対話型(フォアグラウンド-ジョブ)のプロセスと操作を妨げません。
SM36からの予定です。 ジョブ-ログを表示して、SM37から分析できます。
バックグラウンドジョブの利点
- 手動作業を削減&タスクを自動化します。
- ユーザーの選択に応じてスケジュールすることができます。
- ユーザーの操作を軽減し、ユーザー入力なしでバックグラウンドでシームレスに実行できます
- バックグラウンドジョブのバリアントを定義すると、ユーザー これにより、ユーザーの混乱も軽減されます。
- 夜間(システム負荷が低い場合)に実行するようにスケジュールすることができる時間のかかる/リソースを大量に消費するプログラムに最適です。
バックグラウンドジョブは三つのカテゴリに分類されます–
- クラスA(高/クリティカル優先度): -一部のタスクは緊急または重要であり、クラスA優先ジョブでスケジュールする必要があります。 クラスA優先順位は、一つ以上のバックグラウンドワークプロセスを予約します。 ユーザは、クラスA優先ジョブに割り当てるバックグラウンドワークプロセスの数を決定する必要があります。 ユーザがこのカテゴリに2つのバックグラウンドワークプロセスを選択し、クラスBおよびCに使用可能なバックグラウンドワークプロセス=(動作モードRZ03で設定されたワークプロセスの総数)-(クラスAカテゴリに許可されたバックグラウンドワークプロセス)を選択したとします。
- クラスB(中優先): -クラスaジョブが完了すると、クラスBジョブはクラスCジョブの前にバックグラウンドで実行を開始します。
- クラスC(低優先度):-クラスAとクラスBの両方のジョブが完了した後に実行されます。
バックグラウンドジョブの可能なステータス
- Scheduled:-プログラム名とバリアントを定義していますが、開始日、終了日、頻度などの開始条件は定義していません。 つまり、ジョブをいつシステムでスケジュールするかを定義していません。
- リリース:–ジョブ定義に必要なすべての基準が満たされています。 ジョブがリリース状態になるには、開始条件が必要です。
- Ready:–バックグラウンドワークプロセスでジョブを実行するために必要なすべての条件が満たされています。 しかし、ジョブスケジューラは、バックグラウンドworkprocessが解放されるのを待っているため、ジョブをキューに入れています。
- Active:–ジョブがバックグラウンドで実行を開始しました。 ジョブがActiveステータスになった後は、ジョブのステータスを変更することはできません。
- Finished:–ジョブが正常に実行されました。 これは、目的のタスクがエラーなしで競合することを意味します。
- キャンセル:–これには二つの可能性があります。 管理者がジョブを強制的にキャンセルしたか、ジョブに問題がある可能性があります。 これはジョブログから調べることができます。
バックグラウンドジョブをスケジュールするには?
SM36を使用してバックグラウンドジョブをスケジュールできます。 計画ジョブまたは即時ジョブをスケジュールできます。
ステップ1)TコードSM36を実行します。
ステップ2)ジョブ名、優先度(A/B/C)、およびターゲットサーバを入力します。 ターゲットサーバー上でスケジュールされたバックグラウンドジョブは、そのサーバー上で実行されます。 ターゲットサーバーを定義する主な目的は、ワークロードバランシングです。
ステップ3)”スプールリスト受信者”をクリックします。 あなたはあなたのメールボックスに出力を取得します。 SBWPからのメールを確認することができます。
ステップ4)SAPユーザー名を挿入し、コピーボタンをクリックします。
ステップ5)ステップボタンをクリックして、ABAPプログラム、バリアントの詳細など
ステップ6)プログラム名、バリアントの詳細を定義します。
- フィールドにプログラム名、バリアント名を入力します。 要件に従ってvariantを作成していない場合は、空白のままにします。
- 保存ボタンを押します。
ステップ7)ジョブをスケジュールすると、次の画面が表示されます。
ステップ8)開始条件をクリックして、ジョブの開始日、終了日、頻度などを入力します。 Start conditionを指定しない場合、ジョブは常にscheduledステータスのままになります。 Scheduledステータスのジョブは実行されません。
- 日付/時刻(定期的なジョブの場合)をクリックします。 「即時」をクリックすると、ジョブはすぐに実行を開始します。 しかし、それは定期的なジョブとして設定されません。 それは”押して実行するようなものです。”
- ジョブの開始日/時刻、終了日/時刻を定義します。 ジョブは、スケジュールされた開始日/時刻を満たした後にのみリリースされます。
ステップ9)Hourly/Daily/Weekly periodをクリックして、要件に応じてジョブの頻度を定義します。その他の期間
ステップ10)ここでは、ジョブの定期的な基準を指定します。たとえば、開始日から5日ごとにジョブを実行することができます。 ここでは、10分ごとに実行するジョブを選択します
ステップ11)保存ボタンをクリックします。
ステップ12)保存を再度クリックします。
ステップ13)保存を再度クリックします
ステップ14)ジョブステップと開始条件が定義されると、次のウィンドウが表示さ
ステップ15)保存を押します。
ステップ16)SM37に移動して、ジョブのステータスを確認します。
- ジョブをスケジュールしたジョブ名とユーザー名を入力します。
- ジョブのステータスを選択します。
- 日付範囲を指定します。 このシナリオでは、開始日を開いたまま終了日を指定するだけです。
ステップ18)次の画面が表示されます。 ステータスを見て、それはリリースされた開始条件が満たされていることを意味し、ジョブはキューにあり、バックグラウンド作業プロセスが自由である
バックグラウンドジョブを再スケジュールする方法
再スケジュールされたジョブ それがアクティブなステータスになったらRemeber、あなたはスケジュールを変更することはできません。
ステップ1)SM37を実行します。
ステップ2)条件を入力します。
- ジョブがスケジュールされるジョブ名とユーザー名。
- ステータスを選択します。 ジョブのスケジュールを変更するには、リリース/準備完了ステータスのみを選択できます。
- 日付範囲を指定します。
- 実行(F8)ボタンを押します。
ステップ3)指定されたジョブを選択し、ジョブ->(リリース->スケジュール)を押します。
ステップ4)”リリース->スケジュール”を押すと、ステータスバーにメッセージが表示されます。