バッチ処理

バッチジョブはバックグラウンド(非対話型)で実行されるプログラムで、3種類の優先順位(クラス) A,B,Cの3種類がある。A は特別で専用のワークプロセスが割り当てられている。
バッチを定義するには、次の2つの項目が必要。

バリアント

バッチとして登録できる ABAP/4 プログラムはレポートとよばれる、非対話型プログラムに限定 されるが、レポートプログラムであっても実行にさいし種々のパラメータを伴うものがある。
このバラメータ群をまとめて保存したものがバリアントであり、「ABAP/4 エディタ」(SE38) で作成する。

ABAP/4 エディタにより、プログラムを呼び出す。

「ABAP/4 エディタ」(SE38)

つづいて[実行]ボタンを押し、パラメータ入力画面を呼び出す。 (パラメータ入力のないプログラムは即実行されてしまう)
「ABAP/4 エディタ」(SE38)

必要なパラメータ入力後、[バリアントで保存]ボタン(F11)を押し、 バリアント名を入力する。
「ABAP/4 エディタ−バリアント保存」(SE38)

ジョブ登録

ジョブの登録は大きくステップと開始日付の2つに別れ、定義する順番は特にない。 ここでは一旦ジョブを登録し、次にステップ、開始日付、最後にもういちどこの画面に もどり登録を完了している。
「バックグラウンドジョブ登録」(SM36)

つぎに[ステップ]ボタンを押し、ステップを定義する。

ジョブステップ登録

ステップ登録は実際に実行するプログラムの種類やパラメータを指定する。 実行できるプログラムは大きく2種類あり ABAP/4 プログラムと外部プログラム(コマンド) である。この切り替えはボタン[ABAP/4][外部プログラム]で行う。
「ステップ登録」(SM36)

ABAP の場合
*外部プログラムの場合 【注意】
これらコマンド実行は、実行するホストの SIDadm ユーザ権限で実行されるため、 運用にあたってはセキュリティホールとならないよう十分考慮する必要がある。 とくにエンドユーザには開放しないよう、権限などを設定すること。

開始時刻登録

登録したジョブの開始タイミングを定義します。 ここでいうタイミングには次の5種類
「開始時刻登録」(SM36)

また「□ 周期的ジョブ」チェックボックスにより、毎時や毎日といった繰り返し実行するジョブの 登録も簡単に行える。
注意 「ジョブ後」スケジューリングについては「周期的ジョブ」定義ができないので、ABAP/4汎用モジュール により、プログラミングする必要がある。

イベント登録

もしユーザで任意のイベントを登録する必要がある場合は 「イベントの照会/編集」(SM62)にて設定できる。
「イベントの照会/編集」(SM62)

今回は新規登録なのでユーザイベント名の「●更新」を選び、Enterを押す
「イベントの編集」(SM62)

現在定義されている全ユーザイベントが表示されるので、登録(F5)ボタンを押す。
「新規登録」(SM62)

イベント名と、内容説明を入力し保存する。

以上でイベントの登録は完了。

イベント立ち上げ

登録したイベントは「バックグラウンド処理でのイベントのリリース」(SM64)で行う。
「イベントの立ち上げ」(SM62)

イベント名と、必用であればパラメータを指定し[トリガ]ボタンを押すと、イベントが発生する。
パラメータは同じイベントが発生した場合、それを識別するために用いられる引数である。

これとは別に ABAP/4 汎用モジュール( BP_EVENT_RAISE )を用いることで、より細かいイベントの制御が可能。

また OS コマンドとして、イベントを発生させることが可能。

	\usr\sap\SID\SYS\exe\run\
		sapevt Event-ID   -p Params   name=SID   nr=Ins.No.

ジョブの監視

ジョブの監視画面は「バックグラウンドジョブの選択」(SM37)で表示することができる。 このときイベント開始にアスタリスク(*)を指定しないと、イベント起動のジョブは表示されない ので注意が必用。
「バックグラウンドジョブの選択」(SM37)

つぎの図はジョブ名 "YCOS BATCH WITH EVENT" がイベント待ちであることを示している。

この状態で、別のセッションからイベントを発生させると、ステータスが「リリース済み」から 「終了」に変化する。


Next プリンタ管理