Extension du Mappeur (exemple BizTalk Server)
L'exemple Extending Mapper présente l'utilisation et l'extension du Mappeur BizTalk. L’exemple comprend plusieurs fichiers de carte BizTalk Server (.btm), chacun illustrant les différentes fonctionnalités de BizTalk Mapper.
Fonctions de l'exemple
L'exemple Extending Mapper s'appuie sur le routage basé sur le contenu et n'utilise pas d'orchestration. En spécifiant un filtre sur l'exemple de port d'envoi, il est connecté directement à l'exemple de port de réception. Un mappage est spécifié sur le port d'envoi à appliquer au document traité.
Accès à l'exemple
<Chemin d’accès> d’exemples\XmlTools\ExtendingMapper
Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.
Fichier(s) | Description |
---|---|
MapperClassLibrary\AssemblyInfo.cs, MapperClassLibrary\MapperClassLibrary.csproj, MapperClassLibrary\MapperHelper.cs, MapperClassLibrary\MapperClassLibrary.sln | Fichier projet Microsoft® Visual Studio® et fichiers sources Visual C#®. |
Cleanup.bat | Utilisé pour annuler le déploiement des assemblys et les supprimer du Global Assembly Cache (GAC). |
Destination.xsd | Fichier de schéma. |
ExtendingMapper.btproj, ExtendingMapper.sln | Fichiers de projet et de solution BizTalk pour cet exemple. |
ExtendingMapper.xml | Fichier XML source. |
ExtendingMapperBinding.xml | Fichier XML de liaison. |
ExternalAssembly.xml | Fichier XML d'assembly externe. |
OverridingMapXslt.btm | Fichier de mappage. |
OverridingMapXslt.xml | Fichier XML de mappage de remplacement. |
OverridingMapXslt.xslt | Feuille de style de mappage de remplacement. |
Scriptor_CallExternalAssembly.btm | Exemple de fichier de mappage. |
Scriptor_GlobalVariableInInlineScript.btm | Exemple de fichier de mappage. |
Scriptor_InlineScripts.btm | Exemple de fichier de mappage. |
Scriptor_InlineXslt.btm | Exemple de fichier de mappage. |
Scriptor_InlineXsltCallingExternalAssembly.btm | Exemple de fichier de mappage. |
Scriptor_XsltCalltemplate.btm | Exemple de fichier de mappage. |
Setup.bat | Utilisé pour créer et initialiser l'exemple. |
Source.xsd | Fichier de schéma. |
Génération et initialisation de cet exemple
La procédure suivante permet de créer et d'initialiser l'exemple Extending Mapper.
Pour créer et initialiser l'exemple
Dans une fenêtre de commande, remplacez le répertoire (cd) par le dossier suivant :
<Chemin d’accès> d’exemples\XmlTools\ExtendingMapper
Exécutez le fichier Setup.bat, qui effectue les actions suivantes :
Création des dossiers d'entrée (\In) et de sortie (\Out) pour cet exemple
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.
Si vous voulez utiliser le mappage Scriptor_CallExternalAssembly.btm ou Scriptor_InlineXsltCallingExternalAssembly.btm, ouvrez ExtendingMapper.sln dans Visual Studio et apportez les modifications suivantes (sinon, passez à l'étape 3) :
Dans l'Explorateur de solutions, ouvrez Scriptor_CallExternalAssembly.btm.
Dans la grille du Mappeur, sélectionnez le fonctoid Script.
Dans la grille de propriétés, sélectionnez la propriété Script , puis cliquez sur le bouton de sélection (...) pour configurer le script fonctoid.
Dans la boîte de dialogue Configurer le fonctoid de script, sélectionnez la configuration du fonctoid de script, puis spécifiez les éléments suivants :
Définition de Sur Type de script Assembly externe Script Assembly Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary Classe de script Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper Script, méthode MyConcat Dans le menuFichier de Visual Studio, choisissez Enregistrer pour enregistrer les modifications apportées au fichier de carte, puis fermez la solution.
Appuyez sur n'importe quelle touche pour continuer avec Setup.bat.
Important
Si vous voulez utiliser Scriptor_InlineXsltCallingExternalAssembly.btm, vous devez modifier le fichier ExternalAssembly.xml. ExternalAssembly.xml est utilisé par BizTalk pour mapper un espace de noms enregistré comme objet d'extension de mappeur à un assembly .NET. Comme l'assembly dépendant est référencé avec son nom complet (y compris son jeton de clé publique automatiquement généré), vous devez mettre à jour cette valeur. Si vous ne voulez pas utiliser Scriptor_InlineXsltCallingExternalAssembly.btm, vous ne devez pas effectuer les étapes a à e.
Dans Windows Explorer, accédez à <Dossier> Windows\assembly\.
Cliquez avec le bouton droit sur Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary et sélectionnez Propriétés.
Copiez la valeur du jeton de clé publique.
Dans un éditeur de texte, ouvrez <Samples Path>\XML Tools\ExtendingMapper\ExternalAssembly.xml.
Sélectionnez l’attribut AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b », puis remplacez la valeur PublicKeyToken par la valeur du jeton de clé publique que vous avez copiée à l’étape c.
Enregistrez et fermez ExternalAssembly.xml.
Notes
Avant de tenter d'exécuter cet exemple, vous devez vérifier qu'aucune erreur n'a été signalée durant le processus de création et d'initialisation.
Pour configurer, inscrire et démarrer le port d'envoi
Cliquez sur Démarrer, tous les programmes, Microsoft BizTalk Server, puis BizTalk Server Administration.
Dans la console Administration BizTalk Server, cliquez pour développer BizTalk Server Administration, développez BizTalk Group [<nom_>serveur :<base de données> de gestion] et cliquez pour développer Applications.
Cliquez pour développer ExpandMapperApplication, puis cliquez sur Envoyer des ports.
Dans le volet droit, cliquez avec le bouton droit sur Envoyer des ports, puis cliquez sur Propriétés.
Dans la boîte de dialogue ÉtendreMapperSP – Propriétés du port d’envoi , cliquez sur la page Cartes sortantes .
Dans la colonne Carte , sélectionnez la carte requise dans la liste déroulante, puis cliquez sur OK. Ces mappages sont décrits dans le tableau suivant.
Propriété Mappage à appliquer Description Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_CallExternalAssembly Montre comment appeler une fonction dans un assembly .NET externe à partir d’un fonctoid Scripting dans une carte, en fonction des paramètres d’entrée de ce fonctoid. Cela permet de séparer clairement toute logique de traitement du fichier de mappage. Ce fichier de mappage utilise l'assembly MapperClassLibrary.dll qui est livré avec cet exemple. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineScripts Montre comment écrire des scripts inline simples dans des fonctoids de script dans un fichier de carte à l’aide de langages .NET tels que C#, Visual Basic.NET et JScript.NET. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_GlobalVariableInInlineScript Montre comment utiliser des variables globales dans les scripts inline des fonctoids scripting . Les variables globales sont généralement utilisées pour conserver les informations d’état dans un fichier de carte sur différents fonctoids de script . Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXslt Montre comment construire une structure dans le document de destination à l’aide de XSLT brut inline à l’intérieur d’un fonctoid Scripting dans la carte. Vous pouvez construire certaines parties du document de destination à l’aide de fonctoids scripting avec XSLT inline chaque fois qu’il n’est pas possible de le faire dans BizTalk Mapper à l’aide d’autres fonctoids. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_XsltCalltemplate Montre comment créer une structure dans le document de destination à l’aide d’un modèle d’appel XSLT à l’intérieur d’un fonctoid Scripting dans la carte. L’avantage d’un modèle d’appel XSLT par rapport à XSLT inline est que le modèle d’appel peut accepter des paramètres, ce qui vous permet de créer la structure en fonction des paramètres d’entrée du fonctoid Scripting . Vous pouvez construire certaines parties du document de destination à l’aide de fonctoids scripting avec XSLT inline chaque fois qu’il n’est pas possible de le faire dans BizTalk Mapper à l’aide d’autres fonctoids. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXsltCallingExternalAssembly Montre comment appeler un assembly .NET externe à partir de L’élément XSLT inline d’un fonctoid Scripting dans une carte. Explique comment remplacer la propriété XML d’extension personnalisée de la grille BizTalk Mapper par le fichier d’extension personnalisé ExternalAssembly_extxml.xml qui contient les détails de l’assembly .NET externe à appeler. Vous pouvez construire certaines parties du document de destination à l’aide de fonctoids scripting avec XSLT inline chaque fois qu’il n’est pas possible de le faire dans l’interface utilisateur du mappeur à l’aide d’autres fonctoids. Microsoft.Samples.BizTalk.ExtendingMapper. Substitution deMapXslt Illustre le remplacement complet du XSLT compilé du fichier du Mappeur BizTalk par un fichier XSLT personnalisé. Pour ce faire, remplacez la propriété Custom XSL Pathet éventuellement la propriété XML d’extension personnalisée de la grille BizTalk Mapper. Le fichier XSLT personnalisé que vous fournissez est inclus dans l’assembly BizTalk Server compilé du projet que vous souhaitez utiliser au moment de l’exécution. Dans ce cas, le contenu du fichier de mappage (.btm) est ignoré. Ce fichier de carte utilise SubstitutionMapXslt.xslt et OverridingMapXslt.xml pour les propriétés Custom XSL Path et Custom Extension XML , respectivement.
Vous pouvez valider un fichier de mappage dans l'Explorateur de solutions. Vous pouvez ensuite l’utiliser comme fichier de modèle que vous pouvez modifier et utiliser pour la propriété Custom XSL Path de la grille BizTalk Mapper. Vous pouvez recourir à cette option lorsqu'il n'est pas possible de produire ce XSLT à l'aide du Mappeur BizTalk.
Exécution de cet exemple
La procédure suivante permet d'exécuter l'exemple Extending Mapper.
Pour exécuter l'exemple
Copiez le fichier d’entrée ExtendingMapper.xml dans le dossier d’entrée à <l’emplacement Chemin d’accès> exemples\XmlTools\ExtendingMapper\In.
Notez comment le fichier est transformé et routé vers le <dossier Samples Path>\XmlTools\ExtendingMapper\Out. La transformation qui se produit est basée sur le mappage que vous avez appliqué.