ジョブフローの環境変数

環境変数とは、ジョブステップの動作を動的に指定するための変数です。環境変数には以下の2種類があります。

  • ジョブステップの実行時に自動的に生成される値に置換される環境変数

  • イベント通知ユーティリティで指定したメッセージに置換される環境変数

ジョブステップのコマンドやシェルスクリプトで環境変数名を指定すると、先行するジョブステップで生成済みの値またはイベント通知ユーティリティのパラメータで指定されたメッセージに置換されます。

環境変数のイメージとして、前ジョブステップで生成した抽出ファイル名をHULFT-DataMagicのコマンドで使用する例を次の図に示します。

図2.56 環境変数のイメージ

ここでは、環境変数の使用方法について説明します。なお、使用できる環境変数の一覧については、HULFT-HUB Managerのオンラインヘルプを参照してください。

(1) 環境変数を使用できる項目

環境変数は、実行系ジョブステップのユーザJOBおよびDataMagicで使用できます。起動コマンドの引数や、シェルスクリプトなどのユーザプログラム内に環境変数を指定することで、前ジョブステップで生成した値またはイベント通知ユーティリティで指定したメッセージを用いた処理が実行できます。

環境変数は、ユーザJOBおよびDataMagicのプロパティ画面の、次の項目で指定できます。

ユーザJOB

ユーザジョブ設定

(ユーザジョブ設定で指定したシェルスクリプト内でも指定可)

DataMagic
  • コマンドライン

  • パラメータファイル

  • その他のパラメータ指定

注意
  • DataMagicで使用する環境ファイルやパラメータファイル内の設定項目には、環境変数を指定できません。

  • 環境変数の後に英数字または“_”を指定する場合は、$に続く環境変数名を{ }で囲んでください。

    例)環境変数「$JF_MESSAGE0」が“/home/smpl/”に設定されている場合

    項目設定

    置換結果

    ${JF_MESSAGE0}data

    /home/smpl/data

    $JF_MESSAGE0data

    空文字列

    (“$JF_MESSAGE0data”という環境変数と認識されるため)

(2) 環境変数を用いたジョブフローの実行例1

抽出ファイルをバックアップ(ジョブステップID:JS003)し、抽出ファイルのデータを加工(ジョブステップID:JS004)する例を次に示します。なお、本設定例はHULFT-DataMagic Ver.1を使用した設定例となります。

図2.57 抽出ファイルの操作

A

: ファイルを蓄積待ちします。

環境変数「$JF_JOBFLOWID」(ジョブフローID)、「$JF_SDATE」(ジョブフロー開始日)、「$JF_STIME」(ジョブフロー開始時刻)が生成されます。

B

: Aで蓄積したファイルを抽出します。

環境変数「$JF_JS002_AC00001_SELECTFILENM」(抽出ファイル名)が生成されます。

C

: 次のシェルスクリプトを実行して、ジョブフローID、ジョブフロー開始日、およびジョブフロー開始時刻をファイルに標準出力します。また、Bで抽出したファイルのバックアップを実行します。

環境変数「$JS_BF_ENDCODE」(前実行ジョブステップの完了コード)が生成されます。

#! /usr/bin/sh
echo $JF_JOBFLOWID $JF_SDATE $JF_STIME >> /usr/local/log/user.log
if [ $JS_BF_ENDCODE -eq 0 ]
then
cp $JF_JS002_AC00001_SELECTFILENM $JF_JS002_AC00001_SELECTFILENM.bak
echo $JF_JS002_AC00001_SELECTFILENM is backuped. >> /usr/local/log/user.log
fi

なお、ゴシック部分は環境変数、斜体部分は蓄積識別名です。蓄積識別名は、実行環境によって入る値が異なります。

環境変数に入る値の例を次に示します。

表2.4 環境変数に入る値の例

変換する項目

変数名

変換値

ジョブフローID

$JF_JOBFLOWID

JF001

ジョブフロー開始日

$JF_SDATE

20091001

ジョブフロー開始時刻

$JF_STIME

120000

前実行ジョブステップの完了コード

$JS_BF_ENDCODE

0

D

: 次のコマンドを実行して、抽出ファイルのデータを加工します。

HULFT-DataMagicのコマンドについては以下のマニュアルを参照してください。

