4.3. R/3バックグラウンドジョブとの連携方法¶
4.3.1. R/3ジョブスケジュールコマンドを登録¶
R/3ジョブスケジュールコマンド(sjPEX_r3job)は、Senju DevOperation ConductorのジョブスケジュールサブシステムからSAP R/3のバックグラウンドジョブの機能を利用するための中核のコマンドです。
R/3ジョブスケジュールコマンドは起動されると、コマンドの引数に指定された内容でSAP R/3サーバーに対してR/3のジョブを登録し、起動し、R/3のジョブが終了するまで監視し続けます。
R/3ジョブスケジュールコマンドは、Senju DevOperation Conductorのジョブスケジュールサブシステムでジョブとして登録し利用します。
R/3ジョブスケジュールコマンドをSenju DevOperation Conductorのジョブスケジュールサブシステムでジョブとして登録/利用する方法は、Senju DevOperation Conductorのユーザーズマニュアル「5 ジョブスケジュール」の「5.2 ジョブスケジュールの使い方」「5.5.5 ジョブテンプレート」 及び「R/3ジョブスケジュールコマンドをジョブとして登録」、「R/3ジョブスケジュールコマンドをジョブとして利用」を参照して下さい。
R/3ジョブスケジュールコマンドをジョブとして登録する際に指定する引数には、以下に示す内容を指定して下さい。
警告
引数を指定する場合、アルファベットの大文字と小文字を絶対に間違えないようにして下さい。
sjPEX_r3job
-cl クライアント -u R/3ユーザー名 -p パスワード -d デスティネーション
[-l 言語] [-lv XMI監視レベル]
[-jh R/3ジョブの対象ホスト名 | ジョブサーバグループ名] [-i インターバル] [-s] [-jclass 優先度]
[-w稼働猶予時間(HH:MM)] [-k 打ち切り時間(HH:MM)]
[-pDev プリンタ名] [-pCopies 部数] [-pTitle タイトル] [-pDepart 部署名]
{ {-a ABAP/4プログラム名 [-v ABAP/4バリアント名]} | {-c 外部プログラム -h ホスト名} }
[ { {-a [-v]} | {-c -h} } ] ..
オプション |
省略 |
デフォルト |
長さ |
説明 |
|---|---|---|---|---|
-cl |
不可 |
3 |
クライアント |
|
-u |
不可 |
12 |
R/3ユーザー名 |
|
-p |
不可(※1) |
8(※2) |
パスワード |
|
-d |
不可 |
32 |
デスティネーション |
|
-l |
可 |
E |
1 |
言語[J/E/D](J:日本語、E:英語、D:独語) |
-lv |
可 |
0 |
1 |
XMI監視レベル[0-3] |
-jh |
可 |
R/3サーバーに依存 |
32 |
R/3ジョブの対象ホスト名/ジョブサーバグループ名 |
-i |
可 |
60 |
3 |
ステータスチェックインターバル[10-300] |
-s |
可 |
R/3サーバーに依存 |
0 |
即時実行かどうか |
-jclass |
可 |
C |
1 |
優先度[A/B/C] |
-w |
可 |
5 |
稼働猶予時間(HH:MM) |
|
-k |
可 |
5 |
打ち切り時間(HH:MM) |
|
-pDev |
可 |
4 |
プリンタ名 |
|
-pCopies |
可 |
1 |
3 |
部数 |
-pTitle |
可 |
68 |
タイトル |
|
-pDepart |
可 |
12 |
部署名 |
|
-a |
不可 |
40 |
ABAP/4プログラム名 |
|
-v |
可 |
14 |
ABAP/4バリアント名 |
|
-c |
不可 |
384 |
外部プログラム |
|
-h |
不可 |
32 |
ホスト名 |
クライアント、R/3ユーザー名、パスワード、言語には、R/3ログオン画面 で入力する内容と同じものを指定して下さい(言語は省略すると’E’(英語)になります)。
デスティネーションには、saprfc.iniのデスティネーションを指定して下さい(saprfc.iniについては、「saprfc.iniの設定」を参照して下さい)。
R/3ジョブの対象ホスト名/ジョブサーバグループ名には、 R/3ジョブの定義画面 で入力する内容と同じホスト名を指定して下さい。
インターバルには、 R/3ジョブスケジュールコマンドがR/3ジョブの監視を行う間隔(秒)を指定して下さい(インターバルは省略すると60(秒)になります)。
-sオプションを指定すると、R/3のジョブのスケジュールをR/3のサーバーに任せずに、即時に起動します(すぐに起動できなかった場合は、 R/3ジョブスケジュールコマンドは異常終了します)。
ABAP/4プログラム名、 ABAP/4バリアント名、外部プログラム、ホスト名には、 R/3ジョブステップの定義画面 で入力する内容と同じ物を指定して下さい。1つのR/3のジョブに複数のステップを登録する場合は、これをステップ数だけ繰り返して下さい。
ABAP/4バリアント名の省略は、ABAP/4プログラムでバリアントの定義を必要としない場合のみ可能です
注釈
(※1) SAP ERP(RFC SDK 7.20)用R/3ジョブ連携コマンドに限り、設定を行うことで-pオプションを省略できます。設定方法については、「パスワード指定の省略方法」を参照して下さい。
(※2) SAP ERP(RFC SDK 7.20)用R/3ジョブ連携コマンドに限り、指定可能なパスワードの文字列長は40です。これにより、SAP NetWeaver6.40以降のSAPサーバーに接続できます。
- (例)
クライアント : 500 R/3ユーザー名 : ABC パスワード : pass デスティネーション : R3SRV1
R/3ジョブ step 1 : ABAP/4プログラム名 : CALC step 2 : ABAP/4プログラム名 : CALC2 ABAP/4バリアント名 : CALC_VAR2 step 3 : 外部プログラム : multi_printout -u 10 ホスト名 : exserver step 4 : ABAP/4プログラム名 : CLEAR
- コマンドライン
sjPEX_r3job -cl 500 -u ABC -p pass -d R3SRV1 -a CALC -a CALC2 -v CAL_VAR2 -c "multi_printout -u 10" -h exserver -a CLEAR
- 実行結果
sjPEX_r3jobコマンドの実行結果はすべて千手ブラウザのメッセージモニタに表示されます。
図 4.1 R/3ジョブスケジュールコマンドをジョブとして登録¶
図 4.2 R/3ジョブスケジュールコマンドをジョブとして利用¶
図 4.3 R/3ログオン画面¶
図 4.4 R/3ジョブの定義画面¶
図 4.5 R/3ジョブステップの定義画面¶
4.3.2. R/3ジョブスケジュールコマンドを実行¶
R/3ジョブスケジュールコマンド(sjPEX_r3job)は、Senju DevOperation Conductorのジョブスケジュールサブシステムで1つのジョブとして登録し、利用します。
R/3ジョブスケジュールコマンドをSenju DevOperation Conductorのジョブスケジュールサブシステムでジョブとして登録/利用する方法は、Senju DevOperation Conductorのユーザーズマニュアル「5 ジョブスケジュール」の「5.2 ジョブスケジュールの使い方」などを参照して下さい。
R/3ジョブスケジュールコマンドは、 R/3にてジョブを登録すると即時に起動をかけるため、ジョブの起動時刻などのスケジューリングはSenju DevOperation Conductorのジョブスケジュールサブシステムにて行って下さい。
4.3.2.1. R/3ジョブスケジュールコマンドの処理の流れ(通常時)¶
R/3ジョブスケジュールコマンドがSenju DevOperation Conductorのジョブスケジュールで1つのジョブとして起動されると、「図 4.6 R/3ジョブスケジュールコマンドの処理の流れ」及び「表 4.3 R/3ジョブスケジュールコマンドの処理の流れ」に示す流れで動きます。
図 4.6 R/3ジョブスケジュールコマンドの処理の流れ¶
Senju DevOperation Conductorジョブの状態 |
R/3ジョブスケジュールコマンドの処理内容 |
R/3ジョブの状態 |
メッセージモニタ |
|---|---|---|---|
起動待ち |
起動前の状態 |
-(未登録) |
|
稼働中 |
起動 |
-(未登録) |
|
稼働中 |
引数に従い、R/3のジョブを登録 |
‘P’:予定済(scheduled) |
!PEX504:R/3ジョブを登録しました。 |
稼働中 |
登録したR/3ジョブを起動 |
‘S’:リリース済(released) |
|
稼働中 |
登録したR/3ジョブの状態を監視 |
‘Y’:待機中(ready) |
|
稼働中 |
登録したR/3ジョブの状態を監視 |
‘R’:実行中(active) |
!PEX506:R/3ジョブが起動しました。 |
正常終了 |
登録したR/3ジョブの状態を監視 → 正常終了 |
‘F’:終了(finished) |
!PEX514:R/3ジョブが正常終了しました。 |
異常終了 |
登録したR/3ジョブの状態を監視 → 異常終了 |
‘A’:中止(terminated) |
!PEX513:R/3ジョブが異常終了しました。 |
R/3ジョブスケジュールコマンドが起動されると、引数に指定された内容でR/3のジョブを登録し、R/3のジョブを登録した旨のメッセージを出力します。(R/3のジョブ名にはSenju DevOperation Conductorのジョブ名を使用します。)
登録したR/3のジョブを起動します。
起動したR/3のジョブの状態を指定されたインターバルでR/3サーバーに尋ねます。(初めて状態が’R’:実行中になったときに、R/3のジョブが起動した旨のメッセージを出力します。)
R/3のジョブが正常終了すると、正常終了した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも正常終了します。
R/3のジョブが異常終了すると、異常終了した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも異常終了します。
4.3.2.2. R/3ジョブスケジュールコマンドの処理の流れ(強制停止時)¶
図 4.7 R/3ジョブスケジュールコマンドの強制停止の流れ¶
Senju DevOperation Conductorより、R/3ジョブスケジュールコマンドに強制停止の命令がくると、R/3サーバーに対し、R/3のジョブを中止するように依頼します。この段階では、まだR/3のジョブは終了していませんが、Senju DevOperation Conductorのジョブスケジュールの仕様では、ジョブはこの時点で異常終了として扱います。
中止を依頼したR/3のジョブの状態を一定間隔(引数で指定されたインターバルの半分のインターバル(ただし、10秒より小さくはなりません))でR/3サーバーに尋ねます。
R/3のジョブが正常終了すると、正常終了した旨のメッセージと、強制停止が失敗した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも正常終了します(ただし、Senju DevOperation Conductorのジョブは異常終了のままです)。
R/3のジョブが異常終了すると、異常終了した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも異常終了します。
5回状態を取得しても、正常終了または異常終了にならなかった場合には、強制停止が失敗した旨のメッセージを出力し、R/3ジョブスケジュールコマンドは異常終了します。
注釈
R/3ジョブスケジュールコマンドに対して強制停止を行った場合は、R/3のジョブが完全に終了する前にSenju DevOperation Conductorのジョブスケジュールコマンドは異常終了となるため、必要に応じてR/3のメッセージモニタをご覧下さい。