SalesForce API Soap 在 Visual Studio 上创建()一个附件

SalesForce API Soap create() an Attachment on Visual Studio

我开始在一个项目中使用 SalesForce SOAP API Enterprise,但我卡在了 create() 方法上。

Whosebug 上关于此问题的许多答案似乎已经过时,因为此 API 上的 create() 不再像过去那样仅接收 SObject。

我创建了所有这些对象,但我在 PackageVersion[] 和 LimitInfo[] 上遇到问题,我从服务器收到空响应。

这是我正在做的事情:

        client = new SoapClient("Soap1", endpoint);
        String sqlQuery = "SELECT ID, CloseDate, StageName, Name FROM Opportunity";

        QueryResult qr = new QueryResult();
        client.query(header, null, null, null, sqlQuery, out qr);
        Attachment att = new Attachment();

        byte[] pdf = File.ReadAllBytes("D:\teste.pdf");

        att.Body = pdf;
        att.Name = "Attachment Teste";
        att.Parent = qr.records[0];
        att.ParentId = qr.records[0].Id;                     

        DebuggingInfo debug = client.create(header, assignHeader, mruHeader, 
            allowField, disableFeed, streamingHeader, allOrNoneheader, duplicateHeader, 
            localeOptions, debugHeader, packVersion, emailHeader,new sObject[] { att },
            out limitInfo, out saveResult);

我正在创建所有这些对象,如下所示:

    private static SessionHeader header = new SessionHeader();
    private static AssignmentRuleHeader assignHeader = new AssignmentRuleHeader();
    private static MruHeader mruHeader = new MruHeader();
    private static AllowFieldTruncationHeader allowField = new    AllowFieldTruncationHeader();
    private static DisableFeedTrackingHeader disableFeed = new DisableFeedTrackingHeader();
    private static StreamingEnabledHeader streamingHeader = new StreamingEnabledHeader();
    private static AllOrNoneHeader allOrNoneheader = new AllOrNoneHeader();
    private static DuplicateRuleHeader duplicateHeader = new DuplicateRuleHeader();
    private static LocaleOptions localeOptions = new LocaleOptions();
    private static DebuggingHeader debugHeader = new DebuggingHeader();
    private static PackageVersion[] packVersion;
    private static EmailHeader emailHeader = new EmailHeader();
    private static LimitInfo[] limitInfo;
    private static SaveResult[] saveResult;

谁能告诉我是否还有另一个 WSDL 具有仅将 SObject 作为参数的 create()?

如果没有,谁能帮忙举个例子或解释一下这个 create() 方法?

salesforce.com 上的文档似乎已经过时,因为那里的 create() 方法只接收一个 SObject。

谢谢。

你试过这种方法吗?

SforceService binding = new SforceService();
binding.login("xxx", "yyy");
binding.SessionHeaderValue = new Service.SessionHeader();
binding.SessionHeaderValue.sessionId = "sessionId";
binding.Url = "serverUrl";
binding = service.query(String.Format("select id, whoid...."))
var bindingSize = binding.size;
foreach (var sObject in binding.records) {...}