merge()
3 つまでのレコードを 1 つにマージします。
構文
使用方法
同じオブジェクト種別のレコードをそのレコードの 1 つにマージし、その他を削除し、そして、関連レコードを再度親にするために、このコールを使用します。各マージ操作は、1 回のトランザクションで行われます。バッチマージは複数のトランザクション (バッチ内の各要素に対して 1 つ) を持っています。
サポートされているオブジェクト種別は、Lead、Contact および Account のみです。
masterRecord 項目は、他のレコードのマージ先である親レコードがどれであるかを示します。マージ中に削除されたレコードを表示させるために、queryAll() を使用可能です。
主レコード内の値より優先される主レコード以外のレコードからの項目値があるかをマージコールの前に決定することを、このコールは要求します。そのため、項目名とその新しい値は、更新のコールの場合と同様に、MergeRequest の masterRecord に設定する必要があります。
- 1 つの SOAP コール内に、最大 200 件のマージ要求を作成可能です。
- 親レコードを含めて、最大 3 つのレコードが 1 つの要求にマージ可能です。これは、Salesforce のユーザインターフェースと同じ制限です。マージするレコードが 3 つ以上ある場合は、エラー防止のために各要求内で同じ masterRecord を使用します。
- 外部 ID 項目では、merge() を使用することはできません。
指定の時間内にマージされたすべてのレコードを見つけるには、次に示すような SELECT ステートメントと一緒に queryAll() を使用します。
SystemModstamp で絞り込むことにより、最も関連するレコードに結果を狭めることが、推奨されるベストプラクティスです。
サンプルコード —Java
このサンプルでは、1 つの取引先を主取引先とマージします。2 つの取引先を作成し、主取引先とマージするというメモを取引先に添付します。マージ後、マージされた取引先の ID および更新された子レコードの数を書き込みます。この場合、更新された子レコードの数は 1 です。マージされた取引先のメモが主取引先に移動したためです。
サンプルコード —C#
このサンプルでは、1 つの取引先を主取引先とマージします。2 つの取引先を作成し、主取引先とマージするというメモを取引先に添付します。マージ後、マージされた取引先の ID および更新された子レコードの数を書き込みます。この場合、更新された子レコードの数は 1 です。マージされた取引先のメモが主取引先に移動したためです。
引数
このコールは MergeRequest オブジェクトの配列を受け取ります。MergeRequest オブジェクトには、次のプロパティが含まれます。