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

後処理(ワークフロー)

後処理は、ワークフローで以下の操作を行った際に実行される業務ロジックです。

  • 申請
  • 再申請
  • 取止め
  • 引戻し
  • 承認
  • 否認
  • 差戻し
  • 保留
  • 保留解除
  • 案件操作
  • 一時保存
注記

業務ロジックを作成する際に、業務ロジックを設定する対象ノードを選択できます。
設定した業務ロジックは、対象ノードで操作が行われた際にのみ実行されます。

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

対象ノードは、「業務ロジック」画面で業務ロジック名をクリックして遷移する「業務ロジック情報」画面で変更できます。

注記

対象ノードで承認処理を行った場合のみ実行したい(差戻し・否認等の処理では実行しない)などの制御は、ロジック内の分岐を利用して実装可能です。

利用例

  • 承認時にワークフローの申請内容をWebデータベースに登録・更新する
  • 申請時に申請内容をメールで送信する
  • 承認時に電子契約サービスと連携して電子契約書を顧客に送付する

業務ロジックの概要

後処理の業務ロジックを新規作成すると、初期状態では以下の図のように設定されています。
タスクを追加し、実現したい業務ロジックを作成してください。

業務ロジックの初期状態

後処理の業務ロジックには、処理の種別ごとの分岐が初期設定されています。
設定されている分岐条件と条件式は以下の通りです。

  • 申請
    • ${ $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ユーザ定義タスクで、データベーストランザクション制御を伴う処理は実施しないでください。

入力値

入力値説明
imwProcessCommonobjectimwProcessCommonオブジェクト を参照
imwActionProcessobjectimwActionProcessオブジェクト を参照
imwUserParameterobjectimwUserParameterオブジェクト を参照

imwProcessCommonオブジェクト

ワークフローに関するパラメータを保持します。

入力値説明
localeIdstring処理実行時のロケールID
  • ja:日本語
  • en:英語
  • zh_CN:中国語(簡体字)
tenantIdstringテナントID
applyBaseDatestring申請基準日( yyyy/MM/dd 形式)
parameterstring当業務ロジックのロジックフロー情報を表すパラメータ
targetLocalesstring[]システムで利用しているロケールID
contentsIdstringコンテンツID
contentsVersionIdstringコンテンツバージョンID
routeIdstringルートID
routeVersionIdstringルートバージョンID
flowIdstringフローID
flowVersionIdstringフローバージョンID
processDatestring処理日( yyyy/MM/dd 形式)
systemMatterIdstringシステム案件ID
userDataIdstringユーザデータID

imwActionProcessオブジェクト

ワークフローの処理者や処理結果などの情報を保持します。

入力値説明
actFlagstring代理フラグ
  • 0:本人が処理
  • 1:代理先ユーザが処理
authCompanyCodestring権限会社コード
authOrgzSetCodestring権限組織セットコード
authOrgzCodestring権限組織コード
authUserCdstring処理権限者コード
案件をログインユーザ本人の権限で処理した場合は本人のユーザコードが、代理先として処理した場合は代理元のユーザコードが設定されます。
execUserCdstring処理実行者コード
実際に案件を処理したユーザのユーザコードです。
案件を代理先として処理した場合は、ログインユーザ(代理先ユーザ)のユーザコードが設定されます。
matterNamestring案件名
matterNumberstring案件番号
申請の場合には取得できません。
nodeIdstring処理が実行されたノードのノードID
nextNodeIdsstring[]移動先(次ノード)ノードID
処理種別が以下の場合に設定されます。
  • 差戻し・引戻し・案件操作
priorityLevelstring優先度
  • 9:高
  • 5:通常
  • 1:低
processCommentstring処理コメント
resultStatusstring処理結果ステータス
  • draft:起票
  • apply:申請
  • applyfromtempsave:一時保存状態案件申請
  • applyfromunapply:未申請状態案件申請
  • discontinue:取止め
  • reapply:再申請
  • pullback:引戻し
  • approve:承認
  • approveend:承認終了
  • mattercomplete:最終承認
  • deny:否認
  • sendback:差戻し
  • sendbacktopullback:差戻し後引戻し
  • reserve:保留
  • reservecancel:保留解除
  • matterhandle:案件操作
  • tempsavecreate:一時保存新規登録
  • tempsaveupdate:一時保存更新
  • tempsavedelete:一時保存削除
lumpProcessFlagstring一括処理フラグ
  • 0:通常承認
  • 1:一括承認
autoProcessFlagstring自動処理フラグ
  • 0:手動処理(通常処理)
  • 1:自動処理(到達処理での自動承認や、バッチでの自動処理)
DCNodeConfigModelsobject[]動的・確認ノード設定情報の配列
HVNodeConfigModelsobject[]横配置・縦配置ノード設定情報の配列
branchSelectModelsobject[]分岐先選択情報の配列
注記

権限会社コード、権限組織セットコード、権限組織コードは処理種別が以下の場合に設定されます。

  • 申請・再申請・申請(一時保存)・申請(未処理)
  • 取止め・承認・承認終了・否認・差戻し

動的・確認ノード設定情報、横配置・縦配置ノード設定情報、分岐先選択情報は処理種別が以下の場合に設定されます。

  • 申請・再申請・申請(一時保存)・申請(未処理)・承認

DCNodeConfigModels

動的承認ノードと確認ノードの処理対象者の設定情報を保持します。

入力値説明
nodeIdstring対象の動的承認ノード、または、確認ノードのノードID
processTargetConfigsobject[]処理対象設定(プラグイン情報)の配列
processTargetConfigs

プラグインの拡張ポイントID、プラグインID、パラメータを保持します。

入力値説明
extensionPointIdstringプラグインの拡張ポイントID
parameterstringプラグインのパラメータ
pluginIdstringプラグインのプラグインID

HVNodeConfigModels

横・縦配置ノードの展開情報を保持します。

入力値説明
nodeIdstring処展開対象の横配置・縦配置ノードのノードID(展開前のノードID)
matterNodeExpansionsobject[]横・縦配置ノードの展開情報の配列
matterNodeExpansions

横・縦配置ノードを展開する際に、展開されたノードのノード名や、そのノードの処理対象者情報を保持します。

入力値説明
nodeNamestring展開されたノードのノード名
pluginModelsobject[]処理対象者情報(プラグイン情報)の配列
pluginModels

プラグインの拡張ポイントID、プラグインID、パラメータを保持します。

入力値説明
extensionPointIdstringプラグインの拡張ポイントID
pluginIdstringプラグインのプラグインID
parameterstringプラグインのパラメータ

branchSelectModels

分岐開始方法が、「申請/処理時に分岐先を選択する」の場合、申請/処理時に分岐先として指定されたノードのIDを保持します。

入力値説明
branchStartNodeIdstring分岐開始ノードのノードID
forwardNodeIdsstring[]分岐先のノードのノードID配列

imwUserParameterオブジェクト

フォームの入力情報を保持するユーザパラメータオブジェクトです。
画面アイテム「明細テーブル」、「グリッドテーブル」、「スプレッドシート」のテーブルのパラメータ名はテーブル識別IDです。
上記を除く入力アイテムのパラメータ名はフィールド識別IDです。
複数項目選択可能な画面アイテム(「チェックボックス」、「リストボックス」)は選択された値をカンマ区切りにして値が設定されます。

注記

画面アイテム「ファイルアップロード」のアップロードファイル情報は含まれません。
ファイル情報の取得には「ファイルアップロード情報取得」タスクをご利用ください。

出力値

出力値説明
errorbooleanエラーフラグ
true を設定した場合、当処理をエラー終了します。
処理が正常に終了した場合は false を設定してください。
messagestring指定したメッセージをエラーメッセージとして画面に表示します。
ロケールごとにメッセージを用意する必要がなければこのプロパティを利用してください。
localizedMessagesobject指定したメッセージをエラーメッセージとして画面に表示します。
アクション処理のコンテキストから解決されたロケールに一致するメッセージを使用します。
message が指定されている場合はこのプロパティは使用されません。
matterNumberstring案件番号を指定した値で上書きします。
値の上書きは申請・再申請の場合にのみ行われます。
null の場合、案件番号は上書きされません。

localizedMessagesオブジェクト

出力値説明
jastring日本語ロケールメッセージ
enstring英語ロケールメッセージ
zh_CNstring中国語ロケールメッセージ

定数

定数ID説明
FALSE出力値 error へのマッピングに利用する定数です。
imfrApplicationIdアプリケーションID
「ファイルアップロード情報取得」タスクの入力値等に使用します。
imwFlowIdフローID

実装例

簡単な後処理の業務ロジック実装例をご紹介します。
この業務ロジックでは、承認時にワークフローの申請内容を特定のユーザにメールで送信します。

概要

業務ロジックの実装例 図:業務ロジックの実装例

以下のタスクを使用しています。

  • 汎用タスク > システム通知テキストメール送信

以下のユーザ定義タスクを作成して使用しています。

  • テンプレート定義「メール本文作成」

処理の流れ・設定例

  1. テンプレート定義を利用して、送信するメールの本文を作成します。 「ユーザ定義追加」から「テンプレート定義新規作成」を選択して、テンプレート定義「メール本文作成」を作成します。

  2. テンプレート定義「メール本文作成」の入力値、テンプレートを設定します。 今回は、入力値で案件名( matterName )、案件番号( matterNumber )、フォームの入力情報( namepricenotes )を受け取り、テンプレートの所定の位置に埋め込みます。
    テンプレートは以下のようにします。

    <#setting url_escaping_charset="UTF-8">

    以下の物品購入申請が承認されました。

    案件番号:${matterNumber}
    案件名:${matterName}

    物品名:${name}
    価格:${price}
    備考:${notes}
    備考

    テンプレート定義の詳細は以下を参照してください。

  3. 作成した「メール本文作成」タスクを配置します。 今回は、ワークフロー承認時にメールを送信するようにしたいため、「分岐(承認)」タスクの then から線を繋げます。

  4. 「メール本文作成」タスクのマッピング設定を行います。 案件名・案件番号・フォームの入力情報を業務ロジックの入力値から、「メール本文作成」タスクの入力値にマッピングします。

  5. 「システム通知テキストメール送信」タスクを用いて、メールを送信します。 「メール本文作成」タスクの返却値 output をメール本文( body )にマッピングします。
    メール件名( subject )と宛先ユーザ( toUserCds )は定数に値を設定し、マッピングします。