- ジョブ管理
【JP1/AJS3】HULFTファイル転送をジョブネットの一部に! JP1との連携ポイント解説
HULFT のファイル転送をJP1/AJS3で一元管理する方法と、その設定時のポイントをご紹介します。
|
|
2026年3月6日、JP1×HULFT Squareのジョブ管理連携ソリューションが提供されました。
ソリューションでは、JP1とHULFT Square連携で課題となる「認証」や「タイムアウト」をクリアするテンプレートやスクリプトが用意されています。本記事では、実際にこれらを使用して動作確認を行った内容をご紹介します。
◎関連サイト
<株式会社セゾンテクノロジー>
<株式会社日立製作所>
\EAI/ETL技術者が執筆した下記ブログも合わせてご覧ください!/JP1とHULFT Squareの連携では、APIジョブの処理完了までステータスチェックのリトライを行い、取得したステータスを基に終了判定をします。しかし、JP1/AJS3単体ではこの実装が困難です。JP1/AJS3 for CSAを利用することで、1つのジョブ内で柔軟な終了判定が可能になります。
JP1とHULFT Squareを連携させる際、標準的なREST API呼び出しだけでは解決できない2つの課題があります。これをクリアするために、テンプレートやスクリプトが提供されています。
HULFT Square(Amazon API Gateway)の仕様により、REST API経由でスクリプトを実行する場合、実行時間が29秒を超えるとタイムアウトエラーが発生します。
そのため、リクエストヘッダーに「X-HSQ-Async: true」を指定して非同期実行を行う必要があります。しかし、非同期実行にするとAPIリクエストを受け付けた後、ジョブの完了を待たずにレスポンスが返されるため、「そのジョブが本当に成功したのか?」をJP1側で判断できません。
この対応のため、ジョブ実行後に実行状況を確認するためのポーリング用APIが必要です。今回のソリューションでは、HULFT Square側で終了判定スクリプトを組み込んだテンプレートが用意されており、JP1側ではそれを実行するスクリプトが提供されています。
HULFT Squareへのアクセスには、セキュアな2段階の認証プロセスが必要です。
1. ログイン :Login APIでアクセストークンを取得。
2. 実行用トークンの取得:取得したアクセストークンとリフレッシュトークンを用いて、
REST APIジョブを実行するためのアクセストークンを取得。
JP1/AJS3 for CSAでは2段階の認証設定をするGUIは提供されていません。そのため、JP1では一連の認証処理を行うシェルスクリプトが提供されています。そのスクリプトをJP1/AJS3 for CSAの定義画面で設定することにより、2段階の認証への対応が可能となります。
今回は、実際に提供されているテンプレートとスクリプトを使って実行してみました。
HULFT Squareで提供されているJP1連携テンプレートと、JP1で提供されているシェルスクリプトの連携フローは以下の通りです。個別のスクリプトの詳細については次章で説明します。
HULFT Squareでは非同期の問題を解決するために、ジョブ実行結果をCSVに出力し、そのCSVからステータスを判定するためのデータ連携テンプレート(アプリケーション)が提供されています。テンプレートをインストールし、プロジェクトにコピーすると以下のようなスクリプトが確認できます。
JP1_main_scriptは、JP1/AJS3で実行するスクリプトです。
このスクリプトは、実際に実行したいHULFT Squareのスクリプトを呼び出し、その実行結果をCSVに出力します。出力したCSVファイルは、終了判定で利用します。利用者は、JP1_main_script内の「call_subScript(スクリプト呼び出し処理)」に、実行したいスクリプトを指定します。
1.のJP1_main_scriptで実行したsubScriptが終了したかどうか、また終了している場合は、その結果を確認するためにJP1/AJS3で実行するスクリプトです。このスクリプトを実行して、終了判定を行います。
これらのプロジェクトをREST APIとして実行するためのAPIマネジメント設定は、HULFT Squareの情報を参考に設定してください。今回は、以下のエンドポイントURLになるように設定しています。
URLの形式
https://<お客様ドメイン名>.square.hulft.com/<プロファイル名>/<基本パス>/<リソースパス>
実行スクリプトのURL
https://<お客様ドメイン名>.square.hulft.com/jp1blog_Profile/jp1blog_hulft_execrestapi
終了判断用のポーリングスクリプトのURL
https://<お客様ドメイン名>.square.hulft.com/jp1blog_Profile/JP1BLOG_HULFT_CHECKRESTAPI
テンプレートの詳細は、こちら (新しいタブで外部サイトに遷移します)の「仕様書ダウンロード」と「インストール方法と使い方はこちら」で確認できます。
JP1ではHULFT Squareの連携用にシェルスクリプトが提供されています。
これらのスクリプトをJP1/AJS3 for CSAの定義画面で設定します。
| スクリプト名 | 用途 | 説明 |
|---|---|---|
| login_get_accesstoken.sh | 認証 | 2段階認証を行うスクリプトです。 |
| exec_restjob.sh | ジョブ実行 | 実行用スクリプト(JP1_main_script)を呼び出します。HULFT Squareで実行したいスクリプトが実行されます。 |
| check_restjob.sh | 終了判断 | 終了判断用のポーリングスクリプト(JP1_polling_script)を呼び出します。実行用スクリプトが実行中かどうかを確認します。 |
認証定義では、クラウド接続に使うユーザー名・パスワードなどの認証情報を登録します。
ここでは、HULFT Squareにログインするためのメールアドレスとパスワードを指定します。
| ID/ユーザー | ログインで使用するメールアドレス |
|---|---|
| セキュリティ情報/パスワード | ログインで使用するパスワード |
接続定義では、認証定義で設定した認証情報を使い、ログイン処理を行います。
ここでは、認証用のスクリプト(login_get_accesstoken.sh)を設定します。このスクリプトにより、2段階認証が行われて、ジョブ実行のためのアクセストークンが取得されます。
| 共通環境変数設定 | 実行時の環境変数 | リフレッシュトークンを設定 「REFRESH_TOKEN=リフレッシュトークン」 |
|---|---|---|
| 接続処理 | コマンドラインの指定有無 | する |
| コマンドライン | /path/login_get_accesstoken.sh @CSA(?CSAAIDINFO?)ASC@ @CSA(?CSAAPWDINFO?)ASC@ ?CSASUUID? | |
| 標準出力の格納 | 実行用アクセストークンを格納する変数 変数名「?CSACTOKEN?」となるように「TOKEN」を入力します。 |
<実行開始処理>
実行開始処理は、クラウドで実行するコマンドを設定します。
ここでは、ジョブ実行用のスクリプト(exec_restjob.sh)を指定します。
| コマンドライン | /Path/exec_restjob.sh ?CSAEHTTPTYPE? @CSA(?CSAEDOMAIN?)ASC@ @CSA(?CSAEPROFILE?)ASC@ @CSA(?CSAEJOBNAME?)ASC@ @CSA(?CSACTOKEN[0]?)ASC@ ?CSASUUID? |
|---|---|
| 標準出力の格納 | 実行IDを格納する変数 変数名「?CSAEEXECID?」となるように「EXECID」を入力します。 |
| 出力内容の判定(標準出力) | 「常に正常」を選択 |
<終了確認処理>
終了確認処理は、実行開始処理で実行したコマンドの終了確認処理を実施します。
ここでは、終了判断用スクリプト(check_restjob.sh)を設定します。
| 状態確認を設定 | 「する」を選択 |
|---|---|
| コマンドライン | /Path/check_restjob.sh ?CSAEHTTPTYPE? @CSA(?CSAEDOMAIN?)ASC@ @CSA(?CSAEPROFILE?)ASC@ @CSA(?CSAECHKJOBNAME?)ASC@ @CSA(?CSAEEXECID[0]?)ASC@ @CSA(?CSACTOKEN[0]?)ASC@ ?CSASUUID? |
| 標準出力の格納 | ポーリング結果を格納する変数 変数名「?CSAERESULT?」となるように「RESULT」を入力します。 |
「CSAERESULT」の値を基に、正常終了(NORMALEND)か実行中(RUNNING)かを判別します。
| 出力内容の判定(標準出力) | 「終了判定による判定」を選択 |
|---|---|
| 処理正常終了条件 | 変数:?CSAERESULT[0]? 値:NORMALEND |
| リトライ設定 | 「する」を選択 |
| リトライ条件の値 | RUNNING |
| 繰り返し間隔 | 1 |
| 繰り返し回数 | 20 |
JP1/AJS3 - Viewでは、JP1/AJS3 for CSAの定義をJP1/AJS3 - Viewのカスタムジョブとして登録します。登録したカスタムジョブの詳細定義情報に、REST APIジョブを実行するための値を入力します。
ここでは、前述の「実行スクリプトのURL」「終了判断用のポーリングスクリプトのURL」に含まれる、お客様ドメイン名、プロファイル名、REST APIジョブ名を各項目に指定しています。
| 項目 | 設定値 | 設定値の説明 |
|---|---|---|
| 認証定義名 | HULFT | 認証定義画面で設定した定義名 |
| HTTPメソッド名 | GET | RESTAPIジョブのHTTPメソッド(GET/POST等) |
| ドメイン名 | 環境に合わせて入力 | HULFT Squareのお客様ドメイン名 |
| プロファイル名 | jp1blog_Profile | プロファイル名 |
| 実行先REST APIジョブ名 | jp1blog_hulft_execrestapi | 実行先のREST APIジョブ名 |
| 結果確認先REST APIジョブ名 | JP1BLOG_HULFT_CHECKRESTAPI | 結果確認を行うREST APIジョブ名 |
JP1/AJS3 - ViewとHULFT Squareのそれぞれで実行結果を確認します。JP1/AJS3 - Viewでの正常終了し、
HULFT Squareでも実行した処理が問題なく終了していることが確認できました。
<JP1/AJS3 - Viewでの実行結果>
<HULFT Squareの実行結果>
今回の検証を通じて、HULFT SquareのテンプレートやJP1のスクリプトを活用することで、認証や非同期実行といった処理を一から作りこむ必要がなく、パラメータなど処理に合わせたカスタマイズのみで実行できることを確認しました。
今回、連携用のスクリプトが提供されていることで、HULFT Squareとの連携において導入のハードルは大きく下がったと思います。
一方で、処理のスクリプトである以上、エラー発生時のデバッグや問題の切り分けには工数がかかるという課題があります。今後は、これらのスクリプトで対応している処理をJP1/AJS3 for CSAのGUIに組み込むなど、ご利用いただくお客様により使いやすい改善を開発元に要望したいと思っています。
JP1/AJS3 for CSAとHULFT Squareの連携をご検討されている方は、弊社にお問い合わせください。
JP1/Automatic Job Management System 3(JP1/AJS3)13-00以降
JP1 Cloud Service/Job Management(JP1 CS ジョブ管理)02-20以降
JP1/Automatic Job Management System 3 for Cloud Service Applications(JP1/AJS3 for CSA)13-00以降
JP1/Automatic Job Management System 3 - View (JP1/AJS3 - View)13-00 以降
HULFT Square
|
|---|
2002年入社、Oracle DatabaseやWebFOCUSをサポート、2023年から
JP1製品のサポートを担当。2024年8月より本ブログ記事を担当することになりました。神戸在住。テーマパークが好きです。
HULFT のファイル転送をJP1/AJS3で一元管理する方法と、その設定時のポイントをご紹介します。
JP1/AJS3またはJP1 CS ジョブ管理をご利用中の皆様に向けて、「ジョブ分析」がジョブの全体像の可視化や運用効率・安定性向上に役立つか、具体的な活用シーンをご紹介します。
JP1 CSの概要からジョブ管理の基本操作、注意点を分かりやすく解説しています。JP1 CSに興味がある方や 導入を検討されている方は、本ブログを参考にJP1 CSについて理解を深めてください。