メインコンテンツまでスキップ

ワークフローの承認時にオンプレミスのファイルサーバにファイルを保存する

後処理の業務ロジックを利用して、承認した案件でアップロードされているファイルをオンプレミスのファイルサーバに保存する方法を解説します。

概要

このチュートリアルでは、承認した案件でアップロードされているファイルをオンプレミスのファイルサーバに保存するワークフローを作成します。
後処理の業務ロジック内で、オンプレミス連携タスクを利用することでオンプレミスのファイルサーバとの連携を実現します。

事前準備

注記

「Accel-Mart Quick システム管理者」ロールを持つユーザで実施してください。

環境設定を行う」の手順に従ってオンプレミス連携エージェントの環境設定を行ってください。
データソース設定についてはデータソース種別「ファイル」の設定を行ってください。

ワークフローの作成

注記

「Accel-Mart Quick アプリケーション管理者」ロールを持つユーザで実施してください。

テンプレートを利用せずに簡単なフォームを作成する」を参考に、ワークフローを作成してください。 作成するルート定義とフォームは以下の通りです。

作成するルート定義

ノード名処理対象者
申請Accel-Mart Quick アプリケーション管理者
承認申請者

作成するフォーム

ラベル・フィールド識別名フィールド識別IDアイテム名
品名name文字列
金額price数値
購入日date日付
領収書receiptファイルアップロード

業務ロジックの作成

ワークフローでアップロードされているファイルを取得し、オンプレミスのファイルサーバに保存する業務ロジックを作成します。
作成する業務ロジックでは、以下の処理を行います。

  • 「ファイルアップロード情報取得」タスクを用いて、申請時にアップロードされたファイルの一覧を取得します。
  • 再度「ファイルアップロード情報取得」タスクを用いて、取得したファイル一覧の各ファイルの情報を取得します。
  • オンプレミス連携タスクの「ファイル出力(バイナリ)」を用いて、ファイルをオンプレミスのファイルサーバに出力します。
作成する業務ロジック

作成する業務ロジック

後処理の業務ロジックを新規作成する

  1. 「IM-BIS-フロー編集」画面の「業務ロジック」をクリックします。

    「IM-BIS-フロー編集」

    ヒント

    「業務ロジック」が表示されない場合は、「定義の反映」をクリックしてください。
    また、フォームを編集した場合も必ず「定義の反映」を実行してください。

  2. 「業務ロジック」画面が表示されます。

  3. 「後処理」の「新規作成」ボタンをクリックし、「業務ロジック登録 - 後処理」画面を開きます。

    「基本設定 - 後処理」

  4. 業務ロジック名を入力し、対象ノードを選択します。 今回は、「承認」ノードでの承認時にのみ業務ロジックを実行するようにしたいので、「承認」にのみチェックを入れます。
    対象ノード選択後、「登録」ボタンをクリックします。

    「業務ロジック登録 - 後処理」

  5. 「ロジックフロー定義編集」画面が表示されます。

    「ロジックフロー定義編集」

    備考

    作成される業務ロジックについて、詳細は「後処理(ワークフロー)」を参照してください。

定数を追加する

業務ロジックで使用する定数を追加します。

  1. 「ロジックフロー定義編集」画面上部、ヘッダ内の「定数設定」をクリックします。

    「ロジックフロー定義編集」

  2. 「定数設定」ダイアログが表示されます。「定数を追加」をクリックします。

    「定数設定」

  3. 下記の定数を追加します。

    定数ID定数値説明
    filePathチュートリアル_ファイル連携/案件番号/ファイル名ファイルの保存先パスとして使用する文字列です。申請された案件の案件番号、アップロードされたファイル名に置換して使用します。
    matterNumberString案件番号定数filePath案件番号という文字列を置換するために使用します。
    fileNameStringファイル名定数filePathファイル名という文字列を置換するために使用します。

タスクを配置する

業務ロジックで使用するタスクを配置します。以下の図のように、タスクをつなぎ合わせてください。
今回は、初期設定されている分岐のうち、「分岐(承認)」しか使用しないため、不要な分岐は削除しています。

タスクの配置

使用するタスクは以下の通りです。

備考

タスクを配置する詳しい操作方法は「エレメントを配置する 」を参照してください。

タスクの固有設定を行う

配置した各タスクの固有設定を行います。

  1. 「繰り返し開始(im_startLoop1)」タスクをクリックし、タスク固有設定の「繰り返し対象」の「選択」をクリックします。

    タスクの配置

  2. 「im_bisFileUpload1」を選択して「決定」ボタンをクリックします。

    タスクの配置

  3. 「ファイル出力(バイナリ)(im_writeBinaryAgent1)」タスクをクリックし、タスク固有設定の「データソース」の「検索」をクリックします。

    タスクの配置

  4. 事前準備」で登録した、ファイルの保存先となるデータソースを選択し、「決定」ボタンをクリックします。

    タスクの配置

