Salesforce ダイナミックフォーム: よくある質問への回答




+ [Salesforce Dynamic Forms: Your Top Questions Answered](https://www.salesforceben.com/salesforce-dynamic-forms-questions-answered/)

**1. ダイナミック フォームはクラシックで利用できますか?**

いいえ！動的フォームは Lightning Experience でのみ使用できます。移住する口実を探しているなら、これがまさにそれかもしれません。

**2\. 動的フォームは標準オブジェクトで使用できますか?**

なんだか！動的フォームは、カスタム オブジェクトと一部の標準オブジェクトで使用できます。動的フォームは現在、取引先、取引先責任者、個人取引先、商談、リード、ケースをサポートしています。

Dreamforce '22 で、Salesforce は 2023 年 9 月までにすべて (600 以上!) の標準オブジェクトでダイナミック フォームを利用できるようにする意向を発表しました。

最新の[ロードマップ](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000G6ZZmSAN)を確認してください。

**3\. 標準のページ レイアウトがまだ必要ですか?**

はい、標準のページ レイアウトを更新できるだけでなく、更新する必要もあります。標準ページレイアウトは、Lightning ページレイアウトにどの関連リストを表示するかなどを制御します。

更新: Summer '23 リリース以降、使用可能な関連リストは標準のページ レイアウトによって制御されなくなります。

Candidate オブジェクトでは、「ファイル」関連リストをページ レイアウトに追加して いません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/f1e92074-055e-3fc1-ceb8-6004aa379859.png)

Lightning ページレイアウトを編集しようとすると、「ファイル」関連リストは表示されますが、それをページにドラッグすると、ページレイアウトに含まれていないため表示できないことを説明するエラーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/0015b1f5-97d8-8f1f-da56-0c9c99957a65.png)

レコードの印刷可能なビューは、動的フォーム ページのフィールドではなく、デフォルトのページ レイアウトのフィールドに基づいていることにも注意してください。さらに、モバイル レイアウトも標準ページ レイアウトによって決まります。

**4\. 標準の詳細ページ コンポーネントに加えて、セクションやフィールドなどの動的フォーム要素がある場合はどうなりますか?**

標準の詳細コンポーネントと動的フォームのセクションおよびフィールドの両方を使用することを妨げるものはありません。ただし、コンポーネントが増えるとページの読み込み時間に影響が生じ、さらにフィールドが重複することになります。また、ユーザーが新しいレコードを作成するときに何が表示されるかを考慮する必要があります。詳細については、次の質問を参照してください。

**5\. レコードの作成時に、詳細ページと動的フォーム要素のどちらが使用されますか?**


これは少し複雑な質問であり、レコードを作成する場所/方法によって異なります。

通常、項目セクションコンポーネントが Lightning ページレイアウトに含まれると、詳細コンポーネントではなく新しいレコードの作成に使用されます。オブジェクト タブから [新規] オプションを選択すると、詳細ページではなく、動的フォーム要素が使用されます。

私の候補者 Lightning ページには、詳細コンポーネントと動的なフィールドセクションとフィールドの両方が含まれています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/3ba25481-1b25-a14e-ce5e-689024d586aa.png)

関連するタブから新しい候補レコードを作成しようとすると、動的フィールドのセクションとフィールドのみが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/7bde1f6e-ffb2-baf9-e5e4-5f9cea389837.png)


ただし、ルックアップからレコードを作成する場合、フィールドはページ上の動的フォーム フィールドからではなく、レコード詳細コンポーネントから取得されます。動的フォームの既知の問題に関する 3 番目の箇条書きを確認してください。


**6\. 必須フィールドを非表示にするとどうなりますか?**


混沌。それは完全に真実ではありませんが、非常に不快なユーザー エクスペリエンスをもたらすことは確かです。つまり、ユーザーは作成または編集のために保存することができず、エラーが表示されます。

Salesforce は、これを行わないよう警告します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/d8413a4f-f92e-a96b-b9ae-36a75af09986.png)

そして、あなたが固執すると、ユーザーはこれを見るでしょう...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/3c4b64c0-333e-35a0-07d3-ac67538cd853.png)


