画面フロー　項目の連動関係をつくる

[スクリーンフローに戻る](https://qiita.com/Keiji_otsubo/items/228717557f9a72b92a36)

----------------


+ [【画面フロー】項目の連動関係](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eq1rV)

アイデアに上がっています。

現在、数式、変数などを使用して値をデフォルト設定できますが、画面に表示されると、埋め込み Lightning コンポーネントを使用する以外に、フィールド 1 の変更に合わせてフィールド 2 を更新する方法はありません。 

+ [Flow: Allow Field Update on Same Screen based on Event](https://ideas.salesforce.com/s/idea/a0B8W00000GdnoSUAR/flow-allow-field-update-on-same-screen-based-on-event)

上記アイデアがあったのでできないと思ってましたが、実際にやってみると機能しそうです。

数式を使って、選択リストのデフォルト値を設定します。

ポイントは数式の作り方にあります。

このグループ化されたラジオボタンのAPI参照名を使います。←この中身の選択の値ではうまく機能しません。
画面が変わると初期化されるようですが、このラジオボタンの定義したAPI名で参照すると画面が変わっても選択した値を保持しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/fe53caf0-3e9b-9f5e-0407-f4b22bb119eb.png)


数式リソースでは
先程のAPI参照名とラベルを比較します。

```
IF({!check01}="有効架電", "Energy","Other")
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/d5235c4f-afc6-1c9c-7569-d40737a4f705.png)

選択リストでは、デフォルト値に数式を使います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ca09a134-8f40-5e95-9db2-af5c95f9bc7c.png)


そういえば、以下の回答でもそうでした。

+ [Flow sample 2024/07/09](https://qiita.com/Keiji_otsubo/items/b8f6b53b0b22ab1096c6)

select_check > A がチェックボックスのAPI名です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/d052ea6f-a8d6-a4b1-87b6-e1ff967f8f0d.png)

最初の画面コンポーネントとの値はちゃんと最後の画面コンポーネントで保持されていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/425d0a8f-94cd-1161-4f19-05f563583ac8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/f0d3e12e-e976-b794-4d8a-0c051ad0caa8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/090dc9b9-a613-624e-0079-9acacfe83e34.png)

# dependent picklists (連動選択リスト)

+ [スクリーンフローに 4 番目の従属選択リストを追加するにはどうすればよいでしょうか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KCJts)
+ [画面フローと従属選択リストコンポーネントの表示](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V000079RYR5SAO)

:::note
従属選択リストの値の選択に基づいて変数に値を割り当てようとしているようです。私の理解は正しいでしょうか? そうであれば、コンポーネントの表示条件を変更して、変数ではなく従属選択リストの上位値と中間値を参照するようにします。画面を離れるまで値が割り当てられないため、同じ画面でコンポーネントの表示パラメータとして使用できないのではないかと思います。
:::

+ [「制御項目を隠して、（対応する）連動項目だけを表示したい」という場合](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KgUM4)

:::note
少々古い投稿ですが連動選択リストについて制御フィールドの表示について回答があります。 

連動選択リストはページ上の Javascript を通じて処理されるため、制御フィールドが利用できない場合は、その機能を処理することができないみたいですね。 

ここではレコード タイプを使用して選択リストの値を出しわける方法が提案されています。（私自身は 連動選択リスト の代替案としてレコードタイプを使ったことはないですが...） 

Dependent picklists are handled through Javascript on the page, so if the controlling field isn't available, there's no way to handle that functionality. You must be setting that controlling field some other way than through the UI, but I wonder about the usefulness of not being able to create a new record with a non-null controlling field anyway. 

The only way I know of to control picklist values, without Visualforce, is through Record Types, which may or may not be a good solution for you. 

https://salesforce.stackexchange.com/questions/1799/dependent-picklists-controlling-field-not-on-the-page-layout
:::

:::note
これだけの為にレコードタイプを使うというのはあまり現実的ではないですね... 

素直にフローの選択肢コンポーネントを選択肢ごとに追加して表示条件で出しわけるという実装を行うことにしました。 
:::