【问题标题】:Python - Dynamics CRM Web API - SuppressDuplicateDetection Not workingPython - Dynamics CRM Web API - SuppressDuplicateDetection 不工作
【发布时间】:2021-05-29 01:53:39
【问题描述】:

我在 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":"一条记录 未创建或更新,因为当前记录的副本 已经存在。"}}'

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

【问题讨论】:

    标签: python api dynamics-crm dynamics-crm-webapi


    【解决方案1】:

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

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

    this.SuppressDuplicateDetection = true  // or false
    
    "SuppressDuplicateDetection": {
         "typeName": "Edm.Boolean", "structuralProperty": 1
     }
    

    【讨论】:

    • 你太棒了,谢谢!这最终奏效了。
    • @GrantCulp 乐于助人:)
    【解决方案2】:

    谢谢@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 响应并且一切顺利!

    【讨论】:

    • 页眉中也需要吗?我猜不是
    • @ArunVinoth 你不需要它在标题只是正文。如果我阅读正确,文档会有点误导。
    • 同意。上周我提出了一个 github 问题,让我们看看进一步的更新。 github.com/MicrosoftDocs/powerapps-docs/issues/2166
    猜你喜欢
    • 2017-03-15
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多