Python - Dynamics CRM Web API - SuppressDuplicateDetection 不工作

问题描述

我在 Dynamics CRM API 中遇到了 Suppress Duplicate Detection 功能的问题。我正在对潜在客户进行资格审查,并且在某些潜在客户上触发了重复检测。我有一些逻辑来决定我们是否要抑制某些线索,我想绕过该检测。

发生的情况是,当我在请求标头中设置 MSCRM.SuppressDuplicateDetection: true 时它不起作用,它仍然不符合潜在客户的要求。

这是我的完整代码

    api_surpress_dup_detection_headers = {
    "Authorization": BEARER,"if-none-match": None,"OData-Version": "4.0","OData-MaxVersion": "4.0","Content-Type": "application/json","Accept": "application/json","MSCRM.SuppressDuplicateDetection": "true","If-Match": "*"
}

lead_qualify_url = f"{data_url}leads({lead_guid})/Microsoft.Dynamics.CRM.QualifyLead"
data = {
    'CreateAccount': False,'CreateContact': True,'CreateOpportunity':False,'Status':3
}
qualify_lead_response = requests.post(lead_qualify_url,headers=api_surpress_dup_detection_headers,data=json.dumps(data))

我得到的结果是:

'{"error":{"code":"0x80040333","message":"一条记录 未创建或更新,因为与当前记录重复 已经存在。"}}'

如果有人在此之前解决了这个问题,我将不胜感激!

解决方法

documentation,我看到在请求标头中添加 MSCRM.SuppressDuplicateDetection 适用于 CREATE 和 UPDATE 请求。

对于 QualifyLead 操作 - 这可能略有不同。而不是添加请求标头 - 您可能需要像 this blog 中解释的那样包含在有效负载中。

this.SuppressDuplicateDetection = true  // or false

"SuppressDuplicateDetection": {
     "typeName": "Edm.Boolean","structuralProperty": 1
 }
,

谢谢@Arun Vinoth 这是我使用的最终代码,以防其他人有这个问题

api_surpress_dup_detection_headers = {
    'Authorization': BEARER,'OData-Version': '4.0','OData-MaxVersion': '4.0','Content-Type': 'application/json','Accept': 'application/json','MSCRM.SuppressDuplicateDetection': 'true'
}

lead_qualify_url = f"{data_url}leads({lead_guid})/Microsoft.Dynamics.CRM.QualifyLead"
data = {
    'CreateAccount': False,'CreateContact': True,'CreateOpportunity':False,'Status':3,'SuppressDuplicateDetection': True
}
qualify_lead_response = requests.post(lead_qualify_url,headers=api_surpress_dup_detection_headers,data=json.dumps(data))

您应该得到 200 条回复,然后一切顺利!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...