パスが存在するか確認する

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ジョブの構成の例 >

パスが存在するか確認する

この例では、 (ファイルまたはディレクトリへの)パスがオペレーティングシステム上に存在するか通知するジョブを作成する方法が説明されています。 この目的を達成するために、 ビルトイン関数と式関数の組み合わせを使用する必要があります。ジョブをブラウザーから URL にアクセスすることにより、需要に応じてトリガーするために、 Web サービスとして定義されます。 ジョブは、パスを引数として取り、 FlowForce Server が作動するオペレーティングシステム上に引数として与えたれたパスが存在するか通知する文字列を返します。

 

必要条件

必須のライセンス: FlowForce Server
FlowForce Server が構成された ネットワークアドレスとポートで動作していること (以下を参照: ネットワークアドレスとポートの設定)。
コンテナー の1つでパーミッションを有する FlowForce Server ユーザーアカウントを有していること (デフォルトでは、この例で使用されている /public コンテナーには、認証されたユーザーがアクセスすることができます)。

 

ジョブの作成

1.FlowForce Server にログオンし、新しいジョブの作成のパーミッションが与えられているコンテナーに移動します (この例は、デフォルトの/public コンテナーを使用しています)。
2. 「作成」をクリックし、「ジョブの作成」を選択します。
3.ジョブの名前を追加し、 (この例では、CheckPath) 任意でジョブの説明を追加します。

ExamplePathExists01

4.ジョブ入力パラメーターから、addをクリックし、 「パス」パラメーターを以下のように追加します。

ExamplePathExists02

5.builtin_function/system/shell/commandline 関数を呼び出す新規の実行ステップを追加し、ファイルの存在を確認するシェルコマンドを入力します。このステップの結果を、下に示されるように宣言してください (この例では、 output と呼びます)。

ExamplePathExists03

Windows では、パスが存在する場合、シェルコマンドは、 「1」 を出力し、パスが存在しない場合は、 「0」 を出力します。FlowForce Server は、 Unix システム上で作動しますが、 コマンドを必要に応じて調整してください。 コマンドは、 FlowForce 式 {path} を埋め込んでいることに注意してください。この式は、前のステップで定義されている入力パラメーターを参照しています。

6.「実行ステップ」 の下の add ボタンをクリックし、 「新規選択ステップ」を選択します。条件式として、 trim(content(stdout(output))) == '1' を入力します。 この式は、次のネストされた3つの関数から構成されます: stdoutcontent、および trim 。最初に、stdout 関数は、前のステップにより返された結果の標準出力を取得します。そして、 content 関数は、標準出力を文字列に変換します。最後に、trim 関数は、先頭と末尾のスペース、改行、改行文字を標準出力から削除します。結果は、等値演算子を使用して、「1」 と比較されます。 2つの値が等しいと、パスは存在します。それ以外の場合、パスは存在しません。
7.When 句の下に、 以下に示されるように実行ステップを追加します。この実行ステップは、パスが存在する場合返される文字列の値を構築するために builtin_function/system/compute-string 関数を呼び出します。値は、 FlowForce 式 {path} を埋め込んでいることに注意してください。 この式は前のステップで定義された入力パラメーターを参照しています。

ExamplePathExists04

8.それ以外の場合 句の下に、 以下に示されるように実行ステップを追加します。この実行ステップは、パスが存在しない場合返される文字列の値を構築するために builtin_function/system/compute-string 関数を呼び出します。 値は、FlowForce 式 {path} を埋め込んでいることに注意してください。この式は前のステップで定義された入力パラメーターを参照しています。

ExamplePathExists05

9.実行の結果で、 戻り値の値を「文字列」として宣言します。

helloworld04

10.サービスから 「このジョブを HTTP を介して利用可能にする」 チェックボックスをクリックして選択し、 CheckPath をサービス名として入力します (以下を参照: ジョブを Web サービスとして表示する  )。
11.「資格情報」から、既存の資格情報の記録を選択、 または、ローカルの資格情報を指定してください (以下を参照: 資格情報  )。
12.「保存」をクリックします。

 

ジョブの実行

ジョブをテストするには、FlowForce Server がデフォルトのホストとポート名で作動していると想定し、 http://127.0.0.1:4646/service/CheckPath  をブラウザーのアドレスバーに入力します。 構成ページ内で他のホストとポート設定を定義した場合、 (以下を参照: ネットワークアドレスとポートの設定 )、アドレスを必要に応じて変更してください。 Web サービスにアクセスするための資格情報を入力するようにプロンプトされた場合は、 FlowForce Server にログオンする資格情報と同じ資格情報を与えてください。

 

Internet Explorer を使用して、Web サービスとして FlowForce Server ジョブをテストする場合、 詳細設定 タブ内の「HTTP エラーメッセージを簡易表示する」 オプションを無効化する必要がある場合があります。

 

このジョブには引数が存在し、ブラウザー内の Web サービスにアクセスすると引数を与えるようにプロンプトされます。

ExamplePathExists06

ジョブの実行に成功すると、ブラウザーはジョブの出力を表示します。例:

 

Path C:\ exists.

 

ジョブが 「0」 以外の終了コードを返すと、ブラウザーは、「サーバー実行の失敗」 メッセージを表示します。 この場合、FlowForce Server 内のジョブのログをチェックして、エラーを確認してください (以下を参照: ジョブのログを確認する)


(C) 2019 Altova GmbH