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

到達処理

到達処理は、ワークフローの処理が指定のノードに到達した際に実行される業務ロジックです。
ノードAに到達処理を設定した場合、以下のタイミングで実行されます。

  • 「申請」または「承認」によって案件がノードAに到達したとき
  • 案件がノードAに「差戻し」されたとき
  • 案件をノードAに「引戻し」したとき
  • ワークフロー管理者が案件操作で案件をノードAに移動したとき
注記

業務ロジックを作成する際に、業務ロジックを設定する対象ノードを選択できます。

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

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

注意

到達処理は、後処理の業務ロジックやワークフローの内部処理とは独立した処理として実行されます。
そのため、到達処理の業務ロジックでエラーが発生した場合でも、直前に行われた処理を戻すことはできません。

利用例

  • 経路を問わず、特定のノードに到達した際にロジックを実行する
  • システムノードを使用したワークフローを作成する

業務ロジックの概要

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

業務ロジックの初期状態

到達処理の業務ロジックには、「業務データ取得」タスクが初期配置されています。
当該タスクで、ワークフローのフォームへの入力情報を取得します。
業務ロジック内でフォームの入力情報を使用したい場合は、「業務データ取得」タスクの返却値を利用してください。

注記

到達処理の業務ロジックには、処理の種別ごとの分岐は設定されていません。
前ノードで実行された処理の種別で場合分けしたい場合は、入力値の preNodeResultStatus を利用した分岐を設定してください。

注意

到達処理の中でデータベースの登録・更新・削除処理を行う場合は、独自にデータベーストランザクション制御を行ってください。

入力値

入力値説明
localeIdstringロケールID
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
actFlagstring代理フラグ
  • 0:本人が処理
  • 1:代理先ユーザが処理
nodeIdstring処理が実行されたノードのノードID
preNodeAuthCompanyCodestring前ノード権限会社コード
preNodeAuthOrgzSetCodestring前ノード権限組織セットコード
preNodeAuthOrgzCodestring前ノード権限組織コード
preNodeAuthUserCdstring前ノード処理権限者コード
案件をログインユーザ本人の権限で処理した場合は本人のユーザコードが、代理先として処理した場合は代理元のユーザコードが設定されます。
preNodeExecUserCdstring前ノード処理実行者コード
実際に案件を処理したユーザのユーザコードです。
案件を代理先として処理した場合は、ログインユーザ(代理先ユーザ)のユーザコードが設定されます。
preNodeIdstring前ノードID
preNodeProcessCommentstring前ノード処理コメント
preNodeResultStatusstring前ノード処理結果ステータス
  • draft:起票
  • apply:申請
  • applyfromtempsave:一時保存状態案件申請
  • applyfromunapply:未申請状態案件申請
  • discontinue:取止め
  • reapply:再申請
  • pullback:引戻し
  • approve:承認
  • approveend:承認終了
  • mattercomplete:最終承認
  • deny:否認
  • sendback:差戻し
  • sendbacktopullback:差戻し後引戻し
  • reserve:保留
  • reservecancel:保留解除
  • matterhandle:案件操作
  • tempsavecreate:一時保存新規登録
  • tempsaveupdate:一時保存更新
  • tempsavedelete:一時保存削除
priorityLevelstring優先度
  • 9:高
  • 5:通常
  • 1:低
matterNamestring案件名
matterNumberstring案件番号
mailIdsstring[]メール種別「処理結果通知」で設定されているメールID
mailReplaceMapmapメール置換文字情報
置換文字列と置換内容の詳細は「IM-Workflow 仕様書 別紙」を参照してください。

出力値

出力値説明
mailSendFlagbooleanワークフローの「処理依頼」メールを送信するかを指定します。
  • true:メールを送信する
  • false:メールを送信しない

定数

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

ユーザ定義タスク

到達処理作成時に初期配置される「業務データ取得」タスクに関する情報です。

注記

「業務データ取得」タスクは「Forma登録情報定義」という種類のユーザ定義です。
「ノーコード開発業務ロジック」というユーザカテゴリに業務ロジック名と同じユーザ定義名で登録されます。

入力値

入力値説明
insertIdstringデータ登録ID
業務ロジック入力値の userDataId を設定してください。

出力値

入力値説明
formaItemInfoobject画面アイテム入力情報
フォームの各画面アイテムの入力情報を保持するオブジェクトです。
配下のパラメータ名は画面アイテムのフィールド識別IDです。
複数項目選択可能な画面アイテム(「チェックボックス」、「リストボックス」)は選択された値をカンマ区切りにして値が設定されます。
formaTableItemInfoobjectテーブル系画面アイテム入力項目
配下にテーブル識別IDをパラメータ名とするオブジェクトの配列を保持します。
formaSystemInfoobjectシステム情報

formaSystemInfoオブジェクト

出力値説明
imfr_sd_insert_idstringデータ登録ID
imfr_sd_application_idstringアプリケーションID
imfr_sd_application_nolongアプリケーション履歴番号
imfr_sd_version_nolongバージョン
imfr_sd_create_datedate登録日時
imfr_sd_create_user_cdstring登録者ユーザコード
imfr_sd_record_datedate更新日時
imfr_sd_record_user_cdstring更新者ユーザコード
imfr_sd_preserve_flagstring一時保存フラグ
  • 1:一時保存
  • 0:一時保存でない

実装例

簡単な到達処理の業務ロジック実装例をご紹介します。
この業務ロジックでは、案件が業務ロジックを設定したノードに到達した際に、ワークフローの申請内容を特定のユーザにメールで送信します。

概要

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

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

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

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

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

処理の流れ・設定例

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

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

    <#setting url_escaping_charset="UTF-8">

    以下の物品購入申請がXXノードに到達しました。

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

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

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

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

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