D365Plugin.CustomWorkflow
Dynamics365 ユーザー定義ワークフロー活動の作成(Create a custom workflow activities with Dynamics 365)
■要望
- 学生が新規作成時、所属クラスの学生人数を再計算してクラスの項目「学生人数」を更新する。
- 「クラス名」が更新時、変更前「クラス」と変更後「クラス」の学生人数を計算してそれぞれの項目「学生人数」を更新する。
テーブル:学生台帳(pas_tbl_student)
表示名 | 名前 | データタイプ | 必須 | 備考1 | 備考2 |
---|---|---|---|---|---|
学生番号 | pas_student_no | 一行テキスト | ● | オートナンバー | |
クラス | pas_class | 検索 | ● | 参照先:クラス管理 |
テーブル:クラス管理(pas_tbl_class)
表示名 | 名前 | データタイプ | 必須 | 備考1 | 備考2 |
---|---|---|---|---|---|
クラス番号 | pas_class_no | 一行テキスト | ● | ||
学生人数 | pas_student_number | 整数 | 範囲:0~25 |
■基本設計
- カスタムワークフローを利用し、常に指定された検索項目が関連している対象エンティティの件数を計算する。
- D365のWFという標準機能を利用し、学生が作成後または学生のクラスが変更後にカスタムワーク(D365Plugin.CustomWorkflow)を実行する。出力内容をクラスの学生人数に設定する。
■詳細設計
〇カスタムワークフロー:
プロパティ名 | データ種類 | 必須 | 値 | 既定値 |
---|---|---|---|---|
入力内容:検索項目名 | テキスト | ● | pas_class | |
出力内容:件数 | 整数 | - | - |
〇D365ワークフローの設定:
① 変更前WF:
- 開始時期:レコード フィールドの変更前(項目:クラス)
- 処理:
- ステップ1:変更前の状態でカスタムWFを実行してクラスの「学生人数」を計算する。
- ステップ2:関連クラスの項目「学生人数」がカスタムWFの再計算結果と一致しないかをチェック
- ステップ3:2で一致しなければ、関連クラスの「学生人数」を更新する。
- ステップ4:「学生人数」の値が1以上かをチェック
- ステップ5:4で1以上であれば、「学生人数」をマイナス1にして関連クラスを更新する。
② 作成後または変更後WF:
- 開始時期:レコードの作成後、またはレコード フィールドの変更後(項目:クラス)
- 処理:
- ステップ1:設定後の状態でカスタムWFを実行してクラスの「学生人数」を計算する。
- ステップ2:クラスの項目「学生人数」を更新する。