タスクのマッピング設定をする

配置した各タスクのマッピング設定を行います。

備考

マッピング設定の詳しい操作方法は「マッピング設定を行う」を参照してください。

  1. 1つめの「ファイルアップロード情報取得(im_bisFileUpload1)」タスクのマッピング設定を以下の通り行います。

    始点終点
    定数 - imfrApplicationId<string>im_bisFileUpload1 - applicationId<string>
    入力 - imwProcessCommon - userDataId<string>im_bisFileUpload1 - insertId<string>

    ファイルアップロード情報取得(im_bisFileUpload1)のマッピング設定

  2. 2つめの「ファイルアップロード情報取得(im_bisFileUpload2)」タスクのマッピング設定を以下の通り行います。

    始点終点
    定数 - imfrApplicationId<string>im_bisFileUpload2 - applicationId<string>
    im_startLoop1 - item - fileId<string>im_bisFileUpload2 - fileId<string>
    入力 - imwProcessCommon - userDataId<string>im_bisFileUpload2 - insertId<string>
    注記

    im_startLoop1<object> は初期状態ではマッピング設定の入力値に設定されていません。
    様々な入力情報の利用」を参考に、マッピング設定の入力値に追加してください。

    「ファイルアップロード情報取得」タスク

    「ファイルアップロード情報取得」タスクにfileIdをマッピングしない場合、案件でアップロードされたファイルの一覧が取得されます。この場合は、各ファイルのバイナリデータ、ファイルサイズは取得されません。
    ファイルのバイナリデータ、ファイルサイズを取得するにはfileIdをマッピングし、ファイルごとに取得する必要があります。
    このチュートリアルの業務ロジックでは1つめの「ファイルアップロード情報取得」タスクでfileIdの一覧を取得し、2つめの「ファイルアップロード情報取得」タスクで各ファイルのファイル名、バイナリデータを取得しています。
    「ファイルアップロード情報取得」タスクの詳細については「ファイルアップロード情報取得」を参照してください。

    ファイルアップロード情報取得(im_bisFileUpload2)のマッピング設定

  3. 「ファイル出力(バイナリ)(im_writeBinaryAgent1)」タスクのマッピング設定を以下の通り行います。

    始点終点
    im_bisFileUpload2 - fileData<binary>im_writeBinaryAgent1 - binary<binary>
    定数 - filePath<string>replace(1つめ) - value
    定数 - matterNumberString<string>replace(1つめ) - old
    入力 - imwActionProcess - matterNumber<string>replace(1つめ) - new
    replace(1つめ) - outreplace(2つめ) - value
    定数 - fileNameString<string>replace(2つめ) - old
    im_bisFileUpload2 - fileName<string>replace(2つめ) - new
    replace(2つめ) - outim_writeBinaryAgent1 - path<string>
    ヒント

    複数の案件で同名のファイルが添付されてもファイルが上書きされないように、保存先となるfilePathには案件番号を含む文字列を生成してマッピングしています。
    文字列を置換するマッピング関数 replaceを利用して、定数で設定したチュートリアル_ファイル連携/案件番号/ファイル名 という文字列を、チュートリアル_ファイル連携/0000000001/example.pdf のような保存先ファイルパスの形に置換しています。
    具体的には、1つめのreplace案件番号を置換し、2つめのreplaceファイル名を置換しています。

    • マッピング関数replaceの詳細は「replace」を参照してください。
    • マッピング関数の使い方については「マッピング関数の利用」を参照してください。
    注記

    im_bisFileUpload2<object> は初期状態ではマッピング設定の入力値に設定されていません。
    様々な入力情報の利用」を参考に、マッピング設定の入力値に追加してください。

    ファイル出力(バイナリ)(im_writeBinaryAgent1)のマッピング設定

  4. 以上で業務ロジックの設定は全て完了です。業務ロジックを保存してください。

作成したワークフローを申請・承認する

作成したワークフローを申請してみましょう。

  1. メニューの「申請」から、「申請一覧」画面を表示します。

  2. 作成したワークフローを選択します。

  3. 「品名」・「金額」・「購入日」の各項目を入力し、「領収書」のファイルアップロード欄でファイルをアップロードします。

    申請

  4. 「申請」ボタンをクリックして、申請します。

  5. メニューの「承認」から「案件一覧」画面を表示します。

  6. 申請した案件にマウスカーソルを重ねて、「処理」アイコンをクリックします。

  7. 「承認」ボタンをクリックして、承認します。

  8. 「承認」ノードの後処理が実行された結果、アップロードしたファイルがオンプレミスのファイルサーバに保存されます。 「事前準備」でデータソースとして設定したオンプレミスのファイルサーバの作業フォルダ内にチュートリアル_ファイル連携/案件番号フォルダが作成され、そのフォルダ内にアップロードしたファイルが存在することを確認してください。