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 部数]
      [-pForm 書式] [-pRow 行数] [-pCol 列数]
      [-pName 名称] [-pTitle タイトル] [-pAuth 権限]
      [-pCover] [-pUser 受信者] [-pDepart 部署コード]
      [-pDel] [-pPeriod スプール保存期間] [-pNotNew] [-pPri 印刷優先度]
      { {-a ABAP/4プログラム名 [-v ABAP/4バリアント名]} | {-c 外部プログラム -h ホスト名} }
      [ { {-a [-v]} | {-c -h} } ] ..
      [ -recName 受信者アドレス -recType 受信者種別 [-gaCopy] [-gaBlind] [-gaExpress] [-gaNForward] ]

オプション

省略

デフォルト

長さ

説明

-cl

不可

3

クライアント

-u

不可

12

R/3ユーザー名

-p

不可(※1)

8(※2)

パスワード

-d

不可

32

デスティネーション

-l

可

E

1

言語[J/E/D/1](J:日本語、E:英語、D:独語、1:中国語)

-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

部数

-pForm

可

16

書式

-pRow

可

10

行数

-pCol

可

10

列数

-pName

可

12

名称

-pTitle

可

68

表題

-pAuth

可

12

権限

-pCover

可

0

選択カバーシート

-pUser

可

12

受信者

-pDepart

可

12

部署コード

-pDel

可

0

印刷後削除

-pPeriod

可

1

スプール保存期間[0-8]

-pNotNew

可

0

新規スプール依頼

-pPri

可

1

印刷優先度[1-9](1:高~9:低)

-a

不可

40

ABAP/4プログラム名

-v

可

14

ABAP/4バリアント名

-c

不可

384

外部プログラム

-h

不可

32

ホスト名

-recName

可

241

受信者アドレス

-recType

可

1

受信者種別、設定値は下記参照

-gaCopy

可

0

コピー

-gaBlind

可

0

ブラインドコピー

-gaExpress

可

0

緊急

-gaNForward

可

0

転送不可

  • クライアント、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プログラムでバリアントの定義を必要としない場合のみ可能です

  • 受信者アドレスと受信者種別は同時に指定する指定してください。

  • 「-ga~」の4つのオプションは受信者アドレス/受信者種別と同時に指定してください。

  • -gaCopy と -gaBlind を同時に指定した場合、-gaCopy が有効となります。

注釈

(※1) SAP ERP(RFC SDK 7.20)用R/3ジョブ連携コマンドに限り、設定を行うことで-pオプションを省略できます。設定方法については、「パスワード指定の省略方法」を参照して下さい。

(※2) SAP ERP(RFC SDK 7.20)用R/3ジョブ連携コマンドに限り、指定可能なパスワードの文字列長は40です。これにより、SAP NetWeaver6.40以降のSAPサーバーに接続できます。

  • 受信者種別一覧

    受信者種別

    備考

    P

    Private distribution list

    C

    Shared distribution list

    O

    SAPoffice user

    B

    SAP user

    U

    Internet address

    X

    X.400 address

    R

    SAP user in another SAP System

    A

    External address

    F

    Fax number

    D

    X.500 Address

    L

    Telex number

    H

    Organizational unit/position

    J

    SAP object

    G

    Organization object/ID

    K

    Pager/SMS

    1

    Other Recipient Types

  • (例)
    クライアント            : 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コマンドの実行結果はすべて千手ブラウザのメッセージモニタに表示されます。

_images/3.1.png

図 4.1 R/3ジョブスケジュールコマンドをジョブとして登録

_images/3.2.png

図 4.2 R/3ジョブスケジュールコマンドをジョブとして利用

_images/3.3.png

図 4.3 R/3ログオン画面

_images/3.4.png

図 4.4 R/3ジョブの定義画面

_images/3.5.png

図 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ジョブスケジュールコマンドの処理の流れ」に示す流れで動きます。

_images/3.6.png

図 4.6 R/3ジョブスケジュールコマンドの処理の流れ

表 4.3 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ジョブが異常終了しました。

  1. R/3ジョブスケジュールコマンドが起動されると、引数に指定された内容でR/3のジョブを登録し、R/3のジョブを登録した旨のメッセージを出力します。(R/3のジョブ名にはSenju DevOperation Conductorのジョブ名を使用します。)

  2. 登録したR/3のジョブを起動します。

  3. 起動したR/3のジョブの状態を指定されたインターバルでR/3サーバーに尋ねます。(初めて状態が’R’:実行中になったときに、R/3のジョブが起動した旨のメッセージを出力します。)

  4. R/3のジョブが正常終了すると、正常終了した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも正常終了します。

  5. R/3のジョブが異常終了すると、異常終了した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも異常終了します。

4.3.2.2. R/3ジョブスケジュールコマンドの処理の流れ(強制停止時)

R/3ジョブスケジュールコマンドは、他のSenju DevOperation Conductorのジョブと同じく強制停止させることができます。
R/3ジョブスケジュールコマンドに対し、Senju DevOperation Conductorのジョブスケジュールより強制停止が行われると、「R/3ジョブスケジュールコマンドの強制停止の流れ」に示す流れで動きます。
_images/3.7.png

図 4.7 R/3ジョブスケジュールコマンドの強制停止の流れ

  1. Senju DevOperation Conductorより、R/3ジョブスケジュールコマンドに強制停止の命令がくると、R/3サーバーに対し、R/3のジョブを中止するように依頼します。この段階では、まだR/3のジョブは終了していませんが、Senju DevOperation Conductorのジョブスケジュールの仕様では、ジョブはこの時点で異常終了として扱います。

  2. 中止を依頼したR/3のジョブの状態を一定間隔(引数で指定されたインターバルの半分のインターバル(ただし、10秒より小さくはなりません))でR/3サーバーに尋ねます。

  3. R/3のジョブが正常終了すると、正常終了した旨のメッセージと、強制停止が失敗した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも正常終了します(ただし、Senju DevOperation Conductorのジョブは異常終了のままです)。

  4. R/3のジョブが異常終了すると、異常終了した旨のメッセージを出力し、R/3ジョブスケジュールコマンドも異常終了します。

  5. 5回状態を取得しても、正常終了または異常終了にならなかった場合には、強制停止が失敗した旨のメッセージを出力し、R/3ジョブスケジュールコマンドは異常終了します。

注釈

R/3ジョブスケジュールコマンドに対して強制停止を行った場合は、R/3のジョブが完全に終了する前にSenju DevOperation Conductorのジョブスケジュールコマンドは異常終了となるため、必要に応じてR/3のメッセージモニタをご覧下さい。