8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ジョブ管理ツールとAPIを活用したスクリプト自動化の手法

Last updated at Posted at 2025-12-16

はじめに

こんにちは、upamatです。

HULFT Squareは、企業のデータ連携を加速するiPaaSです。データ連携はスクリプトを実行することで行います。

HULFT Squareでは、作成したスクリプトの自動実行ができますが、データ連携部分だけでなく全体の管理をしたい場合、ジョブ管理ツールの使用が一般的です。

今回は、ジョブ管理ツールからHULFT Squareのスクリプトを呼び出す方法をご紹介します。

HULFT SquareではAPIマネジメントの機能を使用して実現します。一般的に外部からHULFT Squareのスクリプトを呼び出す際の注意点についてもご紹介します。

ジョブ管理ツールとは

ジョブ管理ツールとは、コンピュータで行う一連の処理(ジョブ)の自動実行、スケジュール設定、監視、制御を行うソフトウェアで、「ジョブスケジューラ」とも呼ばれます。定型業務の自動化による運用負荷軽減や人的ミス防止に役立ちます。

複雑なジョブネットの管理、異常時の自動通知、ログ保存、複数サーバーにまたがる処理の一元管理などが主な機能です。

HULFT SquareのAPIマネジメントとは

セゾンテクノロジーのすぎもんの記事内(こちら:記事リンク)でご紹介しておりますのでご参照ください。

今回やること

APIマネジメントを使用して実行したい処理を公開します。ジョブ管理ツールの代わりに、Postmanを使用してAPIを発行し、HULFT Squareのスクリプトを実行します。Postmanではジョブの実行結果も受け取り、スクリプトの結果を把握できるようにします。

検証の流れ

  1. HULFT Squareのアプリケーションのインストール
  2. ジョブ管理ツールから実行するスクリプトの作成
  3. HULFT SquareのAPIプロジェクトを作成
  4. HULFT SquareのAPIクライアントを作成
  5. HULFT SquareのAPIジョブの作成、HTTP RESTリクエストURLの取得
  6. PostmanからAPIリクエストしスクリプト実行の指示
  7. PostmanからAPIリクエストしスクリプト実行結果を取得

1)HULFT Squareのアプリケーションのインストール

HULFT Squareではアプリケーションを提供しており、ご契約後、「App Square」からインストールすることにより、あらかじめ作成されたスクリプトを再利用することができます。

2025/12/17現在、ジョブ実行のアプリケーションとして以下の2つが公開されています。

  • Fujitsu Workload Operations Integrator連携アプリケーション
  • JP1連携アプリケーション

今回は、「Fujitsu Workload Operations Integrator連携アプリケーション」をインストールし、解説します。

image.png

2)ジョブ管理ツールから実行するスクリプトの作成

インストール後、同梱されている3つのスクリプトを任意のプロジェクトにコピーします。

image.png
image.png

コピーしたスクリプトは以下を編集して使用します。

スクリプト名: Workload Operations Integrator_mainScript

  • スクリプト変数(R_storagePass)に一時ファイル格納先フォルダを指定します。
    今回は「/ワークスペース名/tmp」を指定。
    ※HULFT Squareのストレージで事前に上記「tmp」を作成しておきます。

  • 「call_subScript」のコンポーネントを開き、完了を押下します。

注意点
スクリプトをコピーした場合は、必ずスクリプト呼び出しコンポーネントを開き、完了を押下することが必要です。

スクリプト名: Workload Operations Integrator_pollingScript

  • スクリプト変数(R_storagePass)に一時ファイル格納先フォルダを指定します。
    今回は「/ワークスペース名/tmp」を指定。

各スクリプトはそのまま利用できますが、今回はスクリプトの内容について見ておきたいと思います。

【Workload Operations Integrator_subScript】

image.png

このスクリプトに実行する処理を作成します。スクリプトのメモに記載がありますが、赤い枠内に実行したい処理を作成します。今回は、このまま「待機」のコンポーネントにしておきます。

