Partager via


Configurer une liaison cliente pour le système SAP

Une fois que vous avez généré la classe de client WCF, vous pouvez créer un client WCF (instance) et appeler ses méthodes pour utiliser l’adaptateur Microsoft BizTalk pour mySAP Business Suite. Pour plus d’informations sur la génération de la classe de client WCF et du code d’assistance pour les opérations exposées par l’adaptateur SAP, consultez Générer un client WCF ou un contrat de service WCF pour les artefacts de solution SAP.

Pour créer le client WCF, vous devez spécifier une adresse de point de terminaison et une liaison. L’adresse du point de terminaison doit contenir un URI de connexion SAP valide, et la liaison doit être une instance d’une liaison SAP (SAPBinding). Pour plus d’informations sur l’URI de connexion SAP, consultez Créer l’URI de connexion système SAP.

Vous pouvez spécifier la liaison SAP et l’adresse du point de terminaison dans votre code ou dans un fichier de configuration. Lorsque vous utilisez le plug-in Visual Studio Add Adapter Service Reference pour générer la classe de client WCF, un fichier de configuration (app.config) est également créé pour votre projet. Ce fichier contient des paramètres de configuration qui reflètent les propriétés de liaison et les informations de connexion (à l’exception des informations d’identification) que vous avez spécifiées lorsque vous vous êtes connecté au système SAP avec le plug-in Add Adapter Service Reference.

Spécification de la liaison et de l’adresse de point de terminaison dans le code

Le code suivant montre comment créer un client WCF en spécifiant la liaison et l’adresse de point de terminaison dans le code. Il est recommandé de spécifier les informations d’identification système SAP à l’aide de la propriété ClientCredentials du client WCF plutôt que dans l’URI de connexion fourni pour l’adresse du point de terminaison.

// 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();  

Spécification de la liaison et de l’adresse de point de terminaison dans un fichier de configuration

Le code suivant montre comment créer un client WCF en spécifiant la liaison et l’adresse de point de terminaison dans un fichier app.config.

// 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();  

Le code XML suivant montre le fichier de configuration créé pour la table EMP par le plug-in Add Adapter Reference Service. Ce fichier contient la configuration du point de terminaison client référencée dans l’exemple précédent.

<?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>  

Si un projet a plusieurs clients WCF, plusieurs entrées de point de terminaison client sont définies dans le fichier de configuration. Chaque entrée de client WCF aura un nom unique en fonction de sa configuration de liaison et des artefacts système SAP cibles (tels que Rfc et Trfc) ; par exemple, « SAPBinding_Rfc ». Si vous vous connectez plusieurs fois pour créer les clients WCF dans votre projet, plusieurs entrées de configuration de liaison sont créées, une pour chaque connexion. Ces entrées de configuration de liaison sont nommées de la manière suivante : SAPBinding1, SAPBinding2, etc. Chaque entrée de point de terminaison client créée lors d’une connexion spécifique fait référence à l’entrée de liaison créée pendant cette connexion.

Important

L’adaptateur SAP fait apparaître différents artefacts SAP du même type (tels que RFC, TRFC et IDOC) en tant qu’opérations différentes du même contrat de service. Par exemple, deux RFC différentes, RFC_EXAMPLE_A et RFC_EXAMPLE_B, sont toutes deux exposées sous le même contrat de service (« Rfc »). Cela signifie que les deux RFC seront appelés par la même classe de client WCF, RfcClient, et que les paramètres des deux RFC seront déclarés dans le même espace de noms. Par conséquent, vous devez générer le client WCF pour les deux RFC au cours de la même session de plug-in Add Adapter Service Reference (connexion) afin d’éviter de rencontrer une collision d’espace de noms lorsque vous générez votre solution.

Voir aussi

Développer des applications SAP à l’aide du modèle de service WCF
Générer un client WCF ou un contrat de service WCF pour les artefacts de solution SAP
Créer l’URI de connexion système SAP