**7\. すべてのフィールドが非表示になっている場合でも、セクションの見出しは残りますか?**


はい。セクション内のすべてのフィールドが非表示になっている場合でも、セクション ヘッダーは表示されたままになります。ヘッダーを含むセクション全体を非表示にする場合は、個々のフィールドではなくコンポーネントにフィルターを追加することを検討してください。

**8\. レコードタイプでフィルタリングできますか?**


はい、できます。このためには、フィルターを追加するときに「詳細」を選択する必要があります。


**9\. 複数の選択リスト値でフィルタリングできますか?**

はい、できます。これを、複数選択リストによるフィルタリングと混同しないでください (以下の質問を参照)。

ここで言いたいのは、複数の選択リスト値でフィルタリングできるかということです。たとえば、選択リスト フィールド「Rating」に値「Hot」、「Warm」、「Cold」がある場合、フィールド値が次の場合にのみ表示するフィルタを作成できますか? 「熱い」それとも「暖かい」？

2 つのフィルターを追加し、フィルター ロジックを 1 または 2 に設定するだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/683c52be-3c61-2ae1-238f-60c745ead067.png)


**10\. フィルタに複数選択リストを使用できますか?**


いいえ。複数選択リスト フィールドでフィルタリングすることはできません。


**11\. 親レコードのフィールドを動的フォームのフィルターとして使用できますか?**

はい、できます。コンポーネントの表示/非表示を設定する場合は、[フィルターの追加] をクリックし、[詳細] を選択します。私の開発者組織には、Role と Candidate という 2 つのカスタム オブジェクトがあります。役割は親オブジェクトであり、候補者は子オブジェクトです。

「詳細」に移動すると、「レコード」を選択できるようになり、役割の参照を含む候補で使用可能なすべてのフィールドが表示されます。「役割」を選択すると、「レベル」という役割オブジェクトのフィールドを選択して、候補者ページ レイアウトのフィルターとして使用できるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/75740d66-b632-543f-fa0b-c9b17abff7fd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ecec4e43-18d3-b898-7de9-7d519d37c9af.png)

この機能を使用する場合は注意が必要です。新しいレコードを作成するときは、親レコードが選択されている場合でも (たとえば、ルックアップで参照されている場合)、保存するまで値は計算されません。

これは、期待できる機能という点で何を意味しますか? つまり、親レコードの値に基づいてフィルターされたフィールド セクションまたはフィールドがある場合、それらは新しいレコードが保存されるまで表示されません。


**12\. フィールドの可視性とフィールド セクションの可視性はどうですか?**

注目に値するのは、フィールドの可視性とフィールド セクションの可視性の動作が異なることです。

どちらも動的ですが、定義したフィルターに基づいて表示または非表示を設定できますが、フィールドはライブで (ユーザーが変更を加えたときに) 評価されるため、非常に動的です。これは、ユーザーがレコードを編集しているときにフィールドが表示されたり消えたりする可能性があることを意味します。

対照的に、フィールド セクションは保存時にのみ評価されるため、ユーザーがレコードを保存するまで新しいセクションは表示/非表示されません。

**13\. フィールドを複数回追加できますか?**

はい！フィールドを 1 回しか追加できない従来のページ レイアウトとは異なり、ダイナミック フォームを使用するとフィールドを複数回追加できます。

この理由は、異なる基準に基づいて、または異なるレコード タイプやユーザーに対してフィールドを表示する複数のフィールド セクションを作成する可能性があるためです。この機能には明らかにニーズがありますが、理由もなく誤ってフィールドを何度も追加しないように注意してください。


**14\. 新しいフィールドは動的フォームに自動的に追加されますか?**

いいえ！従来、新しいフィールドを作成する場合、そのフィールドをページ レイアウトに自動追加するオプションがありました。これは標準のページ レイアウトまたは詳細セクションにのみ適用されることに注意することが重要です。ダイナミック フォームを使用している場合は、新しいフィールドをダイナミック フォーム フィールド セクションに忘れずに追加する必要があります。