Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

画面フローでデータテーブルを使用して複数のレコードを選択し、新しい関連レコードを作成する方法

公開日: Nov 21, 2024
説明
ある企業は、関連する複数の財務レコードを取引先に割り当てることができるデータモデルを持っています。また、多対多リレーションをサポートする連結オブジェクトを使用してケースを財務レコードに関連付けることができます。ユーザーは、ケースレコードページに埋め込まれた画面フローを使用して、取引先に関連する財務レコードを選択できる必要があります。ケース財務レコードはデータテーブルで選択されたそれぞれのレコードに対して作成されます。このデータモデルのエンティティ関係の概要は以下のとおりです。
 
01.png
解決策

データテーブルコンポーネントを含む画面フローを使用するとケースの取引先の関連する財務レコードを表示でき、ユーザーは現在のケースに関連するレコードを選択できるようになります。画面フローをケースレコードページに直接埋め込んでおくと使いやすくなります。

ベストプラクティスとして、本番環境にデプロイする前に必ず Sandbox でフローを構築およびテストしてください。 

ステップ 1:[設定] から [ホーム] タブに移動します。[クイック検索] ボックスで [フロー] を検索します。[フロー] をクリックして [フロー] 設定ページに移動します


02.png

ステップ 2:ページの右上サイドから [新規フロー] を選択します。新しいウィンドウが開きます。[画面フロー] を選択して、[作成] ボタンをクリックします。

03.png

ステップ 3:フローキャンバスが開きました。ここでは、ケースの取引先に関連する財務レコードを表示するために必要なフローロジックを設定し、ユーザーがレコードセットを選択できるようにして、最終的に現在のケースのケース財務レコードを作成します。フローロジックの使用を開始する前に、ケースの値とそのすべての項目を保存する recordId 変数を作成する必要があります。この変数を使用してソースケースレコードとその項目値を取得することによって、この情報をフローで簡単に使用できるようになります。

  • キャンバスの左上にある [フローツールボックス] を展開します。

04.png

  • [新規リソース] をクリックします。

05.png

  • 変数を作成して [API 参照名] を recordId に設定します。完全に一致するように設定してください。
  • [データ型] を [レコード] に、[オブジェクト] を [ケース] に設定し、[入力で使用可能] を選択します。

06.png


ステップ 4:[レコードを取得] 要素をキャンバスに追加します。これは、ケースの関連取引先の財務レコードを検索するために設定します。

07.png

  • 要素の [ラベル] と [説明] を入力します。
  • Account__c がケースの取引先レコードと同じ財務レコードを検索するための条件を設定します。これは recordId 変数に {!recordId.AccountId} として保存されます。
  • すべてのレコードを検索する要素を設定し、[すべての項目を自動的に保存] のオプションを有効のままにします。

08.png

ステップ 5:[決定] 要素をキャンバスに追加します。これを使用して、財務レコードがケースの取引先に関連するかどうかを判断します。

09.png

  • [ラベル] および [説明] を入力します。
  • 最初の [結果] タブにラベルを入力し、前の Get 要素 {!Get_Financial_Records_for_Account} の出力に値があることを確認します。 Is Null {!$GlobalConstant.False} を使用します。
  • [デフォルトの結果] はそのままにします。

10.png

ステップ 6:[デフォルトの結果] パスに [画面] 要素を追加します。[取引先] に関連する財務レコードがないことをユーザーに知らせるメッセージが表示されます (財務レコードを追加する機能などのロジックを追加する場合、ここで設定できますが、このチュートリアルでは取り上げていません)。

11.png

  • [画面] 要素の [ラベル] と [説明] を入力します。

12.png

  • 画面に [表示テキスト] コンポーネントを追加します (このコンポーネントは、[コンポーネント] タブの左サイドバーに表示されます)。財務レコードが見つからなかったことをユーザーに知らせるメッセージを設定します。

13.png

オプション: 追加機能を追加するには、このパスをさらにカスタマイズします。この例では、このパスを選択した場合はフローが [終了] に設定されます。

14.png
ステップ 7:関連する財務レコードが見つかった決定パスに [画面] 要素を追加します。この画面を使用して、[データテーブル] にそれらのレコードを表示し、ユーザーがケースに関連付けるレコードの選択ができるようにします。

15.png

  • [画面] 要素の [ラベル] と [説明] を入力します。

16.png

  • 画面に [データテーブル] コンポーネントを追加します。[API 参照名] と [ラベル] を入力します。必要に応じて、テーブルのタイトルとしてラベルを使用するように選択できます。 
  • [ソースコレクション] に {!Get_Financial_Records_for_Account} を選択します。これには、前の [レコードを取得] 要素で見つかった財務レコードが含まれます。

17.png

  • 行を設定して複数選択できるようにします。オプションで、選択できるレコードの最小数と最大数を定義します。必要に応じてデフォルトの選択を定義することもできます。これにより、ユーザーのレコードが事前に選択されます。ユーザーが必ず 1 つ以上のレコードを選択するように、この例では最小値に 1 が使用されます。

18.png

  • 必要な項目を指定して [データテーブル] の [財務レコード] から表示するには、列を設定します。この例では、[口座種別]、[口座番号]、[口座残高] を選択します。

19.png

20.png

ステップ 8:[ループ] 要素をキャンバスに追加します。要素の [ラベル] と [説明] を入力します。この要素は、ユーザーが [データテーブル] で選択した各レコードをループします。

21.png

  • 反復する コレクション 変数としてデータテーブルの選択行を選択します ({!datatable_AccountFinancialRecords.selectedRows})。これにはユーザーが選択したレコードが含まれます。

22.png

