シンプルな連動選択リストの画面フロー([項目]タブを使用)
連動選択リストって、なんか楽しいですよね
Admin
2023/07/24 18:40:14
「画面フローで連動選択リストを配置したい」と言われたとき、「面倒なことになったぜ😟」と思ったのですが、「[項目]タブから項目を追加すると簡単」という情報をいただき、シンプルな画面フローを作ってみたら大丈夫だったので、何かの参考になればと思い、皆さまに共有いたします。
情報提供いただいたN.Sさん、ありがとうございます!
・「選択リストA」と「選択リストB」は項目の設定連動で連動関係が設定されており、アクション実行時にもこの連動関係を維持したい。

1-1.【新規フロー】をクリックします。

1-2.「画面フロー」を選択して【作成】をクリックします。

1-3.「開始」の下の「〇」をクリックし、続けて「+」をクリックして、「画面」要素を追加します。

1-4.[項目]タブをクリックして、レコード変数の項目にカーソルをあて、「+新規リソース」をクリックします。

1-5.レコード変数 「recordId」を作成します。
※取得したい項目が含まれていれば、「recordId」以外のレコード変数やループ要素を使用できますので、状況に応じて設定してください。
※「ツールボックス」より、「画面」要素を追加する前にこちらの変数を作成しておくこともできます。
API参照名:recordId
データ型:レコード
オブジェクト:該当のオブジェクト(画面の例は適当に作ったカスタムオブジェクトです)
フロー外部での可用性:入力で使用可能
1-6.選択リスト項目を画面に配置します。
レコード変数を選択すると、項目を選択できるようになります。
連動関係が設定されている選択「選択リストA」「選択リストB」を画面にドラッグ&ドロップして配置します。

1-7.「画面のプロパティ」を設定して、【完了】をクリックします。
ヘッダー、フッターの設定は状況に応じて設定してください。
(今回の例ではデフォルトのままいじっておりません)

1-8.「画面」要素の下の「〇」をクリックし、続けて「+」をクリックして、「レコードを更新」要素を追加します。

1-9.「レコードを更新」要素を設定し、【完了】をクリックします。
表示ラベル:レコードを更新 ※わかりやすい表示であればOKです。
API参照名:UpdateRecord ※組織の命名ルールに従ってください。
更新するレコードを検索してその値を設定する方法:
このオブジェクト種別のレコードを更新:該当のオブジェクトを選択
〇〇レコードを絞り込み:レコードを更新する条件の要件:すべての条件に一致(AND)
項目:Id
演算子:次の文字列と一致する
値:recordID>カスタムオブジェクトID
〇〇の項目値をレコードに設定:
項目:PickListA__c(選択リストA) ← 値:recordId >選択リストA
項目:PickListB__c(選択リストB) ← 値:recordId >選択リストB
あとは、フロー自体を保存して、フローの作成は終了です。
ご自身で設定の際はテストをしっかり行ってください。
2-1.[オブジェクトマネージャ>該当のオブジェクト>ボタン、リンク、およびアクション]の画面を開き、【新規アクション】をクリックします。

2-2.アクションを設定し、【保存】をクリックします。
アクション種別:フロー
フロー:作成したフローを選択します。
標準の表示ラベル種別:ーなしー ※わかりやすくなるように設定してください。
表示ラベル:※わかりやすいラベルにしてください。・
名前:※命名ルールに従って、わかりやすい名前にしてください。
説明:※必須ではありませんが、他の人がわかるように説明を入力することをおすすめします。
3-1.[オブジェクトマネージャ>該当のオブジェクト>ページレイアウト]の画面で、アクションを追加したいページレイアウトを選択します。

3-2.画面上部のパレットの「モバイルおよび Lightningのアクション」から、作成したアクションをレイアウトの「Salesforce モバイル および Lightning のアクション」の部分にドラッグ&ドロップして、レイアウトを保存します。

完成形はこちら


選択リストの編集画面が表示されます。
選択リストAの値に連動して、選択リストBで選択可能な値が変化しています。
連動関係が保たれたままです。
選択した値でレコードが更新されました!

