レコード変数からの CRUD
概要
Avonni Dynamic Components は、ユーザーが管理するレコード変数を使用して Salesforce レコードを直接作成、読み取り、更新、削除(CRUD)するための専用の操作を提供します。データテーブルやリストのようなコンポーネントは自身でデータ表示や更新を処理しますが、これらの特定のレコード操作インタラクションは、データの表示や更新に対してより細かな制御を提供します。
これらは、個々の入力フィールドを持つカスタムフォームを構築する場合(多くはレコード変数から入力される)、リストコンテキストの外で別個のレコードを扱う場合(例:「On Load」アクションでデータを取得した後)、またはレコード操作の正確な制御が必要な複雑なシナリオで特に有用です。これらは Apex や大規模なフローを必要とせずに直接データ操作を行えます。 フィールドタブ (この文脈では)
留意すべき重要な制限
レコード変数を使用した CRUD インタラクションを利用する際には、次の点に注意してください: 現在、非表示フィールドはマッピングできません.
これには以下のようなフィールドが含まれます: レコードタイプ ID またはマッピング可能な利用可能フィールド一覧に表示されないその他のフィールド。これらのフィールドを設定することが重要なユースケースの場合は、フローなどの代替アプローチを検討してください。
この機能は改善作業を進めており、将来的にこの制限が解消される可能性があります。
レコード操作の仕組み
特定のレコード変数を使う場合
このアプローチは次のような場合に一般的です:
レコードデータの別個の「作業用コピー」が必要なとき カスタムフォームを構築して 新しいレコードを作成する.
ページのメインレコードではないレコードを編集する場合 (例:変数に読み込まれた関連レコードを編集する場合)。 ページのメインレコードではないレコードを編集する場合(例:変数に読み込まれた関連レコードを編集する場合)。
必要なのは 別個の「作業用コピー」 保存前のレコードデータの。
手順は次のとおりです:
a. レコード変数を定義する: Resources パネルで、 Variable リソースを作成します。次に、その データ型 を
Record
に設定し、Salesforce の オブジェクト API 名 を指定します(例:Account
,Contact
,My_Custom_Object__c
)。わかりやすい API 名(例:accountToEdit
,newContactForm
).

b. レコード変数にデータを入れる: このレコード変数をデータで埋める必要があります。これは次の方法で行えます:
ユーザー入力(作成/更新の場合): キャンバス上に個別の入力コンポーネント(テキスト入力、数値入力、ピックリストなど)を配置します。これらは フィールドタブ (レコード変数に基づいてフィールドを表示します)からフィールドをドラッグすることで簡単に行えます。
accountToEdit
これらの入力コンポーネントは、レコード変数のフィールドに自動的にバインドされます(例:{!accountToEdit.Name}
,{!accountToEdit.Industry}
)。ユーザーが入力や選択を行うと、あなたのaccountToEdit
変数は更新されます。「On Load」>「Get Records」(特定/関連レコードの更新/削除の場合): コンポーネントで「On Load」インタラクションを使用して特定のレコード(例:関連レコードの詳細)を取得し、その結果を直接レコード変数に格納します。
その他のインタラクション: この変数は、フロー(出力マッピングを伴う「Execute Flow」アクション)や「Set Variable Value」アクションによっても設定できます。
c. レコード操作をトリガーする: 対話型コンポーネント(通常は Avonni の Button)を追加し、 On Click (または関連する他のイベント)インタラクションを構成します。

