使用 HTTP 或来自 Postman 的 API 调用为 Salesforce 合并记录和恢复已删除的记录?

Merge records and Restore Deleted records for Salesforce using HTTP or API call from Postman?

我正在尝试查看是否可以使用 API 调用(读取 REST 或 SOAP 调用)进行合并记录调用或恢复已删除的记录。尝试围绕它进行研究,但大多数示例需要用 Java 或 .NET 编写的自定义代码。

我正在尝试查看是否可以在没有自定义代码的情况下使用 HTTP 请求本身来完成。在最坏的情况下,我想可以编写与 Apex Web 服务相关的调用,但我正试图找到一种使用 HTTP 请求本身的方法。

我已经阅读了 API 文档,但我对如何实施仍然存疑。在 Salesforce API 中,我找不到合适的电话。

提前致谢。

SOAP API 有合并操作。将 WSDL 导入您的项目。先调用login,得到serverUrlsessionId,然后:

合并

要求

POST https://{redacted}.my.salesforce.com/services/Soap/u/52.0/{redacted} HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 882
Host: {redacted}
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com" xmlns:urn1="urn:sobject.partner.soap.sforce.com">
   <soapenv:Header>
      <urn:SessionHeader>
         <urn:sessionId>00D{redacted}</urn:sessionId>
      </urn:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <urn:merge>
         <urn:request>
            <urn:masterRecord>
               <urn1:type>Lead</urn1:type>
               <urn1:Id>00Q3O000003aFYtUAM</urn1:Id>
            </urn:masterRecord>
            <urn:recordToMergeIds>00Q3O000003aFYuUAM</urn:recordToMergeIds>
             <urn:recordToMergeIds>00Q3O000003aFYyUAM</urn:recordToMergeIds>
         </urn:request>
      </urn:merge>
   </soapenv:Body>
</soapenv:Envelope>

回应

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:partner.soap.sforce.com">
   <soapenv:Header>
      <LimitInfoHeader>
         <limitInfo>
            <current>65</current>
            <limit>5000000</limit>
            <type>API REQUESTS</type>
         </limitInfo>
      </LimitInfoHeader>
   </soapenv:Header>
   <soapenv:Body>
      <mergeResponse>
         <result>
            <id>00Q3O000003aFYtUAM</id>
            <mergedRecordIds>00Q3O000003aFYuUAM</mergedRecordIds>
            <mergedRecordIds>00Q3O000003aFYyUAM</mergedRecordIds>
            <success>true</success>
         </result>
      </mergeResponse>
   </soapenv:Body>
</soapenv:Envelope>

取消删除也有

POST https://{redacted}.my.salesforce.com/services/Soap/u/52.0/{redacted} HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 568
Host: {redacted}
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com">
   <soapenv:Header>
      <urn:SessionHeader>
         <urn:sessionId>00D{redacted}</urn:sessionId>
      </urn:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <urn:undelete>
         <urn:ids>a141q000001RfNeAAK</urn:ids>
         <urn:ids>a141q000001RfOVAA0</urn:ids>
      </urn:undelete>
   </soapenv:Body>
</soapenv:Envelope>

不要认为 REST API 有匹配操作。