首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Salesforce:从Salesforce到Salesforce的SOAP登录

Salesforce:从Salesforce到Salesforce的SOAP登录
EN

Stack Overflow用户
提问于 2012-03-02 01:21:46
回答 1查看 3.5K关注 0票数 0

我实现了一个批处理作业,它在相同的salesforce实例中进行job服务调用,然后应该发送带有pdf附件的电子邮件,因为您不能直接从批处理作业发送pdf附件。我的webservice调用如下所示:

代码语言:javascript
复制
    public static void callOut(List ids){ 
        InvoiceAttachmentConnector.InvoiceAttachmentService ws = new InvoiceAttachmentConnector.InvoiceAttachmentService(); 
        ws.SessionHeader = new InvoiceAttachmentConnector.SessionHeader_element(); 
        ws.SessionHeader.sessionId = UserInfo.getSessionId(); 
        ws.handleInvoicePdfAttachment(ids); 
    }

但是在批处理作业中,UserInfo.getSessionId()返回null,因此我得到了一个INVALID_SESSION_ID异常。

如何登录才能获得SessionId?到目前为止,我还没有找到从salesforce登录到salesforce的解决方案。如果你能帮助我,我将不胜感激!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-02 05:38:00

您不能在批处理顶点中获得这样的会话Id,因为它在系统上下文中运行,因此没有特定的用户信息可供检索。

更新:

您有以下选项:

  1. 尝试从您的Salesforce org通过您组织中的wsdl to apex生成器运行web服务wsdl,以生成一些允许您登录的类。每次执行调用只允许一个web服务请求。
  2. 您可以创建一个站点页,您可以在批处理峰值中向该站点页发出HTTP get请求。这需要检索您想要为其发送PDF的项目的Ids以及要运行的特定用户,以便您使用System.runAs( user )方法。您可以在HTTPRequest标头或自定义设置中传递这些参数。

请注意,这两种解决方案都不是理想的,您可能希望重新考虑为什么首先使用批处理顶点,并看看是否可以用不同的方式重新实现它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9520877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档