Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Nachdem Sie die WCF-Clientklasse generiert haben, können Sie einen WCF-Client (Instanz) erstellen und dessen Methoden aufrufen, um den Microsoft BizTalk Adapter für mySAP Business Suite zu nutzen. Informationen zum Generieren der WCF-Clientklasse und des Hilfscodes für Vorgänge, die der SAP-Adapter verfügbar macht, finden Sie unter Generieren eines WCF-Clients oder eines WCF-Dienstvertrags für SAP-Lösungsartefakte.
Zum Erstellen des WCF-Clients müssen Sie eine Endpunktadresse und eine Bindung angeben. Die Endpunktadresse muss einen gültigen SAP-Verbindungs-URI enthalten, und die Bindung muss eine Instanz einer SAP-Bindung (SAPBinding) sein. Weitere Informationen zum SAP-Verbindungs-URI finden Sie unter Erstellen des SAP-Systemverbindungs-URI.
Sie können die SAP-Bindung und die Endpunktadresse in Ihrem Code oder in einer Konfigurationsdatei angeben. Wenn Sie das Add Adapter Service Reference Visual Studio Plug-In verwenden, um die WCF-Clientklasse zu generieren, wird auch eine Konfigurationsdatei (app.config) für Ihr Projekt erstellt. Diese Datei enthält Konfigurationseinstellungen, die die Bindungseigenschaften und Verbindungsinformationen (mit Ausnahme von Anmeldeinformationen) widerspiegeln, die Sie angegeben haben, wenn Sie mit dem SAP-System mit dem Add Adapter Service Reference Plug-In verbunden sind.
Angeben der Bindungs- und Endpunktadresse im Code
Der folgende Code zeigt, wie Sie einen WCF-Client erstellen, indem Sie die Bindungs- und Endpunktadresse im Code angeben. Es ist eine bewährte Praxis, die SAP-Systemanmeldeinformationen mithilfe der Eigenschaft ClientCredentials des WCF-Clients anzugeben, anstatt im Verbindungs-URI, der für die Endpunktadresse bereitgestellt wird.
// A WCF client that targets an RFC is created
// by using a binding object and endpoint address
SAPBinding sapBinding = new SAPBinding();
EndpointAddress sapAddress = new EndpointAddress("sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00");
RfcClient rfcClient = new RfcClient(sapBinding, sapAddress);
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";
rfcClient.ClientCredentials.UserName.Password = "YourPassword";
rfcClient.Open();
Angeben der Bindungs- und Endpunktadresse in einer Konfigurationsdatei
Der folgende Code zeigt, wie Sie einen WCF-Client erstellen, indem Sie die Bindungs- und Endpunktadresse in einer app.config Datei angeben.
// A WCF client that targets an RFC is created
// by specifying the client endpoint information in app.config
RfcClient rfcClient = new RfcClient("SAPBinding_Rfc");
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";
rfcClient.ClientCredentials.UserName.Password = "YourPassword";
rfcClient.Open();
Der folgende XML-Code zeigt die Konfigurationsdatei, die vom Add Adapter Service Reference Plug-In für die EMP-Tabelle erstellt wurde. Diese Datei enthält die Clientendpunktkonfiguration, auf die im vorherigen Beispiel verwiesen wird.
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.serviceModel>
<bindings>
<sapBinding>
<binding name="SAPBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" receiveIdocFormat="Typed"
generateFlatFileCompatibleIdocSchema="true" maxConnectionsPerSystem="50"
enableConnectionPooling="true" idleConnectionTimeout="00:15:00"
flatFileSegmentIndicator="SegmentDefinition" enablePerformanceCounters="false"
autoConfirmSentIdocs="false"
acceptCredentialsInUri="false" padReceivedIdocWithSpaces="false"
enableBizTalkCompatibilityMode="false" />
</sapBinding>
</bindings>
<client>
<endpoint address="sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00?RfcSdkTrace=False&AbapDebug=False&UseSapGui=Without"
binding="sapBinding" bindingConfiguration="SAPBinding" contract="Rfc"
name="SAPBinding_Rfc" />
</client>
</system.serviceModel>
</configuration>
Wenn ein Projekt über mehrere WCF-Clients verfügt, werden mehrere Clientendpunkteinträge in der Konfigurationsdatei definiert. Jeder WCF-Clienteintrag hat einen eindeutigen Namen basierend auf seiner Bindungskonfiguration und den SAP-Systemartefakten (z. B. Rfc und Trfc); Beispiel: "SAPBinding_Rfc". Wenn Sie mehrere Male eine Verbindung herstellen, um die WCF-Clients in Ihrem Projekt zu erstellen, werden mehrere Bindungskonfigurationseinträge erstellt, eine für jede Verbindung. Diese Bindungskonfigurationseinträge werden wie folgt benannt: SAPBinding1, SAPBinding2 usw. Jeder während einer bestimmten Verbindung erstellte Clientendpunkteintrag verweist auf den Bindungseintrag, der während dieser Verbindung erstellt wurde.
Von Bedeutung
Der SAP-Adapter zeigt verschiedene SAP-Artefakte desselben Typs (z. B. RFC, TRFC und IDOC) als verschiedene Vorgänge desselben Servicevertrags an. Beispielsweise werden zwei verschiedene RFCs, RFC_EXAMPLE_A und RFC_EXAMPLE_B, beide unter demselben Servicevertrag ("Rfc") angezeigt. Dies bedeutet, dass beide RFCs von derselben WCF-Clientklasse, RfcClient, aufgerufen werden und dass die Parameter für beide RFCs im selben Namespace deklariert werden. Daher müssen Sie den WCF-Client für beide RFCs während derselben Add-Adapter Service Reference Plug-In-Sitzung (Verbindung) generieren, um zu vermeiden, dass beim Erstellen der Lösung ein Namespacekonflikt auftritt.
Siehe auch
Entwickeln von SAP-Anwendungen mithilfe des WCF-Dienstmodells
Generieren eines WCF-Clients oder eines WCF-Dienstvertrags für SAP-Lösungsartefakte
Erstellen des SAP-Systemverbindungs-URI