商品スケジュールは以下のように、商品を1つずつ開いて設定していかなくてはけないUIです。
一括で設定できれば便利になりそう
画面フローを使って、商談にひもついている商談商品のなかで、
- まだスケジュールされていない商談商品
- スケジュールの設定が可能な商品を選択している商談商品
だけを画面に表示して選択できるところまでをまずは作ってみました。
フローからこのスケジュールのオブジェクトがアクセスできるかをまずは確認
調べてみるとOpportunityLineItemScheduleというオブジェクトが作られるようです。
フローの中からもOpportunityLineItemScheduleは作成可能です。
フローの考え方
画面フローを使って、商談にひもついている商談商品のなかで、
- まだスケジュールされていない商談商品
- スケジュールの設定が可能な商品を選択している商談商品
だけを画面に表示するフローの考え方
1. 商談のID(recordIdというテキスト型の変数に格納)を使って、商談商品を取得する
2. ループの中でHasScheduleという項目がfalse(まだスケジュールされていない)レコードの商品IdをProduct2Ids_textというテキスト型のコレクション変数に保存します。
本当だったら、1の商談商品を取得するの条件にHasScheduleがfalseと指定してもいいのですが、既に主家ジュールされたレコードも処理をする時のために、今回はわざわざ決定要素を使いました。
3. Product2Ids_textというテキスト型のコレクション変数のIdが含まれている、
CanUseQuantityScheduleまたはCanUseRevenueScheduleがtrueの商品を選ぶことで、対象の商品を取得します。
4. ループを使って、Product2Ids_text2というテキスト型のコレクション変数に商品のIdを格納します。
5. 必要な商談商品を再取得します。
6. データテーブルに取得した商談商品を表示します
7. 画面で選択した商談商品のIdは以下のように取得できます。
実際にスケジュールを作成するために、商談商品のIdをテキスト型のコレクション変数に格納しておきます。
ここからどうやってスケジュールを作るのかは悩み中。
いかのように標準の設定画面のようにパラメータを入力して一括作成をどうするか...