ページの先頭行へ戻る
Systemwalker Operation Manager Systemwalker for ERPパッケージジョブ連携ガイド SAP ERP編
FUJITSU Software

3.8 ユーザ出口の作成

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

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

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

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

  2. XMIログの採取

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

  3. ユーザ出口の作成

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

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

    R3_JOBNAME

    SAP ERP システムジョブの名前が設定されます。

    R3_JOBSTAT

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

    R3_LOGIN

    SAP ERP システムへのセション開設用情報名が設定されます。

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

  4. SAP ERP スケジュールジョブへの指定

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

    ユーザ出口は、r3execコマンドに指定するSAP ERP システムジョブのために作成したものを指定してください。指定はフルパスで行います。フルパスで指定しない場合は、環境変数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

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

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