从Mule SalesForce连接器访问会话ID

时间:2014-08-04 21:42:55

标签: web-services salesforce mule apex

我有一个使用SalesForce连接器建立连接并通过API执行标准操作的流程。我有一个新的要求,即Mule充当作为服务公开的Apex类的Web服务代理。在执行Apex服务之前,Mule需要插入或创建会话ID。由于其他Mule流可能会有一个有效的会话ID,我不想不必要地创建一个。反正有没有检索SalesForce连接器正在创建和保持的会话ID,以便我可以在我的其他流程中使用它?

或者是否有更简单的方法来调用可以使用SalesForce连接器的Apex服务?

1 个答案:

答案 0 :(得分:0)

因此,对于这个项目,我尝试构建一个Web服务代理模式来管理Apex Web服务,管理对Salesforce的登录,并将带有会话ID的Soap有效负载传递给Salesforce端点。

我最终构建了一个扩展AbstractMessageTransformer的转换器,以及另一个扩展Mule的SalesforceConnector模块的类。转换器使用其现有的SalesforceConnector实例或创建一个新的实例,从LoginResult创建/获取sessionId和服务器Url。变换器然后操纵XML以设置sessionId并返回消息。

我找不到获取连接器池的方法,但只要会话处于活动状态,此方法只会进行一次登录调用,如果不是,则会重新连接。