【问题标题】:SalesForce API Soap create() an Attachment on Visual StudioSalesForce API Soap create() Visual Studio 上的附件
【发布时间】:2015-09-03 13:03:02
【问题描述】:

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

stackoverflow 上关于这个问题的很多答案似乎已经过时,因为这个 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。

谢谢。

【问题讨论】:

  • 创建一个 Web 引用,而不是一个服务引用(或者,您应该能够为除 session 之外的所有标头传递 null,您需要从登录调用中正确填充)跨度>

标签: c# soap salesforce


【解决方案1】:

你试过这种方法吗?

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) {...}

【讨论】:

  • 那行得通。我需要将 WSDL 添加为 WebReference 并使用 SforceService 如您所说。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-01
  • 2023-03-28
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多