2012-03-29 73 views
1

我试图从Biztalk与SalesForce进行通信。集成Biztalk和SalesForce

要进行POC,我只需登录我试过如下: 的Visual Studio: 生成模式从Salesforce合作伙伴WSDL

的Biztalk: 我做了一个接收位置读取包含用户名一login.xml消息,密码。然后导入SforceService.BindingInfo.xml以在其上创建我的sendport和设置过滤器。

When I run the example i get the following exception: 
WcfSendPort_SforceService_Soap 
https://login.salesforce.com/services/Soap/u/24.0 
    System.InvalidOperationException: An action mapping was defined but BTS.Operation 
was not found in the message context. 
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient 

我要来调用Web服务SalesForce公司以下操作:

<Operation Name="login" Action="" /> 

如何调用登录,而无需使用业务流程的任何想法?

回答

1

http://msdn.microsoft.com/en-us/library/bb743856.aspx

在表达式形状指定动作映射为WCF.Action不被支持。您需要在WCF传输属性对话框中指定动作映射。然后WCF适配器将通过使用BTS.Operation上下文属性来查找SOAP操作,该操作由业务流程设置为发送消息的端口上的操作名称。

如果传出消息使用未设置http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation属性的基于内容的路由(CBR)进行路由,则WCF发送适配器会将整个操作映射字符串设置为传出WCF消息的操作。要解决此问题,您可以执行以下任一操作:

将发送端口上的操作字段设置为http://MyService/IMyContract/MyAction1

在管道中设置BTS.Operation上下文属性。例如,将值http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation设置为Operation1。

将操作字段留空并使用来自传入消息的操作。

您还可以使用BizTalk WCF服务使用向导通过单个操作或操作映射来使用WCF服务。有关更多详细信息,请参阅如何使用BizTalk WCF服务使用向导来使用WCF服务。