d. レコード操作インタラクションを選ぶ: ボタンのインタラクション設定(ステップ c)で:
「 Action Type」では、まずカテゴリ(該当する場合)を選択します。例: 「Record Variable Operations」.
そのカテゴリ内のアクションから、必要な具体的操作を選択します:
レコードを作成
レコードを更新
レコードをアップサート
レコードを削除
e. 使用するレコード変数を選択する: アクションの設定で、定義してデータを入れた Record Variable を選択します(例:
{!accountToEdit}
).
ページの現在レコードコンテキストを使う($Component.record
)
$Component.record
)このアプローチは、あなたの Dynamic Component が Salesforce のレコードページに配置され、その特定のレコードの表示、編集、保存を行いたい場合に使用されます。 その特定のレコード.
a. 対象ページオブジェクトを選択する: Dynamic Component の 設定 (歯車アイコン ⚙️)で、 Target Page Object を指定します(例:
Account
を定義します。これは、コンポーネントが指定された Salesforce オブジェクトのコンテキスト内で動作していることを知らせる重要なステップです。

b. 対応するレコードページに配置する: Lightning App Builder を使って、Target Object が一致するレコードページに Dynamic Component を追加します(例:Target Object が
Account
に設定されたコンポーネントを Account レコードページに配置する)。c. フィールドを表示/編集する:
$Component.record
: Fields タブからキャンバスにドラッグしたフィールド(現在 Target Object のフィールドが表示されます)は通常自動的に フィールドタブ $Component.record.FieldName$Component.record.Name
を指定します(例:にバインドされます)。ユーザーはこれらのフィールドを表示または編集できます。
ユーザーはこれらのフィールドを表示または編集できます。

d. 保存操作をトリガーする: Avonni の Button (例:「変更を保存」などのラベル)を追加し、 On Click インタラクションを構成します。

e. インタラクションを選択する:
レコードを更新
インタラクション設定で、
アクションタイプを選択します。このインタラクションは、現在のページのレコードコンテキスト($Component.record)にバインドされたフィールドに加えられた変更を保存します。 レコードを更新 ステップ a で対象ページオブジェクトを設定しているため、
Target Page Record をレコード変数として選択することを確認してください。これにより、インタラクションはステップ a で確立した特定のレコードコンテキストにリンクされ、フィールドを再選択することなく正しいレコードを更新できるようになります。
ステップ a で確立した特定のレコードコンテキストにリンクされ、フィールドを再選択することなく正しいレコードを更新できるようになります。

例:新しいリードを作成するためのカスタムフォームを構築する
この例では、 Record Variable と 「Create from Record Variable」 インタラクションを使用して、新しい Lead レコードを作成するカスタムフォームを構築する方法を示します。
シナリオ
App ページやホームページにシンプルでフォーカスされたフォームを配置して、新しいリードを迅速に収集したいとします。標準の「New Lead」ボタンは多くのフィールドを含む場合があるため、特定のレイアウトで必須フィールドのみを含めたいケースに適しています。
セットアップ
新しいリード用のレコード変数を作成する
Dynamic Component の Resources パネルで、新しい Variable.
API 名:
newLeadData
データ型:
Record
オブジェクト API 名: 選択:
Lead
.
レコード変数の設定に関する注意事項
リードフォーム用に新しいレコード変数を作成する場合、Target Page Object 設定は使用できません。このフォームはホームページに配置されるため、Target Page Object はダイナミックコンポーネントの動作に関する関連コンテキスト情報を提供しないからです。代わりに、コンポーネントがどのコンテキストで機能するかを明確に指定するために新しいレコード変数を定義してください。

Fields タブを使ってフォームを構築する
作成した
newLeadData
Record Variable を選択した状態(またはリソース内に存在する状態)で、 コンポーネントライブラリ (左パネル)に移動し、 フィールドタブを選択します。そこに対象オブジェクトのフィールドが表示されます。Lead
オブジェクトのフィールドが表示されます。次のフィールドをキャンバスにドラッグして入力コンポーネントを作成します。これらは自動的にあなたの
newLeadData
変数にバインドされます:FirstName
LastName
(テキスト入力)Company
(テキスト入力)Email
(メール入力)LeadSource
(ピックリストの場合はおそらくコンボボックスが作成されます)
これらの入力コンポーネントをキャンバス上で望ましい配置に並べます(例:カードやカラムコンポーネント内に配置してレイアウトを整える)。

結果
ユーザーがカスタムフォームに入力を行うと:
入力コンポーネント(テキスト入力、コンボボックス)は、Fields タブからドラッグしたときに作成されるバインディングにより、リアルタイムでレコード変数内のフィールドを直接更新します。
newLeadData
入力コンポーネント(テキスト入力、コンボボックス)は、Fields タブからドラッグしたときに作成されるバインディングにより、リアルタイムでレコード変数内のフィールドを直接更新します。ユーザーが「Create Lead」ボタンをクリックすると、「Create from Record Variable」インタラクションは現在変数に存在するすべてのデータを取得して、それを使って Salesforce に新しい Lead レコードを作成します。
newLeadData
ユーザーが「Create Lead」ボタンをクリックすると、「Create from Record Variable」インタラクションは現在変数に存在するすべてのデータを取得して、それを使って Salesforce に新しい Lead レコードを作成します。その後、成功のトーストメッセージが表示されます。
この例から明確にわかること:
新しいレコードのためのレコード変数を定義すること。
Fields タブを介してバインドされた入力フィールドを使用してそのレコード変数を埋めること。
そのデータを Salesforce に保存するために 「Create from Record Variable」 インタラクションを使用すること。
重要な考慮事項
レコード変数は必須です: これらの CRUD インタラクションは レコード変数の使用を 必要とします。
取得のための「On Load」: 既存のレコードデータを取得するには、 「On Load」インタラクション と「Get Records」を使用してください。
入力のデータバインディング: 入力コンポーネントをレコード変数のフィールドに接続するためにデータバインディングを使用してください。
非表示フィールドの制限: 現在、CRUD インタラクションは 非表示フィールドのマッピングをサポートしていません(レコードタイプ ID やフィールド一覧に表示されないその他のフィールドなど)。非表示フィールドを設定する必要がある場合は、フローや将来の Avonni の更新などの代替手段を検討してください。本機能の改善は計画されています。
エラーハンドリング: (より複雑なロジックのためにフローを使用する場合は)「Execute Flow」インタラクションの「On Error」イベントを利用するなど、エラーハンドリングを追加することを検討してください。
権限: ユーザーは関連オブジェクトに対して適切な Salesforce 権限(作成、編集、削除)を持っている必要があります。
削除アクションの使用には注意を: 削除アクションは慎重に使用してください.
まとめ
Avonni Dynamic Components は、レコード変数と CRUD インタラクションを使用して Salesforce データとやり取りする強力な方法を提供します。これらの機能により、コードを書くことなく高度なデータ管理機能を構築でき、カスタムフォームの作成や関連レコードの更新に最適です。
最終更新
役に立ちましたか?