【问题标题】:Upload a file attachment for Salesforce in C#在 C# 中为 Salesforce 上传文件附件
【发布时间】:2013-08-30 19:47:39
【问题描述】:

我见过this example 在 Java 中构建附件并将其发送到 Salesforce,但这是如何在 C# 中完成的?

编辑 - 我也使用 this page 作为参考,但我仍然不知道如何完成我尝试创建和保存附件的最后一部分。

SoapClient client = new SoapClient();
LoginResult lr = client.login(new LoginScopeHeader(), username, password);

FileInfo fileInfo = new FileInfo(myFileLocation);
FileStream stream = File.OpenRead(myFileLocation);
byte[] byteArray = new byte[fileInfo.Length];
stream.Read(byteArray, 0, byteArray.Length);

Attachment attachment = new Attachment();
attachment.Body = byteArray;
attachment.Name = myFileName + ".txt";
attachment.IsPrivate = false;

SaveResult saveResult = client.create(new sObject[] { attachment })[0];

【问题讨论】:

    标签: c# salesforce soap-client


    【解决方案1】:

    总体上看起来是正确的。进行以下更改。

    调用 login 后,需要将生成的 SessionId 和 ServerUrl 分配给客户端。

    SoapClient client = new SoapClient();
    LoginResult lr = client.login(new LoginScopeHeader(), username, password);
    client.SessionHeaderValue = new SforceService.SessionHeader();
    client.SessionHeaderValue.sessionId = li.sessionId;
    client.Url = loginResult.serverUrl;
    

    您应该检查 SaveResult 以查看记录是否已创建以及新的 Id 是什么。

    //...
    SaveResult saveResult = client.create(new sObject[] { attachment })[0];
    if (saveResult .success){ 
        // saveResult.id contains id of newly created attachment
    } else {
        //saveResult .errors[0] contains reason why attachment couldn't be created.
    }
    

    【讨论】:

    • SoapClient 没有 SessionHeaderValue 或 Url 参数,并且 SforceService 对我来说不是可用的对象。如何让这些对象出现?我正在使用 Salesforce Enterprise wsdl。
    • 我必须将企业 wsdl 添加为 WEB 参考,而不仅仅是服务参考。这在 VS2012 中有点困难,但目前正在工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2015-03-30
    相关资源
    最近更新 更多