CreateObjectにおける必要な最低限のメンバ設定
- dxsupport
- 2023年9月8日
- 読了時間: 2分
更新日:2023年9月21日
■課題
CreateObject時にメンバ設定は、どこまでやるのか?
例)新規登録ページを表示する時に「Create object」+「Show page」 を実施することで新規登録ページを表示することができますが、この時「Create Object」のメンバ設定が必要なものと不必要なものの判断はどうするか?
■解説
基本的な考え方:
show page に限らず、CreateObjectをした際には、全てのメンバ(アトリビュート、アソシエーション)を設定する。
ただし、CreateObjectのタイミングで決定することができないメンバは、後続の機能で設定する。
例:
下記のDomainModelでは、Cource(コース)に対して複数のProgram(プログラム)を設定できるよう構成していたとします。

プログラムを登録する機能を作ろうとしたとします。
登録操作フローとしては、
①コース一覧からコースを選択 ②コース選択した状態でプログラム登録ページを開くボタンをクリック
⓷プログラム登録ページが表示される ④プログラムを登録
このようなフローの場合、②のボタンクリック操作でMicroflow call します。
マイクロフローのイメージは以下です。

Create Object (Program)のメンバ設定の候補は以下です。
・ProgramID
・Name
・Description
・MyFirstModule.Program_Cource

全てのメンバに対して設定が必要か判断します。
・ProgramID
プログラムを一意に識別するもので登録者が決めるものでなく、プログラム登録時に値を入力するものではないという理由から、設定が必要です。
※ProgramIDを決める処理は、このMicroflowには記述していません。 ・・Name
プログラム登録時に登録者が入力するものという理由から、設定が不要です。
・Description
プログラム登録時に登録者が入力するものという理由から、設定が不要です。
・MyFirstModule.Program_Cource コース一覧でコースを選択しており、このコースに紐づくプログラムを登録しようとしていることは明らかという理由から、必要です。
■まとめ
エンティティとしてアトリビュート、アソシエーションを用意しているということは、データ構成として必要だから用意しているはずです。ということは、どこかのタイミングで必ず全てを設定する必要があります。それは、どのタイミングで設定するのが良いのだろうかということを考えることです。
コメント