10.9.3. 後処理(ワークフロー)¶
後処理は、ワークフローで以下の操作を行った際に実行される業務ロジックです。
- 申請
- 再申請
- 取止め
- 引戻し
- 承認
- 否認
- 差戻し
- 保留
- 保留解除
- 案件操作
- 一時保存
コラム
業務ロジックを作成する際に、業務ロジックを設定する対象ノードを選択できます。
設定した業務ロジックは、対象ノードで操作が行われた際にのみ実行されます。
図:「業務ロジック登録 - 後処理」
対象ノードは、「業務ロジック」画面で業務ロジック名をクリックして遷移する「業務ロジック情報」画面で変更できます。
コラム
対象ノードで承認処理を行った場合のみ実行したい(差戻し・否認等の処理では実行しない)などの制御は、ロジック内の分岐を利用して実装可能です。
10.9.3.1. 利用例¶
- 承認時にワークフローの申請内容をWebデータベースに登録・更新する
- 申請時に申請内容をメールで送信する
- 承認時に電子契約サービスと連携して電子契約書を顧客に送付する
10.9.3.2. 業務ロジックの概要¶
後処理の業務ロジックを新規作成すると、初期状態では以下の図のように設定されています。
タスクを追加し、実現したい業務ロジックを作成してください。
後処理の業務ロジックには、処理の種別ごとの分岐が初期設定されています。
設定されている分岐条件と条件式は以下の通りです。
分岐条件 | 条件式 |
---|---|
申請 | ${ $input.imwActionProcess.resultStatus == "apply" || $input.imwActionProcess.resultStatus == "applyfromtempsave" || $input.imwActionProcess.resultStatus == "applyfromunapply" } |
再申請 | ${ $input.imwActionProcess.resultStatus == "reapply" } |
承認 | ${ $input.imwActionProcess.resultStatus == "approve" || $input.imwActionProcess.resultStatus == "mattercomplete" } |
取止め | ${ $input.imwActionProcess.resultStatus == "discontinue" } |
否認 | ${ $input.imwActionProcess.resultStatus == "deny" } |
引戻し | ${ $input.imwActionProcess.resultStatus == "pullback" || $input.imwActionProcess.resultStatus == "sendbacktopullback" } |
差戻し | ${ $input.imwActionProcess.resultStatus == "sendback" } |
案件操作 | ${ $input.imwActionProcess.resultStatus == "matterhandle" } |
特定の処理、例えば、申請処理を実行する際にのみ実行したい処理は、「分岐(申請)」タスクの then から線をつなげるようにします。
複数の、または、すべての処理種別で同じ処理を実行する場合は、それぞれの分岐の then から線をつなげてください。
注意
後処理は、ワークフローのデータベーストランザクション内で実行されます。
そのため、業務ロジックの中で独自にデータベーストランザクション制御を行うことはできません。
JavaScriptユーザ定義タスクで、データベーストランザクション制御を伴う処理は実施しないでください。
10.9.3.3. 入力値¶
入力値 | 説明 |
---|---|
imwProcessCommon<object> | imwProcessCommonオブジェクト を参照 |
imwActionProcess<object> | imwActionProcessオブジェクト を参照 |
imwUserParameter<object> | imwUserParameterオブジェクト を参照 |
10.9.3.3.1. imwProcessCommonオブジェクト¶
ワークフローに関するパラメータを保持します。
入力値 | 説明 |
---|---|
localeId<string> | 処理実行時のロケールID
|
tenantId<string> | テナントID
|
applyBaseDate<string> | 申請基準日( yyyy/MM/dd 形式)
|
parameter<string> | 当業務ロジックのロジックフロー情報を表すパラメータ
|
targetLocales<string[]> | システムで利用しているロケールID
|
contentsId<string> | コンテンツID
|
contentsVersionId<string> | コンテンツバージョンID
|
routeId<string> | ルートID
|
routeVersionId<string> | ルートバージョンID
|
flowId<string> | フローID
|
flowVersionId<string> | フローバージョンID
|
processDate<string> | 処理日( yyyy/MM/dd 形式)
|
systemMatterId<string> | システム案件ID
|
userDataId<string> | ユーザデータID
|
10.9.3.3.2. imwActionProcessオブジェクト¶
ワークフローの処理者や処理結果などの情報を保持します。
入力値 | 説明 |
---|---|
actFlag<string> | 代理フラグ
|
authCompanyCode<string> | 権限会社コード [1]
|
authOrgzSetCode<string> | 権限組織セットコード [1]
|
authOrgzCode<string> | 権限組織コード [1]
|
authUserCd<string> | 処理権限者コード
案件をログインユーザ本人の権限で処理した場合は本人のユーザコードが、代理先として処理した場合は代理元のユーザコードが設定されます。
|
execUserCd<string> | 処理実行者コード
実際に案件を処理したユーザのユーザコードです。
案件を代理先として処理した場合は、ログインユーザ(代理先ユーザ)のユーザコードが設定されます。
|
matterName<string> | 案件名
|
matterNumber<string> | 案件番号
申請の場合には取得できません。
|
nodeId<string> | 処理が実行されたノードのノードID
|
nextNodeIds<string[]> | 移動先(次ノード)ノードID
処理種別が以下の場合に設定されます。
|
priorityLevel<string> | 優先度
|
processComment<string> | 処理コメント
|
resultStatus<string> | 処理結果ステータス
|
lumpProcessFlag<string> | 一括処理フラグ
|
autoProcessFlag<string> | 自動処理フラグ
|
[1] | (1, 2, 3) 権限会社コード・権限組織セットコード・権限組織コードは処理種別が以下の場合に設定されます。
|
10.9.3.3.3. imwUserParameterオブジェクト¶
フォームの入力情報を保持するユーザパラメータオブジェクトです。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのパラメータ名はテーブル識別IDです。
上記を除く入力アイテムのパラメータ名はフィールド識別IDです。
複数項目選択可能な画面アイテム(「チェックボックス」、「リストボックス」)は選択された値をカンマ区切りにして値が設定されます。
コラム
画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
ファイル情報の取得には「ファイルアップロード情報取得」タスクをご利用ください。
10.9.3.4. 出力値¶
出力値 | 必須/任意 | 説明 |
---|---|---|
error<boolean> | 必須 | エラーフラグ
true を設定した場合、当処理をエラー終了します。
処理が正常に終了した場合は false を設定してください。
|
message<string> | 任意 | 指定したメッセージをエラーメッセージとして画面に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
|
localizedMessages<object> | 任意 | 指定したメッセージをエラーメッセージとして画面に表示します。
アクション処理のコンテキストから解決されたロケールに一致するメッセージを使用します。
message が指定されている場合はこのプロパティは使用されません。
|
- ja<string> | 任意 | 日本語ロケールメッセージ |
- en<string> | 任意 | 英語ロケールメッセージ |
- zh_CN<string> | 任意 | 中国語ロケールメッセージ |
matterNumber<string> | 任意 | 案件番号を指定した値で上書きします。
値の上書きは申請・再申請の場合にのみ行われます。
null の場合、案件番号は上書きされません。
|
10.9.3.5. 定数¶
定数ID 説明 FALSE 出力値 error へのマッピングに利用する定数です。 imfrApplicationId アプリケーションID「ファイルアップロード情報取得」タスクの入力値等に使用します。imwFlowId フローID
10.9.3.6. 実装例¶
簡単な後処理の業務ロジック実装例をご紹介します。
この業務ロジックでは、承認時にワークフローの申請内容を特定のユーザにメールで送信します。
10.9.3.6.2. 処理の流れ・設定例¶
- テンプレート定義を利用して、送信するメールの本文を作成します。「ユーザ定義追加」から「テンプレート定義新規作成」を選択して、テンプレート定義「メール本文作成」を作成します。
- テンプレート定義「メール本文作成」の入力値、テンプレートを設定します。今回は、入力値で案件名( matterName )、案件番号( matterNumber )、フォームの入力情報( name 、 price 、 notes )を受け取り、テンプレートの所定の位置に埋め込みます。テンプレートは以下のようにします。
<#setting url_escaping_charset="UTF-8"> 以下の物品購入申請が承認されました。 案件番号:${matterNumber} 案件名:${matterName} 物品名:${name} 価格:${price} 備考:${notes}
- 作成した「メール本文作成」タスクを配置します。今回は、ワークフロー承認時にメールを送信するようにしたいため、「分岐(承認)」タスクの then から線を繋げます。
- 「メール本文作成」タスクのマッピング設定を行います。案件名・案件番号・フォームの入力情報を業務ロジックの入力値から、「メール本文作成」タスクの入力値にマッピングします。
- 「システム通知テキストメール送信」タスクを用いて、メールを送信します。「メール本文作成」タスクの返却値 output をメール本文( body )にマッピングします。メール件名( subject )と宛先ユーザ( toUserCds )は定数に値を設定し、マッピングします。