Envoyer des IDOCs à SAP à l’aide de BizTalk Server
Tous les appels IDOC à SAP sont traités en interne comme des appels tRFC où l’adaptateur agit comme un client tRFC et appelle un RFC dans SAP pour envoyer un IDOC. Cette section fournit des informations sur l’envoi d’IDOCs à SAP à l’aide de l’adaptateur Microsoft BizTalk pour mySAP Business Suite avec BizTalk Server. L’adaptateur SAP fait l’objet de deux opérations différentes pour envoyer des IDOCs :
L’opération d’envoi permet aux clients d’adaptateur d’envoyer des IDOCs ayant un schéma fortement typé.
L’opération SendIdoc permet aux clients d’adaptateur d’envoyer des IDOCs ayant un schéma faiblement typé. Grâce à cela, les clients d’adaptateur peuvent envoyer des fichiers IDOCs à fichier plat au système SAP. L’IDOC de fichier plat entier est une valeur de nœud dans un message XML SendIdoc.
Pour plus d’informations sur la façon dont l’adaptateur SAP prend en charge l’envoi d’AIDOC à un système SAP, consultez Operations on IDOCs in SAP. Pour plus d’informations sur la structure des messages SOAP pour l’envoi d’un IDOC, consultez Schémas de message pour les opérations IDOC.
Scénarios BizTalk pour l’envoi d’IDOCs avec l’adaptateur SAP
Le tableau suivant fournit des scénarios BizTalk clés pour l’envoi d’IDOCs à un système SAP :
Entrée dans BizTalk | Traitement BizTalk | Sortie vers l’adaptateur |
---|---|---|
IDOC de fichier plat | Heure de conception des métadonnées 1. Définissez la propriété de liaison GenerateFlatFileCompatibleIdocSchema sur True. 2. Générez le schéma de l’opération d’envoi pour un IDOC spécifique à l’aide du complément Consume Adapter Service. Heure de conception de l’orchestration 1. Recevoir un IDOC à fichier plat 2. Utilisez le désassembleur de fichiers plats pour convertir un IDOC de fichier plat en IDOC XML à l’aide du schéma qui vient d’être généré. 3. Définissez l’action sur Envoyer l’opération. |
Envoyer un message |
IDOC de fichier plat | Heure de conception des métadonnées 1. Définissez la propriété de liaison GenerateFlatFileCompatibleIdocSchema sur True. 2. Générez le schéma de l’opération SendIdoc à partir du nœud IDOC à l’aide du complément Consume Adapter Service. Heure de conception de l’orchestration 1. Recevoir un IDOC à fichier plat 2. Utilisez le désassembleur de fichiers plats pour convertir l’IDOC de fichier plat en XML (dans ce cas, le message XML contient un <nœud idocData> qui contient l’intégralité du message Idoc de fichier plat) à l’aide du schéma qui vient d’être généré. 3. Définissez l’action sur l’opération SendIdoc . |
Message SendIdoc |
XML IDOC | Heure de conception des métadonnées - Générez le schéma de l’opération Envoyer pour un IDOC spécifique à l’aide du complément Consume Adapter Service. Heure de conception de l’orchestration 1. Recevez un IDOC XML. 2. Définissez l’action sur Envoyer l’opération. |
Envoyer un message |
IDOC de fichier plat dans un message XML | Heure de conception des métadonnées - Générez le schéma de l’opération SendIdoc à partir du nœud IDOC à l’aide du complément Consume Adapter Service. Heure de conception de l’orchestration 1. Recevez un message XML. 2. Définissez l’action sur l’opération SendIdoc . |
Message SendIdoc |
Comment envoyer un IDOC à un système SAP
L’exécution d’une opération sur un système SAP à l’aide de BizTalk Server implique des tâches procédurales décrites dans Blocs de construction pour créer des applications SAP. Pour envoyer un IDOC à un système SAP, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour l’IDOC que vous souhaitez appeler dans le système SAP. Lors de la génération du schéma, veillez à définir les propriétés de liaison requises, comme indiqué dans le tableau précédent. Pour obtenir des instructions sur la définition des propriétés de liaison, consultez Configurer les propriétés de liaison pour l’adaptateur SAP.
Créez des messages dans le projet BizTalk pour envoyer et recevoir des messages à partir du système SAP.
Créez une orchestration pour envoyer un IDOC à un système SAP.
Générez et déployez le projet BizTalk.
Configurez l’application BizTalk en créant des ports d’envoi et de réception physiques.
Démarrez l’application BizTalk.
Cette rubrique fournit des instructions pour effectuer ces tâches.
Exemple basé sur cette rubrique
Un exemple, IDOCSend, basé sur cette rubrique est également fourni avec le pack d’adaptateurs BizTalk. Pour plus d’informations, consultez Exemples pour l’adaptateur SAP.
Génération d’un schéma
Cette rubrique montre comment envoyer un IDOC à un système SAP en générant le schéma de l’opération Envoyer sous \IDOC\ORDERS\ORDERS05\ORDERS05. IDOC V3(620). Pour plus d’informations sur la façon de générer un schéma pour un IDOC particulier , consultez Parcourir, rechercher et obtenir des métadonnées pour les opérations IDOC dans SAP .
Définition des messages et des types de messages
Le schéma que vous avez généré précédemment décrit les « types » requis pour les messages dans l’orchestration. Un message est généralement une variable, dont le type est défini par le schéma correspondant. Vous devez lier le schéma que vous avez généré à la première étape aux messages de la vue Orchestration du projet BizTalk.
Pour cette rubrique, vous devez créer deux messages : l’un pour envoyer un IDOC au système SAP et l’autre pour recevoir une réponse.
Effectuez les étapes suivantes pour créer des messages et les lier au schéma :
Pour créer des messages et créer un lien vers le schéma
Ouvrez la vue d’orchestration du projet BizTalk, s’il n’est pas déjà ouvert. Cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.
Dans la vue Orchestration, cliquez avec le bouton droit sur Messages, puis cliquez sur Nouveau message.
Cliquez avec le bouton droit sur le nouveau message de création, puis sélectionnez Fenêtre Propriétés.
Dans le volet Propriétés de Message_1, procédez comme suit :
Propriété Pour Identificateur Tapez IDOCSend. Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez IDOCSend.SAPBindingSchema3, où IDOCSend est le nom de votre projet BizTalk. SAPBindingSchema3 est le schéma généré pour l’opération Send. Répétez l’étape précédente pour créer un nouveau message. Dans le volet Propriétés du nouveau message, procédez comme suit :
Propriété Pour Identificateur Tapez IDOCResponse. Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez IDOCSend.SAPBindingSchema4.
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour envoyer des IDOCs à un système SAP. Dans cette orchestration, vous supprimez un IDOC de fichier plat à un emplacement de réception défini. Ce fichier est converti en message de requête XML à l’aide d’un désassembleur de fichiers plats. L’adaptateur SAP consomme ce message et le transmet au système SAP. La réponse avec un GUID est reçue de SAP et est enregistrée à un autre emplacement. Vous devez inclure des formes d’envoi et de réception pour envoyer des IDOCs au système SAP et recevoir des réponses. Vous devez également inclure un désassembleur de fichiers plats pour convertir un fichier plat en fichier XML. Une orchestration classique à envoyer et un IDOC à un système SAP contient :
Envoyer et recevoir des formes pour envoyer des messages au système SAP et recevoir des réponses.
Port de réception unidirectionnel pour recevoir des fichiers IDOCs à fichiers plats à envoyer au système SAP.
Désassembleur de fichiers plats pour convertir l’IDOC de fichier plat en fichier XML.
Port d’envoi bidirectionnel pour envoyer l’IDOC au système SAP et recevoir des réponses.
Port d’envoi unidirectionnel pour envoyer les réponses du système SAP à un dossier.
Un exemple d’orchestration se présente comme suit :
Ajout de formes de message
Veillez à spécifier les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Forme sont les noms des formes de message, comme indiqué dans l’orchestration ci-dessus.
Forme | Type de forme | Propriétés |
---|---|---|
ReceiveFile | Recevoir | - Définissez Nom sur ReceiveFile - Définissez Activer sur True |
SendToLOB | Envoyer | - Définissez Nom sur SendToLOB |
ReceiveResponse | Recevoir | - Définissez Nom sur ReceiveResponse - Définissez Activer sur False |
SendResponse | Envoyer | - Définissez Nom sur SendResponse |
Ajout de ports
Veillez à spécifier les propriétés suivantes pour chacun des ports logiques. Les noms répertoriés dans la colonne Port sont les noms des ports affichés dans l’orchestration.
Port | Propriétés |
---|---|
FileIn | - Définissez Identificateur sur FileIn - Définissez Type sur FileInType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur réception |
LOBPort | - Définissez Identificateur sur LOBPort - Définissez Type sur LOBPortType - Définir le modèle de communication sur Requête-réponse - Définir le sens de communication sur Send-Receive |
SaveResponse | - Définir l’identificateur sur SaveResponse - Définissez Type sur SaveResponseType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur Envoyer |
Ajout d’un désassembleur de fichiers plats
Vous devez ajouter un désassembleur de fichiers plats à votre orchestration pour convertir l’IDOC de fichier plat en format XML.
Pour ajouter un désassembleur de fichiers plats
Cliquez avec le bouton droit sur le projet BizTalk, pointez sur Ajouter, puis sélectionnez Nouvel élément.
Dans la boîte de dialogue, procédez comme suit :
Propriété Pour Catégories Fichiers de pipeline Modèles installés de Visual Studio Pipeline de réception Nom IDOCReceive Le Designer pipeline s’ouvre. À partir de la boîte à outils Composants de pipeline BizTalk , faites glisser le composant de pipeline de désassembleur de fichiers plats vers l’étape Désassembler du pipeline de réception.
Dans la vue Propriétés du composant de pipeline , spécifiez une valeur pour la propriété Schéma de document . Dans la liste déroulante, veillez à sélectionner le schéma correspondant à l’opération d’envoi IDOC.
Spécifier des messages pour les formes d’action et se connecter aux ports
Le tableau suivant spécifie les propriétés et leurs valeurs à définir pour spécifier les messages des formes d’action et les lier aux ports. Les noms répertoriés dans la colonne Forme sont les noms des formes de message, comme indiqué dans l’orchestration ci-dessus.
Forme | Propriétés |
---|---|
ReceiveFile | - Définissez Message sur IDOCSend - Définissez Opération sur FileIn.SendIDOC.Request |
SendToLob | - Définissez Message sur IDOCSend - Définissez Opération sur LOBPort.SendIDOC.Request |
ReceiveResponse | - Définissez Message sur IDOCResponse - Définissez Opération sur LOBPort.SendIDOC.Response |
SendResponse | - Définissez Message sur IDOCResponse - Définissez Opération sur SaveResponse.SendIDOC.Request |
Une fois que vous avez spécifié ces propriétés, les formes et les ports de message sont connectés et votre orchestration est terminée.
Vous devez maintenant générer la solution BizTalk et la déployer sur un BizTalk Server. Pour plus d’informations, consultez Génération et exécution d’orchestrations.
Configuration de l’application BizTalk
Une fois que vous avez déployé le projet BizTalk, l’orchestration que vous avez créée précédemment est répertoriée sous le volet Orchestrations dans la console Administration BizTalk Server. Vous devez utiliser la console Administration BizTalk Server pour configurer l’application. Pour plus d’informations sur la configuration d’une application, consultez Comment configurer une application.
La configuration d’une application implique :
Sélection d’un hôte pour l’application.
Mappage des ports que vous avez créés dans votre orchestration aux ports physiques dans la console Administration BizTalk Server. Pour cette orchestration, vous devez :
Définissez un emplacement sur le disque dur et un port de fichier correspondant où vous allez supprimer un message de demande. L’orchestration BizTalk consomme le message de requête et l’envoie au système SAP.
Important
Pour le pipeline XMLReceive pour ce port, veillez à sélectionner IDOCReceive. Vous avez créé ce pipeline dans le cadre du projet BizTalk.
Définissez un emplacement sur le disque dur et un port de fichier correspondant où l’orchestration BizTalk supprime le message de réponse contenant la réponse du système SAP.
Définissez un WCF-Custom physique ou un port d’envoi WCF-SAP pour envoyer des messages au système SAP. Vous devez également spécifier l’action dans le port d’envoi. Pour plus d’informations sur la création de ports, consultez Configurer manuellement une liaison de port physique à l’adaptateur SAP.
Notes
Vous pouvez également définir la propriété de liaison AutoConfirmSentIdocs pour valider automatiquement des IDOCs dans le système SAP. Dans ce cas, vous n’avez pas besoin d’appeler explicitement l’opération RfcConfirmTransID pour valider les IDOCs. Pour plus d’informations sur la propriété de liaison, consultez En savoir plus sur l’adaptateur BizTalk pour mySAP Business Suite Binding Properties. Pour plus d’informations sur l’opération RfcConfirmTransID, consultez Operations on tRFCs in SAP.
Notes
La génération du schéma à l’aide du complément de projet BizTalk du service Consume Adapter crée également un fichier de liaison contenant des informations sur les ports et les actions à définir pour ces ports. Vous pouvez importer ce fichier de liaison à partir de la console d’administration BizTalk pour créer des ports d’envoi (pour les appels sortants) ou de réception (pour les appels entrants). Pour plus d’informations, consultez Configurer une liaison de port physique à l’aide d’un fichier de liaison de port à SAP.
Démarrage de l’application
Vous devez démarrer l’application BizTalk pour envoyer un IDOC au système SAP. Pour obtenir des instructions sur le démarrage d’une application BizTalk, consultez Guide pratique pour démarrer une orchestration ou Comment démarrer une application.
À ce stade, assurez-vous que :
Le port de réception FILE pour recevoir les messages de demande pour l’orchestration est en cours d’exécution.
Le port d’envoi FILE pour recevoir les messages de réponse de l’orchestration est en cours d’exécution.
Le WCF-Custom ou le port d’envoi WCF-SAP pour envoyer des messages au système SAP est en cours d’exécution.
L’orchestration BizTalk pour l’opération est en cours d’exécution.
Exécution de l’opération
Après avoir exécuté l’application, vous devez supprimer un message de demande pour l’orchestration. Pour cet exemple, nous allons supprimer un IDOC de fichier plat à l’emplacement de réception FILE défini. Les actions suivantes se produisent après la suppression du message de demande :
L’orchestration sélectionne ce fichier IDOC de fichier plat et le convertit en message de requête XML, dont le schéma est conforme au schéma que vous avez généré précédemment.
Si le message de demande que vous avez fourni contient un GUID, l’adaptateur génère un ID de transaction (TID) et l’envoie au système SAP.
Si le message de demande que vous avez fourni ne contient pas de GUID, l’adaptateur génère un GUID et utilise ce GUID pour générer un TID. Le TID est ensuite envoyé au système SAP.
Dans les deux cas, le message de réponse du système SAP contient un GUID. Par exemple, un message de réponse pour l’opération Envoyer sur l’IDOC ORDERS05 est :
<?xml version="1.0" encoding="utf-8"?>
<SendResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send">
<guid>a5afe162-d5cc-47b0-bf6f-3b0bfe06a97e</guid>
</SendResponse>
Après avoir reçu le GUID, vous devez appeler l’opération RfConfirmTransID pour valider le TID. Pour plus d’informations sur l’opération RfcConfirmTransID , consultez Operations on tRFCs in SAP. Vous pouvez créer une orchestration pour appeler cette opération ou modifier l’orchestration existante. Si vous souhaitez créer une orchestration, elle sera similaire à toute autre orchestration sur un système SAP. Si vous souhaitez mettre à jour l’orchestration existante, consultez Appeler des tRFCs dans SAP à l’aide de BizTalk Server. L’orchestration pour l’appel d’un tRFC, comme décrit dans la rubrique montre comment appeler une opération RfcConfirmTransID à partir de la même orchestration.
Notes
Vous n’avez pas besoin d’appeler l’opération RfcConfirmTransID si vous définissez la propriété de liaison AutoConfirmSentIdocs sur True.
Exceptions possibles
Pour plus d’informations sur les exceptions que vous pouvez rencontrer lors de l’envoi d’un IDOC à un système SAP à l’aide de BizTalk Server, consultez Exceptions et gestion des erreurs avec l’adaptateur SAP.
Bonnes pratiques
Une fois que vous avez déployé et configuré le projet BizTalk, vous pouvez exporter les paramètres de configuration vers un fichier XML appelé fichier de liaisons. Une fois que vous avez généré un fichier de liaisons, vous pouvez importer les paramètres de configuration à partir du fichier afin de ne pas avoir à créer les ports d’envoi, les ports de réception, etc. pour la même orchestration. Pour plus d’informations sur les fichiers de liaison, consultez Réutiliser les liaisons d’adaptateur SAP.