Salesforce フロー 選択リストのデフォルト値

#**SFDCの画面フロー：選択リストのデフォルト値を設定する**

#####【使用方法】フロー内の選択リストで、画面から取得した値をデフォルト値に設定したい時に使用。

~~※2019年11月現在、画面フローにおいて、「選択リスト型」項目については、画面から取得した値をデフォルト値に設定できません。
また、選択リスト型ではなくラジオボタンでの選択式にしないと、必須項目になってしまったり、少し不可解な部分がありますね。。今後バージョンアップにて改善があれば更新します。~~

**※2021年6月現在、Summer21バージョンアップでdefaultValue 項目を選択肢リソースに使用できるようになりました。
詳しくはリリースノートや開発者ガイドのご参照を！
https://help.salesforce.com/articleView?id=release-notes.rn_api_default_flow_screen_components.htm&type=5&release=232**



▼今回の例▼
旅行情報を管理するアプリケーションを簡単に作成しました。
ここで、「宿泊情報」セクションを、ボタンのアクションから画面フローで入力していきます。
※項目「部屋タイプ」が選択リストです。


![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/1acb5969-d0a4-b784-4fdf-28709c25484f.png)

###### ①．オブジェクトに、現在の選択値を取得する数式項目を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/d1d7ebdc-f0a1-4533-09a8-d59795fd2266.png)

###### ②．画面フローを作成していきます。まず、レコードの値を取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/2b3c27a4-22b8-4d6e-77bd-9152cd9e14fd.png)

###### ③．リソースに、①の値を格納する変数（数式）を作成します。
If文において、選択肢が未選択（null）のとき、デフォルト値を「シングル」にしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/d84a63c5-26c7-2fe5-a63b-0c692f31ec19.png)


###### ④．リソースに、選択肢を作成します。
★現在の選択値を選択肢とする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/359afa87-016a-0096-4797-918baf50b33c.png)


###### ⑤. リソースに、レコード選択肢セットを作成します。
★現在の選択値以外の選択値を選択肢とする。
**※EntityParticleIdの値は、<オブジェクトAPI名>.<選択リスト項目ID>**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/860f4a10-d363-25b9-ebcf-a9cb9cb26c3d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/4c2225e3-0cf0-c66b-e1ea-19f022627758.png)




###### ⑥. 画面コンポーネントを作成します。
選択リストの項目は、ラジオボタンで実装します。（選択リスト型だと、必須になってしまうため注意）
デフォルト値に、④で作成した、「現在の選択値」をセットします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/027ffa9b-55d5-102f-5d69-293840c6cfdb.png)

###### ⑦. レコード更新を行えば完成！
オブジェクトにて、アクションボタンを作成して、ページレイアウトにボタンを配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/e2cc10f6-257f-ffba-f001-097581026f7f.png)


#### ▼▼実際に動きを確認▼▼
1. 新規登録の場合<br>
1-1．[宿泊情報]ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/e79d4cba-5c81-5a91-fff0-26b6e202b125.png)
1-2. 入力し、[次へ]ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/412a7592-52a3-be3c-e08e-58f50667ead8.png)
1-3. 登録できました。
![tempsnip1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/7258ea17-a51e-04f3-71f5-70fd1c4f45dd.png)






2. 更新の場合<br>
2-1. [宿泊情報]ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/625fc126-80d6-b11f-714e-a028ac981a2f.png)
2-2. 内容を編集します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/e035c3d3-440b-a24a-0042-591dd9b405d1.png)
2-3. 更新完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539431/7e0af676-0708-f048-2c7f-fc53c1124d52.png)




#####【memo】

以上、選択リストを動的に作成する方法でした。
重要な点を簡潔にまとめると、1つの選択リストに対して、画面フローのリソースでは選択肢を２種類作成します。
・現在選択している値
・現在選択している値以外
これら２つを選択肢とする選択リスト項目を設置し、
デフォルト値に、「現在選択している値」をセットします。

<br>
この記事は、同じ壁にぶち当たった人は理解しやすいかと思います。(笑)
分かりにくいのでそのうち更新します。とりあえず忘れないうちにメモ。
とっても大変だった～(´;ω;｀)


<br>
以上