はじめに
この記事では、指定したファイルがSecure Agent上に存在しているかをチェックする方法を確認します。XMLファイルを対象にチェックする場合、その他のタイプのファイルも含めてチェックする場合とで実装が異なる点に注意が必要です。
なお、この記事は次の記事の内容を理解していることを前提としています。
- はじめてCAIを使う際に
- プロセスの作成と実行(匿名認証と基本認証)
- プロセス実行環境の切り替え(Secure Agent環境での実行)
- 割り当てステップと、各種変数フィールドの利用
- OSコマンドの実行
XMLファイルの存在チェック
CAIプロセスの作成
次の手順では、入力フィールドとして指定されたXMLファイルがSecure Agent実行環境上に存在しているかをチェックするCAIプロセスの作成手順を確認しています。
-
CAIプロセスを次の設定で作成します。
- 名前を recipe-psa-functionFileExistCheck とする
- 匿名アクセス を許可する
- Secure Agent にデプロイする
-
入力フィールド input を タイプ=テキスト として定義します。
-
出力フィールド output を タイプ=テキスト として定義します。
-
割り当てステップを追加して、出力フィールド output に 計算式 として
fn:doc-available($input.input)
を指定します。
CAIプロセスの実行
実行すると、存在するファイルパス・存在しないファイルパスを指定した場合で動作が異なることを確認できると思います。
curl -k https://localhost:7443/process-engine/public/rt/recipe-psa-functionFileExistCheck \
-H 'Content-Type: application/json' \
-d '{"input": "file:///opt/infaUSW5/ff/cataloooooooog.xml"}'
//実行結果
{"ouptput":"false"}
curl -k https://localhost:7443/process-engine/public/rt/recipe-psa-functionFileExistCheck \
-H 'Content-Type: application/json' \
-d '{"input": "file:///opt/infaUSW5/ff/catalog.xml"}'
//実行結果
{"ouptput":"true"}
XMLファイル以外の存在チェック
CAIプロセスの作成
前述したCAIプロセスで利用していた fn:doc-available($input.input)
はXMLファイルのみを対象に検査が可能な関数です。XMLファイル以外も含めたファイルの存在をチェックする関数は残念ながら用意されていないようです。
このセクションではOSコマンドの実行で紹介したOSコマンドを実行する方法を利用してファイルの存在チェックをする処理を作ってみます。
次の手順では、入力フィールドとして指定されたファイルがSecure Agent実行環境上に存在しているかを、OSコマンドを用いてチェックするCAIプロセスを作成しています。
-
CAIプロセスを次の設定で作成します。
- 名称を recipe-psa-functionFileExistCheckOScmd とする
- 匿名アクセス を許可する
- Secure Agent にデプロイする
-
入力フィールド input を タイプ=テキスト として定義します。
-
出力フィールド output を タイプ=テキスト として定義します。
-
サービスステップを選択して、シェルコマンドを実行する設定としてします。 Command には 計算式 として
"ls " || $input.input
を指定します。Working Directory には Secure Agent 実行ユーザーのホームディレクトリを指定します。
-
割り当てステップを選択して、出力フィールド output に コンテンツ として Response Code を指定します。
CAIプロセスの実行
実行すると、存在するファイルパス・存在しないファイルパスを指定した場合で動作が異なることを確認できると思います。
curl -k https://localhost:7443/process-engine/public/rt/recipe-psa-functionFileExistCheckOScmd \
-H 'Content-Type: application/json' \
-d '{"input": "/opt/infaUSW5/ff/cataloooooooog.xml"}
//実行結果
{"output":"2"}
※lsの実行結果で 2 はファイルが存在しないことを示す
curl -k https://localhost:7443/process-engine/public/rt/recipe-psa-functionFileExistCheckOScmd \
-H 'Content-Type: application/json' \
-d '{"input": "/opt/infaUSW5/ff/catalog.xml"}'
//実行結果
{"output":"0"}
※lsの実行結果で 0 はファイルが存在していることを示す