问题描述
我在 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))
我得到的结果是:
如果有人在此之前解决了这个问题,我将不胜感激!
解决方法
从 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 条回复,然后一切顺利!