2.2.6 マクロ変数の使用を検討する
マクロ変数を使用すると,ジョブの実行ごとに変化するパラメーターの値などを,後続ユニットで使用して業務を自動化できます。
(1) マクロ変数を指定できる定義項目
マクロ変数を使用して情報を引き継ぐには,後続ユニットの詳細定義でマクロ変数を指定します。
マクロ変数を指定できる定義項目を,次に示します。
ユニット種別 |
定義項目 |
---|---|
ジョブネット |
実行エージェント※ |
UNIXジョブ |
実行エージェント※ |
コマンド文 |
|
スクリプトファイル名 |
|
パラメーター |
|
環境変数 |
|
環境変数ファイル名※ |
|
ワークパス※ |
|
標準入力ファイル名※ |
|
標準出力ファイル名※ |
|
標準エラー出力ファイル名※ |
|
終了判定のファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合)※ |
|
実行時のユーザー※ |
|
転送元ファイル名※ |
|
転送先ファイル名※ |
|
PCジョブ |
実行エージェント※ |
実行ファイル名 |
|
パラメーター |
|
環境変数 |
|
環境変数ファイル名※ |
|
ワークパス※ |
|
標準入力ファイル名※ |
|
標準出力ファイル名※ |
|
標準エラー出力ファイル名※ |
|
終了判定のファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合)※ |
|
実行時のユーザー※ |
|
転送元ファイル名※ |
|
転送先ファイル名※ |
|
QUEUEジョブ |
ホスト名※ |
キュー名※ |
|
ジョブ名※ |
|
実行ファイル名 |
|
パラメーター |
|
転送元ファイル名※ |
|
転送先ファイル名※ |
|
判定ジョブ |
変数名 |
フレキシブルジョブ |
宛先 |
中継エージェント |
|
実行ファイル名 |
|
パラメーター |
|
環境変数 |
|
終了判定のファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合) |
|
HTTP接続ジョブ |
実行エージェント |
接続設定ファイル名 |
|
送信情報ファイル名 |
|
ステータス格納ファイル名 |
|
受信ヘッダー格納ファイル名 |
|
受信ボディ格納ファイル名 |
|
標準出力ファイル名 |
|
標準エラー出力ファイル名 |
|
終了判定ファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合) |
|
実行時のユーザー |
|
JP1イベント受信監視ジョブ |
実行エージェント※ |
イベント発行元ホスト名※ |
|
JP1イベント受信監視ジョブ−拡張属性指定 |
任意の拡張属性※ |
ファイル監視ジョブ |
実行エージェント※ |
監視対象ファイル名※ |
|
メール受信監視ジョブ |
実行エージェント※ |
ログファイル監視ジョブ |
実行エージェント※ |
ログファイル名※ |
|
Windowsイベントログ監視ジョブ |
実行エージェント※ |
実行間隔制御ジョブ |
実行エージェント※ |
JP1イベント送信ジョブ |
実行エージェント※ |
イベント送信先ホスト名 |
|
メッセージ |
|
拡張属性 |
|
メール送信ジョブ |
実行エージェント※ |
宛先 |
|
件名 |
|
本文 |
|
本文−ファイル名 |
|
プロファイル名 |
|
メール送信ジョブ−添付ファイル |
添付ファイル |
添付ファイル−リストファイル名 |
|
メッセージキュー送信ジョブ−詳細設定 |
メッセージデータファイル名 |
MSMQ送信ジョブ |
キューパス名 |
キューラベル名 |
|
メッセージラベル |
|
MSMQ送信ジョブ−メッセージ本文 |
本文ファイル名 |
JP1/Cm2状態通知ジョブ |
実行エージェント※ |
付加情報 |
|
ローカル電源制御ジョブ |
実行エージェント※ |
リモート電源制御ジョブ |
実行エージェント※ |
対象ホスト |
|
カスタムUNIXジョブ |
実行エージェント※ |
コマンド文 |
|
スクリプトファイル名 |
|
パラメーター |
|
環境変数 |
|
環境変数ファイル名※ |
|
ワークパス※ |
|
標準入力ファイル名※ |
|
標準出力ファイル名※ |
|
標準エラー出力ファイル名※ |
|
終了判定のファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合)※ |
|
実行時のユーザー※ |
|
転送元ファイル名※ |
|
転送先ファイル名※ |
|
カスタムPCジョブ |
実行エージェント※ |
実行ファイル名 |
|
パラメーター |
|
環境変数 |
|
環境変数ファイル名※ |
|
ワークパス※ |
|
標準入力ファイル名※ |
|
標準出力ファイル名※ |
|
標準エラー出力ファイル名※ |
|
終了判定のファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合)※ |
|
実行時のユーザー※ |
|
転送元ファイル名※ |
|
転送先ファイル名※ |
|
標準カスタムジョブ |
実行エージェント※ |
標準出力ファイル名※ |
|
標準エラー出力ファイル名※ |
|
終了判定のファイル名(終了判定の条件に「ファイルが存在すれば正常」,または「ファイルが更新されれば正常」を指定した場合)※ |
|
実行時のユーザー※ |
- 注※
-
JP1/AJS3 - ViewおよびJP1/AJS3 - Managerのバージョンが09-50以降の場合に,マクロ変数を指定できます。
(2) マクロ変数の確認
マクロ変数を使用している場合,ジョブで使用しているマクロ変数名を確認したり,ジョブの実行後にマクロ変数で引き継いだ結果を確認したりできます。
(a) 使用しているマクロ変数の確認
JP1/AJS3 - Viewの[変数使用状況]ダイアログボックス,またはajsprintコマンドの-vオプションの指定で,配下のユニットで使用しているマクロ変数名の一覧を参照できます。詳細については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド 12.3.25 [変数使用状況]ダイアログボックス」,およびマニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsprint」を参照してください。
ajsprintコマンドでの参照例を次の図に示します。
|
(b) マクロ変数で引き継いだ結果の確認
JP1/AJS3 - Viewの[引き継ぎ結果]ダイアログボックスでは,実行登録時に指定したマクロ変数名と引き継ぎ情報,およびジョブ実行時に引き継いだマクロ変数名と引き継ぎ結果が参照できます。詳細については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド 12.7.10 [引き継ぎ結果]ダイアログボックス」を参照してください。
また,ajsshowコマンドでは,-iオプションで2バイトフォーマット指示子%MVを指定すると,実行登録時に指定したマクロ変数名と引き継ぎ情報,ジョブ実行時に引き継いだマクロ変数名と引き継ぎ結果が参照できます。出力結果が複数ある場合は「,(コンマ)」で区切られて出力されます。出力世代が複数ある場合は改行されて出力されます。
ajsshowコマンドの出力例を次に示します。
ajsshow -F AJSROOT2 -g 2 -i "%MV" /net "AJS2ENV:/jp1_data/Job_Report","AJS2COM:c:\temp\test.exe" "AJS2ENV:/jp1_data/Job_Report","AJS2COM:c:\temp\test.exe" ajsshow -F AJSROOT2 -i "%MV" /net2 "AJS2ENV:/jp1_data2/Job△Report","AJS2COM:c:\temp\test2.exe"
ajsshowコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsshow」を参照してください。
なお,ユニット種別および状態によって,引き継ぎ結果の参照可否が異なります。ユニット種別および状態による引き継ぎ結果の参照可否を,次の表に示します。
ユニット種別 |
状態 |
参照可否 |
---|---|---|
ルートジョブネット |
未登録 |
× |
上記以外 |
○※1 |
|
ネストジョブネット |
− |
× |
ジョブ※2,※3 |
未登録 |
× |
未計画 |
× |
|
先行終了待ち |
× |
|
保留中 |
× |
|
キューイング |
× |
|
実行待ち |
× |
|
実行中 |
× |
|
正常終了 |
○ |
|
正常終了-偽 |
○ |
|
警告検出終了 |
○ |
|
異常検出終了 |
○ |
|
起動失敗 |
○ |
|
終了状態不明 |
○ |
|
強制終了 |
○ |
|
未実行終了 |
× |
|
計画未実行 |
× |
|
監視中断 |
○ |
|
閉塞 |
× |
- (凡例)
-
○:参照できる。
×:参照できない。
−:該当しない。
- 注※1
-
リモートジョブネットは対象外です。
- 注※2
-
次に示すジョブは対象外です。
・リモートジョブネット配下のジョブ
・サスペンド中に削除されたジョブ
・サスペンド中に追加されたジョブ(ただし,サスペンド解除後は対象)
- 注※3
-
ジョブ状態を変更したジョブは,変更後の状態に依存します。
マクロ変数を設定しているジョブを再実行する場合,前回実行時の引き継ぎ情報がそのまま使用されます。そのため,前回実行時の引き継ぎ結果を参照することによって,再実行するジョブに引き継がれる情報を事前に確認できます。
- 補足事項
-
次の場合,前回実行時に引き継がれた結果と異なる結果が表示されます。
-
引き継ぎ元の先行ジョブが再実行中の場合
その先行ジョブから引き継ぐ情報は表示されません。
-
引き継ぎ元の先行ジョブを再実行し,実行が終了した場合
その先行ジョブの再実行後の引き継ぎ情報が表示されます。
-
サスペンド中に引き継ぎ元の先行ジョブを削除した場合
その先行ジョブから引き継がれていた情報は表示されません。
-
ジョブネット中に,同名のマクロ変数を指定している引き継ぎ情報設定ジョブを複数定義している場合
関連線に関係なく,最後に実行された引き継ぎ情報設定ジョブによって設定された引き継ぎ情報が表示されます。
-
引き継ぎ情報設定ジョブに指定している正規表現を変更してから,その引き継ぎ情報設定ジョブを再実行し,実行が終了した場合
引き継ぎ情報設定ジョブの再実行によって,変更後の正規表現に従って設定された引き継ぎ情報が表示されます。
-
先行ジョブが前回実行時とは異なる標準出力ファイルを出力した状態で,引き継ぎ情報設定ジョブを再実行し,実行が終了した場合
引き継ぎ情報設定ジョブの再実行によって,再実行時の標準出力ファイルから設定された引き継ぎ情報が表示されます。
-
(3) マクロ変数の展開失敗時の状態設定
ジョブの実行時にマクロ変数の引き継ぎ情報の展開が失敗した場合,そのジョブの状態を「起動失敗」にするか,マクロ変数名を文字列として扱いそのままジョブネットを実行させるかを設定できます。
マクロ変数の引き継ぎ情報の展開が失敗した場合の状態は,環境設定パラメーターMACROCHANGEFAILで設定できます。
マクロ変数の引き継ぎ情報の展開が失敗した場合の状態の設定方法については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 6.2.10 マクロ変数の展開失敗時の動作の設定」(Windowsの場合),またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド 15.2.10 マクロ変数の展開失敗時の動作の設定」(UNIXの場合)を参照してください。
(4) マクロ変数の使用方法
マクロ変数の使用方法を次に示します。詳細については,それぞれの項目の参照先を参照してください。
項番 |
使用方法 |
参照先 |
---|---|---|
1 |
イベントジョブで受信したイベント情報を後続ユニットへ引き継ぐ |
|
2 |
ジョブ実行時の状況によって変わる情報を標準出力ファイルに出力して,後続ユニットへ引き継ぐ |
|
3 |
実行登録時にジョブネットに指定した値を,配下のユニットへ引き継ぐ |
マニュアル「JP1/Automatic Job Management System 3 導入ガイド 4.1.2 実行登録時のマクロ変数の指定」 |
(5) 注意事項
-
一つのルートジョブネット配下のマクロ変数名と引き継ぎ情報のサイズの合計が,4,096バイトを超えないようにしてください。マクロ変数名と引き継ぎ情報のサイズの合計が4,096バイトを超えた場合,超えた部分の情報が引き継がれなくなることがあります。なお,一つのルートジョブネット配下のマクロ変数名と引き継ぎ情報のサイズの合計は,次の方法で見積もってください。
-
ルートジョブネット配下のユニットで使用しているすべてのマクロ変数名を列挙する。
-
手順1で列挙したすべてのマクロ変数について,引き継ぐ情報の最大サイズを検討し,次の式でマクロ変数名と引き継ぎ情報のサイズの合計をそれぞれ算出する。
マクロ変数名のサイズ + 引き継ぎ情報の最大サイズ + 5(単位:バイト)
-
手順2で算出したすべての値を合計する。
-
-
一つのルートジョブネット配下に同じ名称のマクロ変数が複数ある場合,次の順番で有効になります。
-
ジョブネット中(起動条件中以外)のイベントジョブの引き継ぎ情報
-
起動条件中のイベントジョブの引き継ぎ情報
-
実行登録時の引き継ぎ情報
-
引き継ぎ情報設定ジョブで設定した引き継ぎ情報※
- 注※
-
一つのルートジョブネット配下に,同じ名称のマクロ変数を指定した引き継ぎ情報設定ジョブが複数ある場合,あとから実行した引き継ぎ情報設定ジョブの引き継ぎ情報が有効です。
一つのルートジョブネット配下には同じ名称のマクロ変数を指定しないことを推奨します。
-
-
JP1/AJS3 09-50以降で新たにマクロ変数を指定できるようになった定義項目にマクロ変数を指定しているユニットを,JP1/AJS3 - Managerのバージョンが09-50より前の環境で実行した場合,マクロ変数が展開されません。マクロ変数名がそのまま引き継ぎ情報として引き継がれます。
対象となる定義項目については,「(1) マクロ変数を指定できる定義項目」またはマニュアル「JP1/Automatic Job Management System 3 操作ガイド 12. ウィンドウとダイアログボックス」の各種定義用ダイアログボックスの説明を参照してください。
-
引き継ぎ情報は世代単位にマクロ変数名と値の情報を保持しており,異なる世代に情報を引き継ぐことはできません。そのため,引き継ぎ情報は,異なる世代で実行されるユニットに引き継ぐことはできません。また,異なる世代で実行されたユニットから引き継ぐこともできません。
異なる世代で実行されるユニットは次のとおりです。
-
ジョブネットコネクタの接続先のジョブネットとなるユニット(ルートジョブネットまたはプランニンググループ)
-
待ち合わせ対象ユニットが別のルートジョブネット配下のときの,待ち合わせ対象ユニット
-
-
リモートジョブネットを使用する場合,引き継ぎ情報は,リモートジョブネット配下のユニットに引き継ぐことはできません。また,リモートジョブネット配下のユニットから引き継ぐこともできません。