我实现了一个批处理作业,该作业在同一个salesforce实例中进行webservice调用,然后该实例应该发送带有pdf附件的电子邮件, 因为您无法直接从批处理作业发送pdf附件。我的webservice调用如下所示:
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的解决方案。如果你能帮助我会很感激!谢谢!
答案 0 :(得分:2)
您无法在批处理顶点获得这样的会话ID,因为它在系统上下文中运行,因此没有特定的用户信息可供检索。
更新:
您有以下选择:
请注意,这些解决方案都不是理想的,您可能需要首先重新考虑使用Batch apex的原因,看看是否可以以不同的方式重新实现它。