次の方法で共有


Web API を使用してテーブル行をマージする

重複するレコードが見つかると、 マージ アクションを使用してそれらを 1 つに結合できます。

マージできるのは、次のエンティティ型のみです。

マージ動作

マージは、次の 4 つのパラメーターを受け取るバインドされていないアクションです。

名前 タイプ Description オプション
Target crmbaseentity マージ操作のターゲット。 いいえ
Subordinate crmbaseentity データのマージ元となるエンティティ レコード。 いいえ
UpdateContent crmbaseentity マージ操作中に設定されるその他のエンティティ属性。 イエス
PerformParentingChecks ブール値 2 つのエンティティ レコードの親情報が異なるかどうかを確認するかどうかを示します。 いいえ

マージすると、 Subordinate レコードから Target レコードに便利なデータが移動されます。 Target レコード内の既存のデータは上書きされません。 その後、 Subordinate レコードは非アクティブ化されます。 この操作を実行するには、呼び出し元は、 TargetSubordinateとして識別されたレコードの両方に対する特権とアクセス権を持っている必要があります。

POST 要求を使用して、レコードをマージするデータを送信します。 次の使用例は、マージ後に残るレコードのプロパティ accountnumber 更新中に、2 つの取引先企業エンティティ レコードをマージします。

要求:

POST [Organization URI]/api/data/v9.2/Merge HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
  "Target": {
    "name": "Account 1",
    "accountid": "bb8055c0-aea6-ea11-a812-000d3a55d474",
    "@odata.type": "Microsoft.Dynamics.CRM.account"
  },
  "Subordinate": {
    "name": "Account 2",
    "accountid": "c38055c0-aea6-ea11-a812-000d3a55d474",
    "@odata.type": "Microsoft.Dynamics.CRM.account"
  },
  "UpdateContent": {
    "accountnumber": "1234",
    "@odata.type": "Microsoft.Dynamics.CRM.account"
  },
  "PerformParentingChecks": false
}

Important

TargetSubordinate、およびUpdateContentプロパティ型はパラメーターによって明示的に定義されていないため、型を指定するには@odata.type注釈を含める必要があります。

応答:

HTTP/1.1 204 No Content
OData-Version: 4.0

インシデントのマージ動作

incident (ケース) テーブルのマージ動作は、accountcontact、またはleadテーブルとは異なります。

  • UpdateContent パラメーター データは使用されません。

  • マージは、ユーザーのセキュリティ コンテキストで実行されます

    他のテーブルのマージ操作は、システム ユーザー セキュリティ コンテキストを使用して実行されます。 インシデントマージ操作はユーザーのセキュリティ コンテキストで実行されるため、ユーザーは、マージ操作で実行される関連レコードの再親設定などのアクションを実行するためのセキュリティ特権を持っている必要があります。

    レコードをマージするユーザーに、マージ操作に含まれるすべてのアクションに対する権限がない場合、マージ操作は失敗し、元の状態にロールバックされます。

こちらも参照ください

Web API アクションの使用
重複レコードの結合
MergeRequest クラス
管理ガイド: データのマージ
Dynamics 365 for Service: ケースを統合する