この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

レコードのマージ

データベースのリード、取引先責任者、ケース、または取引先レコードが重複している場合、データをクリーンアップしてレコードを統合することをお勧めします。同じ sObject 型のレコードを 3 つまでマージできます。merge 操作は、最大 3 つのレコードを 1 つのレコードにマージし、他のレコードを削除してから、関連レコードを再ペアレント化します。

次に、既存の取引先レコードを主取引先にマージする方法を示します。マージする取引先には、マージ操作後に主取引先レコードに移動される関連取引先責任者があります。また、マージするレコードはマージ後に削除され、1 つのレコードのみがデータベースに残ります。この例では、2 つの取引先のリストを作成してからリストを挿入します。次に、クエリを実行して新規取引先レコードをデータベースから取得し、マージする取引先に取引先責任者を追加します。その後、2 つの取引先をマージします。最後に、取引先責任者が主取引先に移動していて、2 つ目の取引先が削除されていることを確認します。

この 2 番目の例は前の例と同様ですが、Database.merge メソッド (merge ステートメントではない) を使用する点が異なります。Database.merge の最後の引数は false に設定され、この操作で発生したすべてのエラーが、例外を使用するのではなく、マージ結果で返されるようにします。この例では、2 つの取引先を主取引先にマージし、返された結果を取得します。また、この例では、主取引先と 2 つの複製が作成され、それぞれが 1 つの子取引先責任者を持ちます。これにより、マージ後に取引先責任者が主取引先に移動されることが検証されます。

マージに関する考慮事項

sObject レコードをマージする場合、次のルールとガイドラインを考慮する必要があります。
  • リード、取引先責任者、ケース、および取引先のみがマージ可能です。「DML 操作をサポートしない sObject」を参照してください。
  • 1 つの merge メソッドには、1 つの主レコードと最大 2 つのその他の sObject レコードを渡すことができます。
  • Apex マージ操作を使用すると、主レコードの項目値の方が、マージされたレコードの対応する項目値よりも常に優先されます。マージされたレコード項目値を維持するには、マージを実行する前に、この項目値を単に主 sObject に設定します。
  • 外部 ID 項目では、merge を使用することはできません。

リード、取引先責任者、および取引先のマージについての詳細は、Salesforce オンラインヘルプを参照してください。