Utilisation de l’outil Utilitaire de métadonnées ServiceModel avec l’adaptateur BizTalk pour mySAP Business Suite
Vous pouvez utiliser l’outil ServiceModel Metadata Utility Tool (svcutil.exe) pour générer une classe de client WCF ou un contrat de service WCF (interface) pour les opérations exposées par l’adaptateur Microsoft BizTalk pour mySAP Business Suite. Après avoir exécuté svcutil.exe pour générer une classe de client WCF ou un contrat de service WCF, vous pouvez inclure le fichier généré dans votre code et créer des instances de la classe générée ou implémenter un service WCF à partir de l’interface générée pour effectuer des opérations sur le système SAP.
L’utilisation de svcutil.exe vous oblige à fournir un URI de connexion qui contient des informations d’identification. Étant donné que, par défaut, l’adaptateur SAP désactive les informations d’identification dans l’URI de connexion, vous devez configurer svcutil.exe pour utiliser une liaison autre que celle par défaut pour l’adaptateur SAP. Vous pouvez également configurer d’autres propriétés de liaison dans la liaison autre que celle par défaut ; Par exemple, pour créer un client WCF pour les opérations BAPI, vous devez définir la propriété de liaison EnableSafeTyping sur true.
Les sections suivantes vous montrent comment configurer svcutil.exe et comment utiliser svcutil.exe pour générer du code client WCF ou un contrat de service WCF avec l’adaptateur SAP.
Configuration de svcutil.exe pour l’adaptateur SAP
Pour configurer svcutil.exe utiliser une liaison autre que celle par défaut, vous devez créer une copie locale de svcutil.exe, puis créer ou modifier une copie locale du fichier de configuration svcutil.exe.config.
Créez un dossier et copiez svcutil.exe dans le nouveau dossier. Vous pouvez généralement trouver svcutil.exe à l’emplacement d’installation du SDK Windows, en particulier C :\Program Files\Microsoft SDKs\Windows\v6.0\Bin.
Créez un fichier nommé svcutil.exe.config dans le nouveau dossier.
Ajoutez une liaison et un point de terminaison client au fichier svcutil.exe.config. Vous devez exécuter svcutil.exe à partir du nouveau dossier pour vous assurer que la configuration correcte est utilisée.
Important
L’attribut name du point de terminaison client doit spécifier le schéma utilisé dans l’URI de connexion. Cette valeur respecte la casse.
<configuration> <system.serviceModel> <client> <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint and the contract should be "IMetadataExchange" --> <endpoint name="sap" binding="sapBinding" bindingConfiguration="SAPBinding" contract="IMetadataExchange" /> </client> <bindings> <sapBinding> <binding name="SAPBinding" acceptCredentialsInUri="true"/> </sapBinding> </bindings> </system.serviceModel> </configuration>
Vous pouvez définir n’importe quelle propriété de liaison de l’adaptateur SAP dans la configuration de liaison. Par exemple, vous pouvez spécifier la liaison non par défaut suivante à utiliser svcutil.exe pour générer un client WCF pour les opérations BAPI.
<bindings>
<sapBinding>
<binding name="SAPBinding" acceptCredentialsInUri="true"/>
</sapBinding>
</bindings>
Pour plus d’informations sur la configuration d’une liaison autre que celle par défaut pour svcutil.exe, consultez Le point de terminaison de métadonnées sécurisées personnalisées.
Création d’une classe cliente WCF ou d’un contrat de service WCF avec svcutil.exe
Pour utiliser svcutil.exe afin de générer du code client WCF ou un contrat de service WCF (interface) pour l’adaptateur SAP, vous devez fournir un URI de connexion qui spécifie un point de terminaison WS-Metadata Exchange (MEX) et l’opération ou les opérations pour lesquelles vous souhaitez svcutil.exe générer du code. Vous devez également spécifier les informations d’identification de connexion pour le système SAP dans l’URI de connexion.
Notes
Avant de pouvoir utiliser svcutil.exe avec l’adaptateur SAP, vous devez le configurer pour utiliser une liaison autre que celle par défaut . Pour plus d’informations sur la procédure à suivre, consultez Configuration de svcutil.exe pour l’adaptateur SAP.
Vous spécifiez un point de terminaison MEX et des opérations cibles dans l’URI de connexion de l’adaptateur SAP de la manière suivante :
Vous devez inclure le paramètre « wsdl » dans la chaîne de requête. S’il s’agit du premier paramètre de la chaîne de requête, il est spécifié juste après le point d’interrogation ( ?). S’il ne s’agit pas du premier paramètre, il doit être précédé d’une esperluette (&).
Vous devez suivre le paramètre « wsdl » par un ou plusieurs paramètres « op ». Chaque paramètre « op » est précédé d’une esperluette (&) et spécifie l’ID de nœud d’une opération cible.
Les trois exemples suivants montrent comment cibler diverses opérations à l’aide de svcutil.exe.
Cet exemple crée une classe de client WCF pour RFC_CALCULATE_TAXES.
.\svcutil « sap ://User=YourUserName ; Passwd=YourPassword ; Client=800 ; Lang=EN ;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CALCULATE_TAXES »
Cet exemple crée une classe de client WCF pour l’IDOC SALESORDER_CREATEFROMDAT201 et SALESORDER_CREATEFROMDAT202.
.\svcutil « sap ://User=YourUserName ; Passwd=YourPassword ; Client=800 ; Lang=EN ;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Send&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT202//620/Send »
Cet exemple crée un contrat de service WCF pour recevoir l’IDOC SALESORDER_CREATEFROMDAT201 du système SAP. L’ID NODE spécifie une opération Receive. Étant donné que cet exemple traite de la récupération des métadonnées, il n’est pas nécessaire de spécifier les paramètres de l’écouteur dans le query_string de l’URI de connexion.
.\svcutil « sap ://User=YourUserName ; Passwd=YourPassword ; Client=800 ; Lang=EN ;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Receive »
Important
Vous devez placer l’URI de connexion entre guillemets sur la ligne de commande. Sinon, svcutil.exe tente de récupérer des métadonnées pour les opérations que l’adaptateur SAP ne prend pas en charge. Les résultats d’une telle tentative ne sont pas définis.
Par défaut, svcutil.exe place le code généré dans le fichier output.cs ; Toutefois, vous pouvez modifier le nom du fichier de sortie et de nombreuses autres options que svcutil.exe utilise en définissant des commutateurs de ligne de commande. Pour plus d’informations sur les options que svcutil.exe prend en charge, consultez l’outil Utilitaire de métadonnées ServiceModel (Svcutil.exe).
Svcutil.exe ne permet pas de rechercher des opérations (par exemple, à l’aide de caractères génériques). Vous devez spécifier explicitement des ID de nœud pour les opérations spécifiques que vous souhaitez cibler. L’ID de nœud d’une opération équivaut à sa chaîne d’action de message. Vous ne pouvez pas spécifier d’ID de nœud qui font référence uniquement à des catégories. Pour plus d’informations sur les ID de nœud exposés par l’adaptateur SAP, consultez Métadonnées ID de nœud.
Le plug-in Visual Studio Add Adapter Service Reference fournit des fonctionnalités avancées de navigation et de recherche qui peuvent considérablement simplifier la génération d’une classe de client WCF et d’un contrat de service WCF. Pour plus d’informations sur le plug-in Add Adapter Service Reference Plug-in, consultez Générer un client WCF ou un contrat de service WCF pour les artefacts de solution SAP.