我正在尝试与Biztalk的SalesForce进行沟通。
要创建我刚刚登录的POC,我尝试了以下操作: 视觉工作室: 从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
我想在SalesForce webservice上调用以下操作:
<Operation Name="login" Action="" />
关于如何在不使用编排的情况下调用登录的任何想法?
答案 0 :(得分:1)
来自http://msdn.microsoft.com/en-us/library/bb743856.aspx
不支持在表达式形状中指定WCF.Action的动作映射。您需要在WCF传输属性对话框中指定操作映射。然后,WCF适配器将使用BTS.Operation上下文属性查找SOAP操作,该属性将业务流程设置为发送消息的端口上的操作名称。
如果使用基于内容的路由(CBR)路由传出消息,但未设置http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation属性,则WCF发送适配器会将整个操作映射字符串设置为传出WCF消息的操作。要解决此问题,您可以执行以下操作之一:
将发送端口上的操作字段设置为http://MyService/IMyContract/MyAction1。
在管道中设置BTS.Operation上下文属性。例如,将http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation的值设置为Operation1。
将操作字段留空并改为使用传入消息中的操作。
您还可以使用BizTalk WCF服务使用向导来使用单个操作或操作映射来使用WCF服务。有关更多详细信息,请参阅如何使用BizTalk WCF服务使用向导来使用WCF服务。