はじめに
業務ロジックから動的承認ノードの承認者を自動設定する手順を備忘をかねてまとめます。社内SEにとってはカスタムスクリプトが必要なため若干心理的ハードルがあがりますが、意外と簡単ですので参考にしてみてください。
前提
- Forma+ワークフローで作成しております
- 業務ロジックはロジックデザイナーで作成
- 申請者情報に紐づくDBテーブル値から承認者を動的に設定する
構築手順(画面設計)
申請者のユーザコードを取得・設定
申請者のユーザコードを画面隠し項目に反映した場合、以下も合わせてご確認ください。
Intra-martのログインユーザコードを画面項目に反映する方法
ロード時のアクション処理で暗黙的なリクエストパラメータとして業務ロジックの入力項目(imwUserCode)とします。

出力値はユーザコードが戻れば、キー名に制限はありません。

入力項目にマッピング
以下の画面イメージとし、ログインユーザコードを業務ロジックの検索条件(入力値)として結果を返すアクション処理を初期表示イベントで行うとします。隠しパラメータ項目に業務ロジック結果を反映します。

以下のとおり、暗黙的なリクエストパラメータを使っているので、「imwUserCode」へリクエストマッピングは不要です。

これで業務ロジックからの取得準備(画面設計)は完了しました。
動的承認の構築(メイン)
動的承認を実現するための重要ポイント3点です。
ルート定義の設定
動的承認アイコンをルート定義で配置します。アイコンを左から2つ目です。
なお動的承認のプロパティで処理対象者は「指定なし」にチェックをいれます。

ルート定義は以上です。
フロー定義の設定
フロー定義の設定でルート詳細にあるターゲットとなる動的承認ノードを以下のとおり設定を進めます。


動的承認者の設定可能ノードをどこにするか選択します。

フロー定義の設定は以上で終了です。
Formaボタンのクリック時のカスタムスクリプトを実行
業務ロジックで取得したユーザコードを動的承認者として設定します。
なお以下は、申請モーダルでのカスタムスクリプトです。

//画面隠しパラメータをユーザコードを取得
var hiddenApprovalCd = formaItems.product_72_hidden.getItemData.approvalUserCd();
window.forma.modalInfo.showApplyParameter = {
dynamicNodeConfigs: [
{
enable: true,
nodeId: "%DynamicNodeId%",
nodeInformation: "隠しパラメータのユーザコードを承認者に設定",
readonlyEnableToggle: true,
searchCondition: {
criteria: null
},
processTargetConfigs: [
{
pluginId: "jp.co.intra_mart.workflow.plugin.authority.node.dynamic.user",
parameter: hiddenApprovalCd
}
]
}
]
};
これで申請ボタン押下時に、自動的に業務ロジックで取得した承認者が設定されます。
まとめ
以上で『【【intra-mart】業務ロジックから申請処理時に動的承認者を設定する手順』でした。
動的承認の構築(メイン)の3点セットを理解すれば業務ロジックで承認者設定できますので、やり方がわかれば意外と簡単な設定だと理解できます。
コメント