2012-03-29 13 views
1

Ich versuche, mit SalesForce von Biztalk zu kommunizieren.Integration von BizTalk und SalesForce

Um einen POC zu machen, wo ich ich folgendes melde Dich versucht: Visual Studio: generieren Schema von Salesforce Partner Wsdl

Biztalk: ich eine Stelle erhalten hat, die eine login.xml Nachricht Benutzernamen enthält, liest und Passwort. Dann importierte die SforceService.BindingInfo.xml, um meine Sendport- und Setup-Filter darauf zu machen.

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 

ich die folgende Operation auf der Salesforce Webservice aufrufen wollen:

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

Alle Ideen, wie Login aufrufen, ohne Orchestrierungen zu verwenden?

Antwort

1

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

Angeben Aktionszuordnung für WCF.Action in einer Expression Form wird nicht unterstützt. Sie müssen im Dialogfeld WCF-Transporteigenschaften die Aktionszuordnung angeben. Anschließend sucht der WCF-Adapter die SOAP-Aktion mithilfe der BTS.Operation-Kontexteigenschaft, die von der Orchestrierung auf den Namen der Operation an dem Port festgelegt wird, an den die Nachricht gesendet wird.

Wenn ausgehende Nachrichten mit content-based Routing (CBR) weitergeleitet werden, wobei die http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation-Eigenschaft nicht festgelegt ist, legen WCF-Adapter die gesamte Aktionszuordnungszeichenfolge auf die ausgehenden WCF-Nachrichten fest. Um dies zu umgehen, können Sie einen der folgenden Schritte ausführen:

Legen Sie das Aktionsfeld für den Sendeport auf http://MyService/IMyContract/MyAction1 fest.

Legen Sie die BTS.Operation-Kontexteigenschaft in einer Pipeline fest. Stellen Sie beispielsweise den Wert http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation auf Operation1 ein.

Lassen Sie das Aktionsfeld leer und verwenden Sie stattdessen die Aktion der eingehenden Nachricht.

Sie können auch den BizTalk WCF-Dienstkonsumierungs-Assistenten verwenden, um die WCF-Dienste mit einer einzelnen Aktion oder Aktionszuordnung zu verwenden. Weitere Informationen finden Sie unter Verwenden des BizTalk WCF-Dienstkonsumierungs-Assistenten zum Akzeptieren eines WCF-Diensts.