スケジュールジョブを運用ツールなどから呼び出すことはできますか?
スケジュールジョブは便利なんだけど、運用ツールから呼び出せたらより便利になるのにな・・・。何か方法はないかな?
WebFOCUSバージョン |
9.0.3 |
スケジュールジョブとは
WebFOCUSの機能の1つで「ReportCaster」を使用して作成する、WebFOCUSのコンテンツ(レポートやグラフ)を定期的に実行するためのジョブです。
通常、スケジュールジョブはWebFOCUS内で管理/実行されますが、WebFOCUSのプロシジャ(.fex)を使用することで、外部から呼び出すことが可能です。
活用シーン
- テーブルに特定のレコードが登録されたら、WebFOCUSのレポートを配信したい
- テーブルのデータが登録/更新/削除されたら、履歴管理としてWebFOCUSのレポートを任意のディレクトリに出力したい
- 他システムの処理が終わったら、WebFOCUSのレポートを任意のディレクトリに出力したい
WebFOCUSのスケジュールジョブを実行するきっかけ(外的要因)の判断は、WebFOCUSとして機能を有していないため、運用ツール等の利用が必要です。
実装方法
実装にあたっては、スケジュールジョブ、スケジュールジョブから実行されるコンテンツの他に以下3つのファイルが必要です。
ファイル名 | 拡張子 | 役割 |
---|---|---|
バッチファイル | .bat | ReportCasterで作成したスケジュールジョブの呼び出し |
FOCUSスクリプトファイル | .t3i | バッチファイルから実行されるプロシジャの呼び出し |
プロシジャ | .fex | 外部ツールから実行されるファイルで、FOCUSスクリプトファイルの呼び出し |
各ファイルは以下の流れで実行されます。
外部ツール -> バッチファイル -> FOCUSスクリプトファイル -> プロシジャ
バッチファイル
構文
cd Drive:\current_directory
Drive:\ibi\srv90\wfs\bin\edastart -f Drive:\ibi\apps\directory\t3i_filename.t3i
サンプル
cd C:\ibi\apps\rcjob
C:\ibi\srv90\wfs\bin\edastart -f C:\ibi\apps\rcjob\dstrun01.t3i
FOCUSスクリプトファイル
構文
%connect
%begin
EX Drive:\ibi\apps\directory\fex_filename.fex
%end
%disconnect
%stop_server
サンプル
%connect
%begin
EX C:\ibi\apps\rcjob\dstrun01.fex
%end
%disconnect
%stop_server
プロシジャ
構文
-SET &var_name=DSTRUN(
– 'srv_userid’,srv_userid_length,
srv_userid(必須)
スケジュール権限を持つ Report Caster で有効なユーザ ID です。
– 'srv_userpass’,srv_userpass_length,
srv_userpass(必須)
srv_userid のパスワードです。
Report Caster のリポジトリテーブルのユーザ情報とマッチする必要があります。
– 'hostname_port’,hostname_port_length,
hostname_port(必須)
Web サーバのポート番号を含むホスト名、または IP アドレスとコンテキストパスです。
80 番の場合はポート番号は省略可能です。
例:サーバ名/ibi_apps:ibi_apps
– 'scheduleid’,scheduleid_length,
scheduleid(必須)
スケジュールジョブを特定する一意の ID です。
– 'jobdesc’,jobdesc_length,
jobdesc(場合に応じて必須)
スケジュールジョブに与えた一意のジョブの名前です。
スケジュール ID が指定されていない場合に必要です。
– priority,
priority(必須)
実行するスケジュールジョブの優先度です。
1:Highest priority
2:Class 2 priority
3:Class 3 priority
4:Class 4 priority
5:Lowest priority
– 'owner’,user_length,
owner(必須)
スケジュールジョブを実行するオーナーの ID です。
引用符、&、半角スペースは不可。最初の 1 文字はローマ字である必要があります。
– 'parm’,parm_length,
parm(場合に応じて必須)
スケジュールジョブに受け渡すパラメータです。
1 つのパラメータに 1 つの値だけ渡すことが可能です。
– 'httpuser/pswd’,httpuser/pswd_length,
httpuser/pswd(場合に応じて必須)
Web サーバのユーザ ID とパスワードです。
– returncode’I4′);
returncode(必須)
DSTRUN を実行した結果のリターンコードです。
成功時にはゼロを返します。I4 で固定です。
サンプル
-SET &SUBERR=DSTRUN(
– 'admin’,5,
– 'admin’,5,’
– localhost/ibi_apps:ibi_apps’,28,
– 'S4a95d09cs993es4c5fs892fs652d463672b4’,37,
– ' ',0,
– 3,
– 'admin’,5,
– 'COUNTRY=JAPAN’,13,
– ' ',0,
– 'I4’);
スケジュールジョブが外部ツールからも呼び出せることがわかったかな?
これにより、より活用しやすくなるね!!