ステップ 9:[割り当て] 要素をキャンバスに追加します。これは、ケース財務レコード (連結レコード) の値を割り当て、選択したそれぞれの財務レコードの値を作成するのに使用されます。

23.png

  • [ラベル] および [説明] を入力します。

24.png

  • 変数を選択するときに、[新規リソース] を追加します。[リソース種別] に [変数] を選択し、[データ型] に [レコード] を選択します。[オブジェクト] に [ケース財務レコード] を選択し、[入力で使用可能] を選択します。25.png
  • {!var_CaseFinancialRecord.Case__c} の値を {!recordId.Id} に設定します。これにより、連結レコードの Case__c の値が現在のケースの値に設定されます。

27.png

  • {!var_CaseFinancialRecord.Financial_Record__c} の値を {!Loop_Selected_Financial_Records.Id} に設定します。これにより、Financial_Record__c の値が、現在ループされている Financial Record の値に設定されます。

28.png

ステップ 10:別の [割り当て] 要素をキャンバスに追加します。これは、前に割り当てられた [ケース財務レコード] の値をコレクションに追加するのに使用されます。[ラベル] と [説明] を入力します。

29.png

30.png

  • 前のステップと同様に、[変数] の選択から直接 [新規リソース] を追加します。同様に、[リソース種別] に [変数] を選択し、[データ型] に [レコード] を選択します。[オブジェクト] に [ケース財務レコード] を選択し、[入力で使用可能] を選択します。[複数の値を許可 (コレクション)] チェックボックスがオンになっていることを確認します。

31.png

  • {!var_CaseFinancialRecordCollection} を選択し、{!var_CaseFinancialRecord} 変数全体をコレクションに追加します。

32.png

ステップ 11:ループの外部で、[レコードを作成] 要素を追加します。選択して複数レコードを作成し、レコードに {!var_CaseFinancialRecordCollection} を選択して作成します (ベストプラクティスとして、[要素を作成] が失敗した場合は障害パスを指定します。このチュートリアルでは取り上げていません)。

33.png

34.png

ステップ 12:レコードが正常に作成されたことを確認するために使用される、最後の [画面] 要素を追加します。

35.png
36.png

ステップ 13:フローの結果をレビュー、デバッグ、テストします (完了したフローは次のようになります)。

37.png

ステップ 14:フローを有効化して、ケースレコードページに埋め込みます。ケースレコードページにフローを埋め込むには、[ケース] レコードに移動し、[設定] アイコンドロップダウンメニューから [ページの編集] を選択します。

38.png

  • [フロー] コンポーネントをページの目的の場所にドラッグします。
  • コンポーネントから実行するフローを選択します。これはこのチュートリアルで作成したフローの名前になります。
  • recordId 変数の [レコードのすべての項目値をフロー変数に渡します] オプションを選択します。これにより、ケースレコードがフローに渡され、フローロジックのコンテキストが提供されます。 

39.png

  • 必要に応じてページを保存して有効化します。レコードページに戻ると、必要なコンテキストで画面フローが表示されます。

40.png

  • データテーブルから 2 つの財務レコードを選択したときのフローの結果を次に示します。

41.png

42.png

43.png

注意:

  • ベストプラクティスとして、必ず Sandbox でこのフローを構築およびテストしてください。
  • このフローをさらに強化するには、データテーブルに表示する前にケース財務レコードが存在するかどうかを確認して、既存のレコードを選択できなくします。
  • 埋め込まれたフローコンポーネントは、特定のケースレコードデータに基づいて条件付きで表示する (たとえば、AccountId の値がケースに設定されている場合にのみコンポーネントを表示する) ように設定することもできます。
  • この例で使用するすべてのデータは、完全に架空のものです。

_____________________________________________
作成者:  Zack Terry | Salesforce アンサーリーダー
Zack Terry 氏は Fast Slow Motion のシニア Salesforce ソリューションアーキテクトです。Fast Slow Motion は、Salesforce Platform の導入と活用を支援することで、ビジネスリーダーの良きパートナーとなることを目指しています。本稿の執筆時点で、Zack 氏は Salesforce エコシステムを業務で 10 年近く使用し、20 の Salesforce 認定資格を保有し、Trailhead で「ALL STAR RANGER」のランクを獲得しています。また、Salesforce Trailblazer Community にアンサーリーダーとして定期的に参加しています。

これらの回答は回答を提供したユーザーの意見のみを反映したものであり、ユーザーが Salesforce と提携しているか否かにかかわらず Salesforce の意見ではありません。第三者によって、または第三者に代わって提供された商品、サービス、情報、データ、コンテンツ、その他の資料 (以下「第三者資料」) が含まれる場合があります。  Salesforce は第三者資料の正確性、有効性、適時性、網羅性、信頼性、完全性、品質、適法性、有用性、安全性、該当する知的財産権について、管理も支持もしておらず、それに関する責任を負いません。投稿された質問に対してメッセージボードやフォーラムで提供された回答、Salesforce やプログラムに関する質問などに答えることを意図した回答は、一般的な知識としてのみ利用でき、特定の質問に対する回答として捉えないでください (「最良」な回答または同様の評価がされた回答としてマークされている場合でも同様です)。特定の質問に対する回答は、必ず Salesforce サポートにお問い合わせください。Salesforce は回答を管理しておらず、回答の第三者による使用または誤用 (共有を含む) について一切責任を負いません。

ご質問がある場合は、こちら (https://trailhead.salesforce.com/trailblazer-community/feed) から Trailblazer Community 全体の英知を活用してください。

 
 

ナレッジ記事番号

000925354

 
読み込み中
Salesforce Help | Article