2.4.12 Web上の業務システムと連携する(HTTP接続ジョブを使ったジョブネットの定義例)
JP1/AJS3で構築された業務システムとWeb上の業務システムとを連携させるジョブネットの定義には,HTTP接続ジョブを使用します。
HTTP接続ジョブを使用すると,HTTPプロトコルでリクエストの送信およびレスポンスの受信ができます。クラウド上やWebサーバ上で公開されているWeb API(例えばREST API)を,JP1/AJS3で呼び出すことができます。
- 〈この項の構成〉
(1) HTTP接続ジョブを使ったジョブネットの定義例
「Web上に公開されているWeb APIから業務データを取得し,資料を作成する」というジョブネットを,HTTP接続ジョブを使って定義する例を次の図に示します。
|
(2) HTTP接続ジョブの定義内容
HTTP接続ジョブ固有の定義項目について説明します。
HTTP接続ジョブでは,HTTPリクエストを送信するために,リクエスト種別やリクエスト情報を記載するファイルを定義します。なお,JP1/AJS3 - ManagerとJP1/AJS3 - Agentのバージョンが12-50以降で,拡張モードを使用している場合,HTTPリクエストの送信時にURLパラメーターとメッセージボディを同時に送信できます。
HTTPリクエストの送信に使用する定義項目を次の表に示します。
項番 |
定義項目 |
内容 |
---|---|---|
1 |
リクエスト種別 |
Web APIへのリクエスト種別を指定します。指定できるリクエスト種別を次に示します。
|
2 |
接続設定ファイル名 |
Web APIを呼び出すためのHTTP接続に関する情報を設定した接続設定ファイルの名称を指定します。 |
3 |
送信情報ファイル名※1 |
Web APIを呼び出すHTTPリクエスト情報を設定した送信情報ファイルの名称を指定します。 |
4 |
送信情報ファイル名(URLパラメーター)※2 |
Web APIを呼び出すHTTPリクエスト情報の,URLパラメーターを設定した送信情報ファイルの名称を指定します。 |
5 |
送信情報ファイル名(メッセージボディ)※2 |
Web APIを呼び出すHTTPリクエスト情報の,メッセージボディを設定した送信情報ファイルの名称を指定します。 |
- 注※1
-
JP1/AJS3 - ManagerとJP1/AJS3 - Agentのバージョンが12-10以前の場合,または拡張モードを使用しない場合に指定するファイルです。
- 注※2
-
JP1/AJS3 - ManagerとJP1/AJS3 - Agentのバージョンが12-50以降で,拡張モードを使用する場合に指定するファイルです。
また,HTTPレスポンスを受信するためには,受信データを記述するファイル名や受信データの格納方式を定義します。
HTTPレスポンスの受信に使用する定義項目を次の表に示します。
項番 |
定義項目 |
内容 |
---|---|---|
1 |
ステータス格納ファイル名 |
Web APIから取得した受信データのHTTPステータスコードを記述させるステータス格納ファイルの名称を指定します。 |
2 |
受信データ格納方式 |
Web APIから取得した受信データのヘッダーとボディを同じファイルに出力するか,別のファイルに出力するかを指定します。 ヘッダーとボディを同じファイルに出力する場合,受信データのボディ部分も受信ヘッダー格納ファイルに記述されます。 |
3 |
受信ヘッダー格納ファイル名 |
Web APIから取得した受信データのヘッダー部分を記述させる受信ヘッダー格納ファイルの名称を指定します。 |
4 |
受信ボディ格納ファイル名 |
Web APIから取得した受信データのボディ部分を記述させる受信ボディ格納ファイルの名称を指定します。 |
なお,HTTPレスポンスでチャンク形式のデータを受信する場合,データをデコードしてファイルに出力できます。チャンク形式のデータをデコードしたい場合は,環境設定パラメーターTRANSFER_DECODINGに「y」を指定してください。環境設定パラメーターTRANSFER_DECODINGの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.14.2(1) TRANSFER_DECODING」を参照してください。
HTTP接続ジョブで使用するファイルについては,「付録C HTTP接続ジョブで使用するファイル」を参照してください。
また,受信するHTTPステータスコードの値ごとに,ジョブの終了コードを0〜9で指定できます。終了コードを指定しない場合はデフォルトの終了コードになります。ジョブの終了コード一つに対して,複数のHTTPステータスコードを指定できます。ただし,一つのHTTPステータスコードを複数のジョブの終了コードに対して指定することはできません。ジョブの終了コードの詳細については,「7.11.3 ジョブの終了コードを確認する」を参照してください。
(3) HTTP接続ジョブが設定するHTTPヘッダー
HTTP接続ジョブでは,リクエスト種別に応じてHTTPヘッダーが自動的に設定されます。自動的に設定されるHTTPヘッダーを次の表に示します。
項番 |
リクエスト種別 |
HTTPヘッダー |
設定内容 |
---|---|---|---|
1 |
GET |
User-Agent |
「JP1/AJS3 11-00 HTTP Connection Job」固定です。 |
2 |
Host |
接続設定ファイルで指定した内容を基に,接続先のホスト名およびポート番号を設定します。 |
|
3 |
Accept |
「*/*」固定です。 |
|
4 |
|
User-Agent |
「JP1/AJS3 11-00 HTTP Connection Job」固定です。 |
5 |
Host |
接続設定ファイルで指定した内容を基に,接続先のホスト名およびポート番号を設定します。 |
|
6 |
Accept |
「*/*」固定です。 |
|
7 |
Content-Length |
HTTPボディのデータサイズを算出し,設定します。 送信情報ファイルが指定されていない,または送信情報ファイルの中身が存在しない場合は,このヘッダーは設定されません。 |
|
8 |
Expect |
次の条件をどちらも満たす場合に,「100-continue」を設定します。
|
HTTP接続ジョブで自動的に設定するHTTPヘッダーに追加でヘッダーを設定したい場合は,接続設定ファイルの「Header=追加ヘッダー」で指定します。詳細については,「付録C.1 接続設定ファイル」を参照してください。
(4) HTTP接続ジョブのセキュリティ対策について
HTTP接続ジョブで使用するHTTPS通信とサーバ認証について説明します。
(a) HTTPS通信
HTTP接続ジョブは,HTTPS通信ができます。HTTP接続ジョブのHTTPSの対応について,次の表に示します。
項番 |
項目 |
内容 |
---|---|---|
1 |
通信プロトコル |
TLSv1.0,TLSv1.1,TLSv1.2,およびTLSv1.3に対応しています。 |
2 |
サーバ認証 |
対応しています。 |
3 |
クライアント認証 |
対応していません。 |
4 |
ホスト名確認 |
対応しています。 接続設定ファイルのURLに指定されたホスト名と,サーバから返却されたサーバ証明書に含まれるCN(Common Name)またはSAN(subject Alt Name)が一致するかどうかを検証します。 |
5 |
証明書失効リスト確認 |
対応しています。 証明書の失効リストを確認する場合,接続設定ファイルで証明書失効リストファイル名を指定する必要があります。 |
接続設定ファイルの詳細については,「付録C.1 接続設定ファイル」を参照してください。
(b) サーバ認証
サーバ認証には,Basic認証を使用できます。
また,接続設定ファイルの追加ヘッダーを設定すれば,Basic認証以外の認証方式も使用できます。
接続設定ファイルの詳細については,「付録C.1 接続設定ファイル」を参照してください。
(5) HTTP接続ジョブの出力情報
ジョブの実行終了時に,HTTP接続ジョブが標準出力ファイルに出力する情報を次に示します。
Http-Status-Code=HTTPステータスの値※1 Http-Status-File=ステータス格納ファイル名 Http-Response-Header=受信ヘッダー格納ファイル名 Http-Response-Body=受信ボディ格納ファイル名※2
- 注※1
-
HTTPステータスコードが1以上の場合は,HTTPステータスが出力されます。HTTPステータスコードが0以下の場合は,JP1/AJS3が設定する保守情報を出力します。
- 注※2
-
HTTP接続ジョブの定義項目の受信データ格納方式で,ヘッダーとボディを同じファイルに出力すると指定した場合,「Http-Response-Body=」だけ出力され,「受信ボディ格納ファイル名」は出力されません。
- 補足事項
-
-
標準出力ファイルに出力した情報は,引き継ぎ情報設定ジョブを使用し,後続ジョブに任意の情報を引き継くことができます。
-
HTTP接続ジョブが標準出力ファイルに出力する情報は,終了コードに関係なく必ず4行出力されます。HTTP接続ジョブが異常終了すると,値(「=」以降の値)が出力されない場合があります。
-
(6) 注意事項
-
HTTP接続ジョブが実行ホストとして指定できるマネージャーホストおよびエージェントホストのOSは,WindowsとLinuxだけです。
-
HTTP接続ジョブが強制終了またはタイムアウトによって異常終了した場合は,ジョブ自体は終了状態になりますが,Web APIから実行した処理は終了されません。Web APIから実行した処理も取り消したい場合は,APIの仕様に従って取り消してください。
-
HTTP接続ジョブで使用する次のファイルに,セキュリティ情報が含まれる場合は,ユーザー責任で管理するようにしてください。
-
接続設定ファイル
-
送信情報ファイル
-
受信ヘッダー格納ファイル
-
受信ボディ格納ファイル
-