11
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?

はじめに

この記事では、指定したファイルがSecure Agent上に存在しているかをチェックする方法を確認します。XMLファイルを対象にチェックする場合、その他のタイプのファイルも含めてチェックする場合とで実装が異なる点に注意が必要です。

なお、この記事は次の記事の内容を理解していることを前提としています。

XMLファイルの存在チェック

CAIプロセスの作成

次の手順では、入力フィールドとして指定されたXMLファイルがSecure Agent実行環境上に存在しているかをチェックするCAIプロセスの作成手順を確認しています。

  1. CAIプロセスを次の設定で作成します。

    • 名前を recipe-psa-functionFileExistCheck とする
    • 匿名アクセス を許可する
    • Secure Agent にデプロイする
  2. 入力フィールド inputタイプ=テキスト として定義します。

  3. 出力フィールド outputタイプ=テキスト として定義します。

  4. 割り当てステップを追加して、出力フィールド output計算式 として fn:doc-available($input.input) を指定します。
    image.png

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プロセスを作成しています。

  1. CAIプロセスを次の設定で作成します。

    • 名称を recipe-psa-functionFileExistCheckOScmd とする
    • 匿名アクセス を許可する
    • Secure Agent にデプロイする
  2. 入力フィールド inputタイプ=テキスト として定義します。

  3. 出力フィールド outputタイプ=テキスト として定義します。

  4. CAIプロセスが次の順に実行されるように各種ステップを追加します。
    image.png

  5. サービスステップを選択して、シェルコマンドを実行する設定としてします。 Command には 計算式 として "ls " || $input.input を指定します。Working Directory には Secure Agent 実行ユーザーのホームディレクトリを指定します。
    image.png

  6. 割り当てステップを選択して、出力フィールド outputコンテンツ として Response Code を指定します。
    image.png

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 はファイルが存在していることを示す

参照

11
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
11
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?