ワークフローの承認時にオンプレミスのファイルサーバにファイルを保存する
後処理の業務ロジックを利用して、承認した案件でアップロードされているファイルをオンプレミスのファイルサーバに保存する方法を解説します。
概要
このチュートリアルでは、承認した案件でアップロードされているファイルをオンプレミスのファイルサーバに保存するワークフローを作成します。
後処理の業務ロジック内で、オンプレミス連携タスクを利用することでオンプレミスのファイルサーバとの連携を実現します。
事前準備
「Accel-Mart Quick システム管理者」ロールを持つユーザで実施してください。
「環境設定を行う」の手順に従ってオンプレミス連携エージェントの環境設定を行ってください。
データソース設定についてはデータソース種別「ファイル」の設定を行ってください。
ワークフローの作成
「Accel-Mart Quick アプリケーション管理者」ロールを持つユーザで実施してください。
「テンプレートを利用せずに簡単なフォームを作成する」を参考に、ワークフローを作成してください。 作成するルート定義とフォームは以下の通りです。
ノード名 | 処理対象者 |
---|---|
申請 | Accel-Mart Quick アプリケーション管理者 |
承認 | 申請者 |
ラベル・フィールド識別名 | フィールド識別ID | アイテム名 |
---|---|---|
品名 | name | 文字列 |
金額 | price | 数値 |
購入日 | date | 日付 |
領収書 | receipt | ファイルアップロード |
業務ロジックの作成
ワークフローでアップロードされているファイルを取得し、オンプレミスのファイルサーバに保存する業務ロジックを作成します。
作成する業務ロジックでは、以下の処理を行います。
- 「ファイルアップロード情報取得」タスクを用いて、申請時にアップロードされたファイルの一覧を取得します。
- 再度「ファイルアップロード情報取得」タスクを用いて、取得したファイル一覧の各ファイルの情報を取得します。
- オンプレミス連携タスクの「ファイル出力(バイナリ)」を用いて、ファイルをオンプレミスのファイルサーバに出力します。
作成する業務ロジック
後処理の業務ロジックを新規作成する
-
「IM-BIS-フロー編集」画面の「業務ロジック」をクリックします。
ヒント「業務ロジック」が表示されない場合は、「定義の反映」をクリックしてください。
また、フォームを編集した場合も必ず「定義の反映」を実行してください。 -
「業務ロジック」画面が表示されます。
-
「後処理」の「新規作成」ボタンをクリックし、「業務ロジック登録 - 後処理」画面を開きます。
-
業務ロジック名を入力し、対象ノードを選択します。 今回は、「承認」ノードでの承認時にのみ業務ロジックを実行するようにしたいので、「承認」にのみチェックを入れます。
対象ノード選択後、「登録」ボタンをクリックします。 -
「ロジックフロー定義編集」画面が表示されます。
備考作成される業務ロジックについて、詳細は「後処理(ワークフロー)」を参照してください。
定数を追加する
業務ロジックで使用する 定数を追加します。
-
「ロジックフロー定義編集」画面上部、ヘッダ内の「定数設定」をクリックします。
-
「定数設定」ダイアログが表示されます。「定数を追加」をクリックします。
-
下記の定数を追加します。
定数ID 定数値 説明 filePath
チュートリアル_ファイル連携/案件番号/ファイル名
ファイルの保存先パスとして使用する文字列です。申請された案件の案件番号、アップロードされたファイル名に置換して使用します。 matterNumberString
案件番号
定数 filePath
の案件番号
という文字列を置換するために使用します。fileNameString
ファイル名
定数 filePath
のファイル名
という文字列を置換するために使用します。
タスクを配置する
業務ロジックで使用するタスクを配置します。以下の図のように、タスクをつなぎ合わせてください。
今回は、初期設定されている分岐のうち、「分岐(承認)」しか使用しないため、不要な分岐は削除しています。
使用するタスクは以下の通りです。
タスクを配置する詳しい操作方法は「エレメントを配置する 」を参照してください。
タスクの固有設定を行う
配置した各タスクの固有設定を行います。
-
「繰り返し開始(im_startLoop1)」タスクをクリックし、タスク固有設定の「繰り返し対象」の「選択」をクリックします。
-
「im_bisFileUpload1」を選択して「決定」ボタンをクリックします。
-
「ファイル出力(バイナリ)(im_writeBinaryAgent1)」タスクをクリックし、タスク固有設定の「データソース」の「検索」をクリックします。
-
「事前準備」で登録した、ファイルの保存先となるデータソースを選択し、「決定」ボタンをクリックします。
タスクのマッピング設定をする
配置した各タスクのマッピング設定を行います。
マッピング設定の詳しい操作方法は「マッピング設定を行う」を参照してください 。
-
1つめの「ファイルアップロード情報取得(im_bisFileUpload1)」タスクのマッピング設定を以下の通り行います。
始点 終点 定数 - imfrApplicationId<string>
im_bisFileUpload1 - applicationId<string>
入力 - imwProcessCommon - userDataId<string>
im_bisFileUpload1 - insertId<string>
-
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_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つめ) - out
replace(2つめ) - value
定数 - fileNameString<string>
replace(2つめ) - old
im_bisFileUpload2 - fileName<string>
replace(2つめ) - new
replace(2つめ) - out
im_writeBinaryAgent1 - path<string>
ヒント複数の案件で同名のファイルが添付されてもファイルが上書きされないように、保存先となる
filePath
には案件番号を含む文字列を生成してマッピングしています。
文字列を置換するマッピング関数replace
を利用して、定数で設定したチュートリアル_ファイル連携/案件番号/ファイル名
という文字列を、チュートリアル_ファイル連携/0000000001/example.pdf
のような保存先ファイルパスの形に置換しています。
具体的には、1つめのreplace
で案件番号
を置換し、2つめのreplace
でファイル名
を置換しています。- マッピング関数
replace
の詳細は「replace」を参照してください。 - マッピング関数の使い方については「マッピング関数の利用」を参照してください。
注記im_bisFileUpload2<object>
は初期状態ではマッピング設定の入力値に設定されていません。
「様々な入力情報の利用」を参考に、マッピング設定の入力値に追加してください。 - マッピング関数
-
以上で業務ロジックの設定は全て完了です。業務ロジックを保存してください。
作成したワークフローを申請・承認する
作成したワークフ ローを申請してみましょう。
-
メニューの「申請」から、「申請一覧」画面を表示します。
-
作成したワークフローを選択します。
-
「品名」・「金額」・「購入日」の各項目を入力し、「領収書」のファイルアップロード欄でファイルをアップロードします。
-
「申請」ボタンをクリックして、申請します。
-
メニューの「承認」から「案件一覧」画面を表示します。
-
申請した案件にマウスカーソルを重ねて、「処理」アイコンをクリックします。
-
「承認」ボタンをクリックして、承認します。
-
「承認」ノードの後処理が実行された結果、アップロードしたファイルがオンプレミスのファイルサーバに保存されます。 「事前準備」でデータソースとして設定したオンプレミスのファイルサーバの作業フォルダ内に
チュートリアル_ファイル連携/案件番号
フォルダが作成され、そのフォルダ内にアップロードしたファイルが存在することを確認してください。