やってみないとわからないものですね。レコード変数(またはループ要素)から項目を参照できる[項目]タブ、まだまだ仲良くなれていないので、どういうことができるのか検証していきたいです。
> Lightning ページまたはクイックアクションからフローを起動するときにレコードを渡す
◇ SALESFORCE ヘルプ >ドキュメント >ビジネスプロセスの自動化 >フロー画面入力コンポーネント: 連動選択リスト
◇ SALESFORCE ヘルプ >ドキュメント >ビジネスプロセスの自動化 >フロー画面でのレコード項目の直接配置
※recordIdについては、こちら↑の記事の要所要所に説明があります(まとめられておらずすみません)。
フロー画面でのレコードタイプによる選択リストの絞り込みを試してみた
「項目の連動関係」を変更セットで送信するには??
選択リスト値のデフォルト設定、一番強いのは?
情報提供いただいたN.Sさん、ありがとうございます!
やりたいこと
・選択リスト「選択リストA」「選択リストB」のみを編集するアクションを設定したい。・「選択リストA」と「選択リストB」は項目の設定連動で連動関係が設定されており、アクション実行時にもこの連動関係を維持したい。
連動関係設定画面です
対処法
画面フローを作成し、[項目]タブから選択リスト項目を配置して、連動関係を維持したまま編集できるようにする。設定手順
1.画面フローの作成
1-1.【新規フロー】をクリックします。
1-2.「画面フロー」を選択して【作成】をクリックします。
1-3.「開始」の下の「〇」をクリックし、続けて「+」をクリックして、「画面」要素を追加します。
1-4.[項目]タブをクリックして、レコード変数の項目にカーソルをあて、「+新規リソース」をクリックします。
1-5.レコード変数 「recordId」を作成します。
※取得したい項目が含まれていれば、「recordId」以外のレコード変数やループ要素を使用できますので、状況に応じて設定してください。
※「ツールボックス」より、「画面」要素を追加する前にこちらの変数を作成しておくこともできます。
データ型:レコード
オブジェクト:該当のオブジェクト(画面の例は適当に作ったカスタムオブジェクトです)
フロー外部での可用性:入力で使用可能
1-6.選択リスト項目を画面に配置します。
レコード変数を選択すると、項目を選択できるようになります。
連動関係が設定されている選択「選択リストA」「選択リストB」を画面にドラッグ&ドロップして配置します。
1-7.「画面のプロパティ」を設定して、【完了】をクリックします。
ヘッダー、フッターの設定は状況に応じて設定してください。
(今回の例ではデフォルトのままいじっておりません)
1-8.「画面」要素の下の「〇」をクリックし、続けて「+」をクリックして、「レコードを更新」要素を追加します。
1-9.「レコードを更新」要素を設定し、【完了】をクリックします。
API参照名:UpdateRecord ※組織の命名ルールに従ってください。
更新するレコードを検索してその値を設定する方法:
このオブジェクト種別のレコードを更新:該当のオブジェクトを選択
〇〇レコードを絞り込み:レコードを更新する条件の要件:すべての条件に一致(AND)
項目:Id
演算子:次の文字列と一致する
値:recordID>カスタムオブジェクトID
〇〇の項目値をレコードに設定:
項目:PickListA__c(選択リストA) ← 値:recordId >選択リストA
項目:PickListB__c(選択リストB) ← 値:recordId >選択リストB
あとは、フロー自体を保存して、フローの作成は終了です。
ご自身で設定の際はテストをしっかり行ってください。
2.カスタムアクションの作成とページレイアウトへの追加
画面フローを呼び出すアクションを作成します。2-1.[オブジェクトマネージャ>該当のオブジェクト>ボタン、リンク、およびアクション]の画面を開き、【新規アクション】をクリックします。
2-2.アクションを設定し、【保存】をクリックします。
フロー:作成したフローを選択します。
標準の表示ラベル種別:ーなしー ※わかりやすくなるように設定してください。
表示ラベル:※わかりやすいラベルにしてください。・
名前:※命名ルールに従って、わかりやすい名前にしてください。
説明:※必須ではありませんが、他の人がわかるように説明を入力することをおすすめします。
3.ページレイアウトへのアクションの配置
ページレイアウト名をクリックすると編集画面が開きます
3-2.画面上部のパレットの「モバイルおよび Lightningのアクション」から、作成したアクションをレイアウトの「Salesforce モバイル および Lightning のアクション」の部分にドラッグ&ドロップして、レイアウトを保存します。
完成形はこちら
テストしてみます
アクションをクリックすると選択リストの編集画面が表示されます。
選択リストAの値に連動して、選択リストBで選択可能な値が変化しています。
選択した値でレコードが更新されました!
ひとこと
「画面フローで選択リストの連動関係を設定する」で調べると、「連動選択リストコンポーネント」を使用したこちらのヘルプページが出てくるので、ちょっと面倒だなと思っていたのですが、既存オブジェクトの選択リスト項目を使う場合は、[項目]を使用することでわりと簡単に設定できました。やってみないとわからないものですね。レコード変数(またはループ要素)から項目を参照できる[項目]タブ、まだまだ仲良くなれていないので、どういうことができるのか検証していきたいです。
参考
◇ SALESFORCE ヘルプ >ドキュメント >SALESFORCE SUMMER '20 リリースノート> Lightning ページまたはクイックアクションからフローを起動するときにレコードを渡す
◇ SALESFORCE ヘルプ >ドキュメント >ビジネスプロセスの自動化 >フロー画面入力コンポーネント: 連動選択リスト
◇ SALESFORCE ヘルプ >ドキュメント >ビジネスプロセスの自動化 >フロー画面でのレコード項目の直接配置
関連記事
実験:フローで取引先を【関連情報と共にコピー】してみた※recordIdについては、こちら↑の記事の要所要所に説明があります(まとめられておらずすみません)。
フロー画面でのレコードタイプによる選択リストの絞り込みを試してみた
「項目の連動関係」を変更セットで送信するには??
選択リスト値のデフォルト設定、一番強いのは?
コメント