找到重复的记录时,可以使用 合并操作将它们合并为一个记录。
合并操作
合并是接受四个参数的未绑定操作:
| Name | 类型 | Description | 可选 |
|---|---|---|---|
Target |
crmbaseentity | 合并操作的目标。 | No |
Subordinate |
crmbaseentity | 要从中合并数据的实体记录。 | No |
UpdateContent |
crmbaseentity | 在合并操作期间要设置的更多实体属性。 | Yes |
PerformParentingChecks |
布尔 | 指示是否检查两个实体记录的父信息是否不同。 | No |
合并会将任何有用的数据从 Subordinate 记录移到 Target 记录。
Target 记录中的任何现有数据都不会被覆盖。 然后,Subordinate 记录将被停用。
若要执行此操作,调用方必须具有对标识为 Target 和 Subordinate 的两条记录的权限和访问权限。
使用 POST 请求发送数据以合并记录。
本示例合并两个帐户实体记录,同时更新将在合并后保留的记录的 accountnumber 属性。
请求:
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
由于参数未显式定义 Target、Subordinate 和 UpdateContent 属性类型,因此必须包含 @odata.type 注释以指定类型。
响应:
HTTP/1.1 204 No Content
OData-Version: 4.0
事件的合并行为
incident(case)表的合并行为不同于 account、contact 或 lead 表。
未使用
UpdateContent参数数据。合并是在用户的安全上下文中执行的
其他表的合并操作通过系统用户安全上下文执行。 由于事件单合并操作是在用户的安全上下文中执行的,因此用户必须具有执行合并操作所涉及的任何操作(例如重新设置相关记录的父记录)所需的安全权限。
如果执行记录合并的用户没有合并操作中包含的所有操作的权限,则合并操作将失败并回滚到原始状态。
另请参阅
使用 Web API 操作
合并重复记录
MergeRequest 类
管理指南:合并数据
Dynamics 365 for Service:合并案例