なお、このスクリプトでは例外監視のコンポーネント(try_catch)があり、実行したい処理に異常があった場合、メッセージコードを返し、例外通知で異常終了するようになっています。

【Workload Operations Integrator_mainScript】

image.png

このスクリプトが実際にPostmanからAPIリクエストを受けて実行されます。スクリプトは以下のような流れになっており、ポイント(スクリプトで考慮されている点)を補足していきます。

  1. 外部アプリから受け取った値をスクリプト変数に格納
    この時、スクリプトの実行IDもスクリプト変数に格納
    ※実行IDは一意のIDとなる
  2. pidファイルの作成
    実行中はpidファイルを作成し、スクリプトが実行中かを判断するために使用
  3. subScriptを呼び出し処理を実行
    《subScript成功時》
  4. 実行結果をCSVファイルへ一時ログとして出力
  5. pidファイルを削除しスクリプト終了
    《subScript異常時》
  6. 実行結果をCSVファイルへ一時ログとして出力
  7. pidファイルを削除しスクリプト終了

ポイント
実行中はpidファイルを作成します。この後実行する監視スクリプト(pollingScript)はこのpidファイルをもとにスクリプトが実行中かを判断しています。

【Workload Operations Integrator_polliongScript】

image.png

このスクリプトは、mainscriptで実行したスクリプトの実行結果を確認します。実行中の場合は、処理が完了するまで間隔をあけて再実行し、スクリプトの実行結果が取得できるまでループで実行する必要があります。

スクリプトは以下のような流れになっており、ポイント(スクリプトで考慮されている点)を補足していきます。

  1. Postmanから受け取った実行IDを変数にセットします。
  2. 実行IDによりpidファイルを確認し、実行中かの判断を行い、条件分岐で実行中の場合と実行完了時で処理を分けています。

《実行中の場合(pidファイルがある場合)》
(conditionのフロー)
3. 実行中であることをXMLファイルに出力します。
4. XMLファイルを読込、出力スクリプト変数にデータを格納し、XMLファイルを削除

《実行完了時の場合(pidファイルがない場合)》
3. 結果ファイル(CSV)を読込み、XMLファイルに実行結果を出力します。
4. 結果ファイル(CSV)を削除
5. XMLファイルを読込、出力スクリプト変数にデータを格納し、XMLファイルを削除

ポイント
結果ファイルは処理毎に作成されていきますが、監視スクリプト(pollingScript)で実行結果を確認でき次第、結果ファイルを削除するため、ファイルが溜まっていくことはありません。

3)HULFT SquareのAPIプロジェクトを作成

APIマネジメントを任意の名前で作成し、以下のように設定を行います。
APIプロジェクト

  • 名前:任意
  • 基本パス:任意(今回はV100)

image.png

リソースは、「mainscript」と「pollingscript」を追加。
メソッドは「POST」をそれぞれのリソースに追加し、以下の設定を行います。

APIプロジェクト-リソース(/mainscript)

  • 実行スクリプト
    • プロジェクト:スクリプトをコピーした先のプロジェクトを指定
    • バージョン:基本は最新バージョン
    • スクリプト:コピーしたmainScriptを指定
  • リクエスト設定
    • リクエスト本文:JSON - I_value
  • レスポンス設定
    • テキスト - JSON - { "execution_id": "${execId}", "result_status": "${resultStatus}" }

image.png

APIプロジェクト-リソース(/pollingscript)

  • 実行スクリプト
    • プロジェクト:スクリプトをコピーした先のプロジェクトを指定
    • バージョン:基本は最新バージョン
    • スクリプト:コピーしたpollingScriptを指定
  • リクエスト設定
    • リクエスト本文:JSON - I_requestBody
  • レスポンス設定
    • 変数 - JSON - O_responseBody

image.png

4)HULFT SquareのAPIクライアントを作成

APIクライアントを任意の名前で作成し、以下の設定をします。

APIクライアント

  • 名前:任意
  • メンバー:APIリクエストを行うユーザー
  • IP許可リスト:任意

