ページのトップに戻る
Systemwalker Operation Manager  Systemwalker for ERPパッケージジョブ連携ガイド SAP R/3編

3.7 ユーザ出口の作成

R/3 システムジョブの作成が完了したら、次にユーザ出口を作成します。

ユーザ出口とは、R/3 システムジョブの実行結果を判定するためのプログラムまたはシェルスクリプトのことです。ユーザ出口は、R/3 システムジョブを作成したSystemwalker Operation Manager サーバ上に、以下の手順で作成します。

  1. 正常終了コードの上限値の検討

    R/3 システムジョブの終了コードのうち、正常終了として扱うコードの上限値を検討します。例えば、R/3 システムジョブの正常終了コードが4 以下の場合に正常終了とみなしたい場合は、正常終了コードの上限値は4とします。ここで決定した上限値は、3.8.2 R/3 スケジュールジョブの定義項目の1 つである[正常終了コード上限値]に設定します。

  2. XMI ログの採取

    R/3 システムジョブに指定したABAP/4 ステップおよびEXTPGM ステップをSAPGUI で直接実行し、XMI ログを採取します。次に、SAP R/3 のドキュメントを参照して、採取したXMI ログの構造を把握します。

  3. ユーザ出口の作成

    XMI ログをもとにR/3 システムジョブの正常終了/異常終了を判定するプログラムまたはシェルスクリプトを作成します。判定に使用するXMI ログは、標準入力から受け取ります。XMI ログの文字コードは、SJIS です。

    この他、ユーザ出口では、以下の環境変数が参照できます。

    R3_JOBNAME

    R/3 システムジョブの名前が設定されます。

    R3_JOBSTAT

    R/3 システムジョブの終了コードが設定されます。

    R3_LOGIN

    SAP R/3 システムへの接続先定義名が設定されます。

    R/3 システムジョブが正常終了したとみなす場合は、1.で決定した[正常終了コード上限値]以下の値を、ユーザ出口の終了コードとして設定します。異常終了とみなす場合は、[正常終了コード上限値]よりも大きい値を、ユーザ出口の終了コードとして設定します。

  4. R/3 スケジュールジョブへの指定

    作成したユーザ出口を、このあと登録するR/3 スケジュールジョブのr3exec コマンドに指定します。ユーザ出口の終了コードが、R/3 システムジョブの終了コードとなります。

    ユーザ出口は、r3exec コマンドに指定するR/3 システムジョブのために作成したものを指定してください。指定はフルパスで行います。フルパスで指定しない場合は、環境変数PATH にパスを設定しておく必要があります。

以下に、ユーザ出口の作成例を示します。

[UNIX版のユーザ出口例1]

#! /bin/sh
grep TEXT | grep 警告
if [ $? = 0 ]
then
    exit 0
fi
exit 1

[Windows版のユーザ出口例1]

FIND "TEXT" | FIND "警告"
IF %ERRORLEVEL%==0 EXIT
SETECODE 1

この例では、XMI ログの中の“TEXT”という見出しを検出し、その行に“警告”という文字列があるかを調べています。

“警告”という文字列が見つかった場合は、ユーザ出口の終了コードとして0 を設定して終了します。

[UNIX版のユーザ出口例2]

#! /bin/sh
if [ $R3_JOBSTAT -lt 2 ]
then
    echo $R3_JOBNAME"は、正常終了しました。"
    exit 0
fi
echo $R3_JOBNAME"は、異常終了しました。"
exit $R3_JOBSTAT

[Windows版のユーザ出口例2]

IF %R3_JOBSTAT% LSS 2 GOTO NORMALEND
ECHO %R3_JOBNAME%は、異常終了しました。
SETECODE %R3_JOBSTAT%
EXIT
:NORMALEND
ECHO %R3_JOBNAME%は、正常終了しました。
SETECODE 0

この例では、R/3 システムジョブの終了コードを調べています。終了コードが2 よりも小さい場合は、ユーザ出口の終了コードとして0 を設定して終了します。

以上でユーザ出口の作成は完了です。次は、R/3 スケジュールジョブを登録します。