10.9.4. 到達処理¶
到達処理は、ワークフローの処理が指定のノードに到達した際に実行される業務ロジックです。
ノードAに到達処理を設定した場合、以下のタイミングで実行されます。
- 「申請」または「承認」によって案件がノードAに到達したとき
- 案件がノードAに「差戻し」されたとき
- 案件をノードAに「引戻し」したとき
- ワークフロー管理者が案件操作で案件をノードAに移動したとき
コラム
業務ロジックを作成する際に、業務ロジックを設定する対象ノードを選択できます。
図:「業務ロジック登録 - 到達処理」
対象ノードは、「業務ロジック」画面で業務ロジック名をクリックして遷移する「業務ロジック情報」画面で変更できます。
注意
到達処理は、後処理の業務ロジックやワークフローの内部処理とは独立した処理として実行されます。
そのため、到達処理の業務ロジックでエラーが発生した場合でも、直前に行われた処理を戻すことはできません。
10.9.4.1. 利用例¶
- 経路を問わず、特定のノードに到達した際にロジックを実行する
- システムノードを使用したワークフローを作成する
10.9.4.2. 業務ロジックの概要¶
到達処理の業務ロジックを新規作成すると、初期状態では以下の図のように設定されています。
タスクを追加し、実現したい業務ロジックを作成してください。
到達処理の業務ロジックには、「業務データ取得」タスクが初期配置されています。
当該タスクで、ワークフローのフォームへの入力情報を取得します。
業務ロジック内でフォームの入力情報を使用したい場合は、「業務データ取得」タスクの返却値を利用してください。
コラム
到達処理の業務ロジックには、処理の種別ごとの分岐は設定されていません。
前ノードで実行された処理の種別で場合分けしたい場合は、入力値の preNodeResultStatus を利用した分岐を設定してください。
注意
到達処理の中でデータベースの登録・更新・削除処理を行う場合は、独自にデータベーストランザクション制御を行ってください。
10.9.4.3. 入力値¶
入力値 説明 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 actFlag<string> 代理フラグ
- 0:本人が処理
- 1:代理先ユーザが処理
nodeId<string> 処理が実行されたノードのノードID preNodeAuthCompanyCode<string> 前ノード権限会社コード preNodeAuthOrgzSetCode<string> 前ノード権限組織セットコード preNodeAuthOrgzCode<string> 前ノード権限組織コード preNodeAuthUserCd<string> 前ノード処理権限者コード案件をログインユーザ本人の権限で処理した場合は本人のユーザコードが、代理先として処理した場合は代理元のユーザコードが設定されます。preNodeExecUserCd<string> 前ノード処理実行者コード実際に案件を処理したユーザのユーザコードです。案件を代理先として処理した場合は、ログインユーザ(代理先ユーザ)のユーザコードが設定されます。preNodeId<string> 前ノードID preNodeProcessComment<string> 前ノード処理コメント preNodeResultStatus<string> 前ノード処理結果ステータス
- draft:起票
- apply:申請
- applyfromtempsave:一時保存状態案件申請
- applyfromunapply:未申請状態案件申請
- discontinue:取止め
- reapply:再申請
- pullback:引戻し
- approve:承認
- approveend:承認終了
- mattercomplete:最終承認
- deny:否認
- sendback:差戻し
- sendbacktopullback:差戻し後引戻し
- reserve:保留
- reservecancel:保留解除
- matterhandle:案件操作
- tempsavecreate:一時保存新規登録
- tempsaveupdate:一時保存更新
- tempsavedelete:一時保存削除
priorityLevel<string> 優先度
- 9:高
- 5:通常
- 1:低
matterName<string> 案件名 matterNumber<string> 案件番号 mailIds<string[]> メール種別「処理結果通知」で設定されているメールID mailReplaceMap<map> メール置換文字情報置換文字列と置換内容の詳細は「IM-Workflow 仕様書 別紙」を参照してください。
10.9.4.4. 出力値¶
出力値 | 必須/任意 | 説明 |
---|---|---|
mailSendFlag<boolean> | 必須 | ワークフローの「処理依頼」メールを送信するかを指定します。
|
10.9.4.5. 定数¶
定数ID 説明 TRUE 出力値 mailSendFlag へのマッピングに利用する定数です。 imfrApplicationId アプリケーションID「ファイルアップロード情報取得」タスクの入力値等に使用します。imwFlowId フローID
10.9.4.6. ユーザ定義タスク¶
到達処理作成時に初期配置される「業務データ取得」タスクに関する情報です。
コラム
「業務データ取得」タスクは「Forma登録情報定義」という種類のユーザ定義です。
「ノーコード開発業務ロジック」というユーザカテゴリに業務ロジック名と同じユーザ定義名で登録されます。
10.9.4.6.1. 入力値¶
入力値 説明 insertId<string> データ登録ID業務ロジック入力値の userDataId を設定してください。
10.9.4.6.2. 出力値¶
入力値 説明 formaItemInfo<object> 画面アイテム入力情報フォームの各画面アイテムの入力情報を保持するオブジェクトです。配下のパラメータ名は画面アイテムのフィールド識別IDです。複数項目選択可能な画面アイテム(「チェックボックス」、「リストボックス」)は選択された値をカンマ区切りにして値が設定されます。formaTableItemInfo<object> テーブル系画面アイテム入力項目配下にテーブル識別IDをパラメータ名とするオブジェクトの配列を保持します。formaSystemInfo<object> システム情報 - imfr_sd_insert_id<string> データ登録ID - imfr_sd_application_id<string> アプリケーションID - imfr_sd_application_no<long> アプリケーション履歴番号 - imfr_sd_version_no<long> バージョン - imfr_sd_create_date<date> 登録日時 - imfr_sd_create_user_cd<string> 登録者ユーザコード - imfr_sd_record_date<date> 更新日時 - imfr_sd_record_user_cd<string> 更新者ユーザコード - imfr_sd_preserve_flag<string> 一時保存フラグ
- 1:一時保存
- 0:一時保存でない
10.9.4.7. 実装例¶
簡単な到達処理の業務ロジック実装例をご紹介します。
この業務ロジックでは、案件が業務ロジックを設定したノードに到達した際に、ワークフローの申請内容を特定のユーザにメールで送信します。
10.9.4.7.2. 処理の流れ・設定例¶
- テンプレート定義を利用して、送信するメールの本文を作成します。「ユーザ定義追加」から「テンプレート定義新規作成」を選択して、テンプレート定義「メール本文作成」を作成します。
- テンプレート定義「メール本文作成」の入力値、テンプレートを設定します。今回は、入力値で案件名( matterName )、案件番号( matterNumber )、フォームの入力情報( name 、 price 、 notes )を受け取り、テンプレートの所定の位置に埋め込みます。テンプレートは以下のようにします。
<#setting url_escaping_charset="UTF-8"> 以下の物品購入申請がXXノードに到達しました。 案件番号:${matterNumber} 案件名:${matterName} 物品名:${name} 価格:${price} 備考:${notes}
- 「メール本文作成」タスクのマッピング設定を行います。案件名・案件番号は業務ロジックの入力値から、フォームの入力情報は「業務データ取得」タスク( business_data_select )から、「メール本文作成」タスクの入力値にマッピングします。
- 「システム通知テキストメール送信」タスクを用いて、メールを送信します。「メール本文作成」タスクの返却値 output をメール本文( body )にマッピングします。メール件名( subject )と宛先ユーザ( toUserCds )は定数に値を設定し、マッピングします。