image.png

5)HULFT SquareのAPIジョブの作成、HTTP RESTリクエストURLの取得

REST APIジョブを任意の名前で作成し、以下の設定を行います。

REST APIジョブ

  • ワークスペース名:任意
  • APIプロジェクト:作成したものを指定
  • APIプロジェクトバージョン:基本は最新を指定
  • プロファイル:任意
  • APIクライアント:作成したものを指定
  • スクリプト実行のためのサービス:任意

image.png
image.png
image.png

作成したREST APIジョブを開くと画面下部にAPIリクエスト時にアクセスするURL(エンドポイント)を取得することができます。
image.png

6)PostmanからAPIリクエストしスクリプト実行の指示

画面右上より個人設定を開き、アクセストークンを取得。
image.png

image.png

Postmanに以下の設定をします。

  • メソッド:POST
  • URL:REST APIジョブのmainscriptのエンドポイント
  • 認可
    • 認可タイプ:Bearerトークン
    • トークン:5)で取得したアクセストークン
  • ヘッダー
    • キー:X-HSQ-Async
    • 値:true
  • ボディ:
    {
      "value1": "{test}",
      "value2": "{テスト}",
      "value3": "{テスト}"
    }
    
※ボディはリクエスト時に値をスクリプトに渡したい場合に指定します。特に渡す値がない場合は、「なし」でも問題ありません。

image.png
image.png
image.png

上記設定で「送信」を押下し、リクエスト実行。Postmanではhttpステータスコードは200となり、レスポンスボディにJSON形式で実行ID(execId)が返されます。
image.png

ポイント
この実行IDをもとにpollingscriptでスクリプト実行結果を確認します。

また、スクリプトを実行するとスクリプト変数(R_storagePass)に指定したHULFT Squareのストレージに結果ファイルが出力されていることがわかります。

image.png

7)PostmanからAPIリクエストしスクリプト実行結果を取得

Postmanに以下の設定をします。

メソッド:POST
URL:REST APIジョブのpollingscriptのエンドポイント
認可
認可タイプ:Bearerトークン
トークン:5)で取得したアクセストークン
ボディ:

  {
    "execution_id": "{6)のレスポンスボディで取得した実行ID}"
    }

image.png

ポイント
ボディはどの処理の実行結果を確認するのか特定するため、実行IDが必須です。

上記設定で「送信」を押下し、リクエスト実行。Postmanではhttpステータスコードは200となり、レスポンスボディにJSON形式でスクリプトの実行結果が返されます。

image.png

なお、スクリプト実行中、および異常時は以下のようなJSON形式の実行結果が返されます。

《スクリプト実行中》

statusが"Processing"となりendtimeに値は入りません。
httpステータスコードは200となります。
image.png

《スクリプト異常時》

statusが"-1"となりmessageCode、endtimeに結果が入ります。
この際、httpステータスコードは200となります。
image.png

最後に

今回はジョブ管理ツールから呼び出す際のHULFT Square側の動作を確認しました。現在、HULFT Squareのジョブ実行が可能なジョブ管理ツールとしては、以下の2製品のアプリケーションを提供しており、この2製品においては、Postmanで実行している箇所をGUIで管理、および自動実行も可能です。

  • Fujitsu Workload Operations Integrator
  • JP1

ご覧いただいた通り、HULFT Squareのスクリプトを外部から実行する場合は、スクリプト実行の指示、および実行結果確認の2回のAPIリクエストを行うことが多いです。

今回紹介したアプリケーションを使用することで、複数のスクリプトを同時実行することも可能です。pidファイルは処理ごとに作成されるため、スクリプト同士で影響を与えることもありません。

また、結果ファイルの出力先もスクリプト毎になるため、同時実行されることによる結果ファイルへの同時書込が行われないことも考慮されており、その結果ファイルもpollingscript実行後に削除されるため、ファイル数が増えていくこともありません。

最後までお付き合いいただきありがとうございます。皆様の何かの手助けになれば幸いです。

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?