Partager via


FlatFileReceive (exemple BizTalk Server)

L’exemple FlatFileReceive montre comment utiliser BizTalk Server pour traiter un fichier plat dans le fichier .xml équivalent.

Fonctions de l'exemple

Cet exemple permet de configurer le dossier FFInput en tant qu'emplacement de réception. Lorsque vous placez un fichier, tel que l’exemple de fichier FlatFileReceive_in.txt, dans ce dossier, BizTalk Server traite le message dans ce fichier à l’aide de la séquence d’étapes suivante :

  1. Lecture du message à partir du fichier d'entrée dans le dossier de l'emplacement de réception FFInput.

  2. Dans le pipeline de réception, le composant Désassembleur de fichier plat convertit le message au format de fichier plat en un message XML équivalent.

  3. Dans la base de données MessageBox, le message est acheminé vers un port d'envoi FILE qui écrit le message XML dans un fichier se trouvant dans le dossier FFOutput de l'adaptateur d'envoi.

Comment cet exemple est conçu et pourquoi

Dans cet exemple, la plus grande partie de la conception de base est imposée par l'exemple de message. Les messages de fichier plat doivent être désassemblés à l'aide du Désassembleur de fichier plat et d'un schéma de fichier plat au sein d'un pipeline de réception personnalisé. Ces critères de conception sont récapitulés dans le tableau suivant.

Élément de conception Raison(s) sélectionnée(s)
Pipeline de réception personnalisé - Le pipeline personnalisé utilise le désassembleur de fichiers plats et un schéma de fichier plat pour traduire les messages de bon de commande entrants. Le désassembleur de fichiers plats n’est pas lui-même un pipeline et ne peut pas être utilisé lors de la configuration d’un pipeline de réception dans la console de gestion BizTalk Server.
Schéma de fichier plat - Définissez toutes les mêmes caractéristiques d’enregistrement et de champ (y compris la structure) en tant que schéma XML et fournissez un mécanisme pour définir toutes les caractéristiques de fichier plat requises pour traduire un fichier plat instance message en un message de instance XML équivalent (ou inversement).
Filtre d’abonnement - Le filtre d’abonnement effectue le routage réel en capturant les messages qui répondent à un ou plusieurs critères en fonction des champs de propriété.
XMLTransmit - Effectue l’assembly de base des messages XML sortants si nécessaire. Le pipeline PassThruTransmit ne fournit aucune prise en charge supplémentaire.

Ces éléments sont combinés afin de générer une solution qui accepte les messages de bon de commande au format de fichier plat dans l'emplacement de réception et qui les convertisse en représentations XML dans l'emplacement d'envoi.

Les considérations suivantes s’appliquent à la conception de cet exemple :

  • Le schéma de fichier plat (PO.xsd) contient des annotations étendues décrivant la structure du fichier plat de bon de commande. Ces fichiers peuvent être créés manuellement, mais un grand nombre peut être généré à l'aide de l'Assistant Fichier plat.

  • Le schéma de fichier plat utilise la valeur Unqualified de l'attribut elementFormDefault. Cette méthode permet d'obtenir des résultats corrects, mais avec des qualifications d'espace de noms (xmlns) XML supplémentaires et inattendues. Pour éviter ce problème, utilisez la valeur Qualified d'elementFormDefault.

  • Le pipeline d'envoi utilisé est XmlTransmit. Utilisez le pipeline PassThruTransmit lorsque la rétrogradation des propriétés ou d'autres traitements de messagerie ne sont pas requis dans le port d'envoi.

Accès à l'exemple

<Chemin d’accès> d’exemples\Pipelines\AssembleDisassembler\FlatFileReceive\

Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.

Fichier(s) Description
Cleanup.bat Permet d'annuler le déploiement des assemblys et de supprimer ceux-ci du Global Assembly Cache. Supprime les ports d'envoi et de réception. Supprime les répertoires virtuels Microsoft Internet Information Services (IIS) le cas échéant.
FFReceivePipeline.btp BizTalk Server recevoir le fichier de pipeline avec le composant Flat File Désassembleur.
FlatFileReceive.btproj, FlatFileReceive.sln Fichiers projet et solution de l'exemple.
FlatFileReceive_in.txt Exemple de fichier d'entrée.
FlatFileReceiveBinding.xml Utilisé pour une configuration automatisée, telle que la liaison de port.
PO.xsd Schéma pour le fichier plat entrant.
Setup.bat Utilisé pour générer et initialiser cet exemple.

Guide pratique pour utiliser cet exemple

Utilisez cet exemple comme base de votre propre solution de traitement de fichier plat. Vous pouvez étendre un grand nombre des éléments de conception utilisés dans le cadre de cet exemple pour répondre à vos besoins spécifiques.

Génération et initialisation de cet exemple

  1. Dans une fenêtre de commande, accédez au dossier suivant :

    <Chemin d’accès> d’exemples\Pipelines\AssembleDisassembler\FlatFileReceive

  2. Exécutez le fichier Setup.bat, qui effectue les actions suivantes :

    • Création des dossiers d'entrée (FFInput) et de sortie (FFOutput) associés à cet exemple dans le dossier :

      <Chemin d’accès> d’exemples\Pipelines\AssembleDisassembler\FlatFileReceive

    • Compilation et déploiement du projet Visual Studio pour cet exemple.

    • Création et liaison de l'emplacement de réception de BizTalk Server, ainsi que des ports d'envoi et de réception.

      Notes

      Cet exemple affiche l’avertissement suivant lors de la création et de la liaison de ports : Warning: Receive handler not specified for receive location "FlatFileReceive_RL"; updating with first receive handler with matching transport type. vous pouvez ignorer ces avertissements en toute sécurité. (Pour s'adapter aux éventuelles différences d'attribution de noms dans les installations utilisateur, le nom d'hôte et le gestionnaire de réception ont été omis dans le fichier de liaison.)

    • Active l'emplacement de réception, et démarre le port d'envoi.

Notes

Avant d'essayer d'exécuter cet exemple, vous devez vous assurer que BizTalk Server n'a signalé aucune erreur lors du processus de création et d'initialisation.

Notes

Si vous décidez d'ouvrir et de créer le projet de cet exemple sans exécuter Setup.bat, vous devez commencer par créer une paire de clés de nom fort à l'aide de .NET Framework Strong Name Utility (sn.exe). Utilisez cette paire de clés pour signer l'assembly obtenu.

Notes

Pour annuler les modifications effectuées par Setup.bat, exécutez Cleanup.bat. Vous devez exécuter Cleanup.bat avant d'exécuter Cleanup.bat une seconde fois.

Exécution de cet exemple

  1. Placez une copie du fichier FlatFileReceive_in.txt dans le dossier FFInput.

  2. Observez le fichier .xml créé dans le dossier FFOutput. Le nom du fichier de sortie a pour base le GUID de l'ID du message. Ce fichier contient l'équivalent XML du fichier plat placé dans le dossier de réception.

Classes ou méthodes utilisées dans l'exemple

Les scripts de configuration Setup.bat et Cleanup.bat dépendent des scripts Windows Management Instrumentation (WMI) d'administration suivants :

  • Démarrage du port d'envoi\StartSendPort.vbs

  • Activation de l'emplacement de réception\EnableRecLoc

  • Suppression du port d'envoi\RemoveSendPort

    Les fichiers de commandes d'installation et de désinstallation utilisent BTSTask comme suit :

  • BTSTask ImportBindings pour appliquer le fichier de liaison et créer l’application, les ports et les liaisons

  • BTSTask RemoveApp pour supprimer flatFileReceiveApplication

Voir aussi