HULFT-DataMagic Ver.1の場合

HULFT-DataMagic 運用マニュアル

HULFT-DataMagic Ver.2以降の場合

HULFT-DataMagic リファレンスマニュアル

utled -f /usr/local/datamagic/prm.dat -r -infile $JF_JS002_AC00001_SELECTFILENM

なお、ゴシック部分は環境変数、斜体部分は蓄積識別名です。蓄積識別名は、実行環境によって入る値が異なります。

環境変数に入る値の例を次に示します。

表2.5 環境変数に入る値の例

変換する項目

変数名

変換値

抽出ファイル名

$JF_JS002_AC00001_SELECTFILENM

/usr/local/hub/jobwk/accmfile01.dat

E

: 処理を終了します。

実行結果

以上の設定の下でジョブフローを実行した場合の実行結果を次に示します。

Cのシェルスクリプトの実行結果(/usr/local/log/user.log)
JF001 20091001 120000
/usr/local/hub/jobwk/accmfile01.dat is backuped.
Dで実行されるコマンド(環境変数を置換した結果)
utled -f /usr/local/datamagic/prm.dat -r -infile /usr/local/hub/jobwk/accmfile01.dat
= 備考 =

リラン時の環境変数については「ジョブフローのリラン」を参照してください。

(3) 環境変数を用いたジョブフローの実行例2

単一のジョブフローIDを使用して任意のファイルのデータ加工を行う例を次に示します。なお、本設定例はHULFT-DataMagic Ver.1を使用した設定例となります。

図2.58 指定されたファイルの操作

A

: イベント通知ユーティリティからの通知を待ちます。

以下のパラメータを指定してユーティリティを実行し、ジョブフローを起動します。

utjfevnt –i SMPLJFID –msg0 "data20110301.dat" -msg1 "/usr/local/datadir" -msg2 "/tmp/backupdir" -msg3 "prm01.dat"

指定するパラメータは以下のとおりです。

表2.6 パラメータの意味

パラメータ

環境変数

設定値

説明

-msg0

$JF_MESSAGE0

data20110301.dat

対象ファイル名

-msg1

$JF_MESSAGE1

/usr/local/datadir

対象ファイルがあるディレクトリ

-msg2

$JF_MESSAGE2

/tmp/backupdir

バックアップディレクトリ

-msg3

$JF_MESSAGE3

prm01.dat

パラメータファイル名

B

: 次のシェルスクリプトを実行して、対象ファイルをバックアップします。

#! /usr/bin/sh
echo datafile : ${JF_MESSAGE1}/$JF_MESSAGE0 >> /usr/local/log/user.log
echo parameterfile : $JF_MESSAGE3 >> /usr/local/log/user.log
echo backupfile : ${JF_MESSAGE2}/${JF_MESSAGE0}.bkup >> /usr/local/log/user.log
cp ${JF_MESSAGE1}/$JF_MESSAGE0 ${JF_MESSAGE2}/${JF_MESSAGE0}.bkup

なお、ゴシック部分は環境変数です。

C

: 以下のコマンドを実行して、対象ファイルのデータを加工します。

HULFT-DataMagicのコマンドについては以下のマニュアルを参照してください。

HULFT-DataMagic Ver.1の場合

HULFT-DataMagic 運用マニュアル

HULFT-DataMagic Ver.2以降の場合

HULFT-DataMagic リファレンスマニュアル

utled -f /usr/local/datamagic/$JF_MESSAGE3 -r -infile ${JF_MESSAGE1}/$JF_MESSAGE0

なお、ゴシック部分は環境変数です。

D

: 処理を終了します。

実行結果

以上の設定の下でジョブフローを実行した場合の実行結果を次に示します。

Bのシェルスクリプトの実行結果(/usr/local/log/user.log)
datafile : /usr/local/datadir/data20110301.dat
parameterfile : prm01.dat
backupfile : /tmp/backupdir/data20101201.dat.bkup
Cで実行されるコマンド(環境変数を置換した結果)
utled -f /usr/local/datamagic/prm01.dat -r -infile /usr/local/datadir/data20101201.dat
= 備考 =

リラン時の環境変数については「ジョブフローのリラン」を参照してください。