Salesforce:sObject类中的DMLOptions字段是什么



我正在尝试序列化一个sObject,以便通过SOAP API将其从C#应用程序传递到Salesforce,并设置其DML选项字段。我需要(在一定程度上(在C#中重新创建sObject类。有人知道DMLOptions字段的名称吗?我找不到上面的文件。

在SOAP API中,您不会这样做。没错,在Apex中,它们可以是单个sObject的属性。但它们不是真的。我不认为它们可以(去(串行化,它们只有在下一次DML操作之前才有意义。事实上,如果你插入一个sObject列表,那么将它们作为Database.insert(myList, options);传递通常更有意义

在SOAP API中,它们比单个插入更接近Apex批量插入;它们是操作的属性,而不是对象,所以它们是在消息头中传递的。因此,如果确实需要的话,它的C#实现可以为它们创建一个字段,但在构建实际的XML时,您必须以某种方式对其进行解包并传入标头。

我不明白你为什么要手工做。为什么不让SF管理员在安装程序中为您生成一个WSDL文件;API并消费?

WSDL应该包含这样的部分:

<operation name="create">
<soap:operation soapAction=""/>
<input>
<soap:header use="literal" message="tns:Header" part="SessionHeader"/>
<soap:header use="literal" message="tns:Header" part="AssignmentRuleHeader"/>
<soap:header use="literal" message="tns:Header" part="MruHeader"/>
<soap:header use="literal" message="tns:Header" part="AllowFieldTruncationHeader"/>
<soap:header use="literal" message="tns:Header" part="DisableFeedTrackingHeader"/>
<soap:header use="literal" message="tns:Header" part="StreamingEnabledHeader"/>
<soap:header use="literal" message="tns:Header" part="AllOrNoneHeader"/>
<soap:header use="literal" message="tns:Header" part="DuplicateRuleHeader"/>
<soap:header use="literal" message="tns:Header" part="LocaleOptions"/>
<soap:header use="literal" message="tns:Header" part="DebuggingHeader"/>
<soap:header use="literal" message="tns:Header" part="PackageVersionHeader"/>
<soap:header use="literal" message="tns:Header" part="EmailHeader"/>
<soap:body parts="parameters" use="literal"/>
</input>
<output>
<soap:header use="literal" message="tns:Header" part="DebuggingInfo"/>
<soap:header use="literal" message="tns:Header" part="LimitInfoHeader"/>
<soap:body use="literal"/>
</output>

这是你的暗示。使用AllOrNoneHeader, AllowFieldTruncationHeader, AssignmentRuleHeader, EmailHeader, LocaleOptions标头复制功能。

检查https://developer.salesforce.com/blogs/developer-relations/2015/06/salesforce-soap-api-sample-wsdls.html有关更多信息(搜索带有">AllOrNoneHeader提供提交或回滚控制"的部分(

最新更新