Partager via


Extension du mappeur (exemple BizTalk Server)

L’exemple de l'extension du mappeur montre comment utiliser et étendre le BizTalk Mapper. L’exemple inclut plusieurs fichiers cartographiques BizTalk Server (.btm), chacun illustrant différentes fonctionnalités de BizTalk Mapper.

Ce que fait cet exemple

L'exemple Extending Mapper utilise le routage basé sur le contenu (CBR) et ne fait pas appel à une orchestration. En spécifiant un filtre sur le port d'envoi d'exemple, celui-ci se connecte directement au port de réception d'exemple. Une carte est spécifiée sur le port d’envoi à appliquer au document traité.

Où trouver cet exemple

<exemples chemin>\XmlTools\ExtendingMapper

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

Fichier(s) Descriptif
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 d’assemblys et les supprimer du Global Assembly Cache (GAC).
Destination.xsd Fichier de schéma.
ExtensionMapper.btproj, ExtendingMapper.sln Fichiers de projet et de solution BizTalk pour cet exemple.
ExtendingMapper.xml Source XML.
ExtendingMapperBinding.xml Liaison XML.
ExternalAssembly.xml XML d’assembly externe.
Substitution de MapXslt.btm Fichier de carte.
OverridingMapXslt.xml Remplacement du XML de cartographie.
Substitution deMapXslt.xslt Surcharge de la feuille de style carte.
Scriptor_CallExternalAssembly.btm Exemple de fichier cartographique.
Scriptor_GlobalVariableInInlineScript.btm Exemple de fichier cartographique.
Scriptor_InlineScripts.btm Exemple de fichier cartographique.
Scriptor_InlineXslt.btm Exemple de fichier cartographique.
Scriptor_InlineXsltCallingExternalAssembly.btm Exemple de fichier cartographique.
Scriptor_XsltCalltemplate.btm Exemple de fichier cartographique.
Setup.bat Utilisé pour générer et initialiser l’exemple.
Source.xsd Fichier de schéma.

Génération et initialisation de cet exemple

Utilisez la procédure suivante pour créer et initialiser l’exemple Extending Mapper.

Pour générer et initialiser cet exemple

  1. Dans une fenêtre de commande, remplacez le répertoire (cd) par le dossier suivant :

    <exemples chemin>\XmlTools\ExtendingMapper

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

    • Crée les dossiers d’entrée (\In) et de sortie (\Out) pour cet exemple.

    • Compile et déploie le projet Visual Studio pour cet exemple.

    • Crée et lie l’emplacement de réception de BizTalk Server, ainsi que les ports d’envoi et de réception.

      Si vous souhaitez utiliser les cartes Scriptor_CallExternalAssembly.btm ou Scriptor_InlineXsltCallingExternalAssembly.btm, ouvrez ExtendingMapper.sln dans Visual Studio et apportez les modifications suivantes (sinon, passez à l’étape 3) :

    1. Dans l’Explorateur de solutions, ouvrez Scriptor_CallExternalAssembly.btm.

    2. Dans la grille du mappeur, sélectionnez le fonctoid Scripting.

    3. Dans la grille de propriétés, sélectionnez la propriété Script, puis cliquez sur le bouton avec les points de suspension (...) pour configurer le script functoid.

    4. Dans la boîte de dialogue Configurer le fonctoid de script, sélectionnez la Configuration du fonctoid de script et spécifiez les éléments suivants :

      Définir ce paramètre Pour cela
      Type de script Assemblage externe
      Script Assembly Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary
      Script Class Microsoft.Samples.BizTalk.ExtensionMapper.MapperHelper
      Méthode de script MyConcat
    5. Dans le menuFichier Visual Studio, choisissez Enregistrer pour enregistrer les modifications apportées au fichier map et fermez la solution.

  3. Appuyez sur n’importe quelle touche pour continuer avec Setup.bat.

    Important

    Si vous souhaitez utiliser Scriptor_InlineXsltCallingExternalAssembly.btm, vous devez modifier le fichier ExternalAssembly.xml. ExternalAssembly.xml est utilisé par BizTalk pour mapper un espace de noms inscrit à un objet d’extension mapper à un assembly .NET. Étant donné que l'assemblage dépendant est référencé par son nom complet (y compris son jeton de clé publique, généré automatiquement), vous devez mettre à jour cette valeur. Si vous ne souhaitez pas utiliser Scriptor_InlineXsltCallingExternalAssembly.btm, vous n’avez pas besoin d’effectuer les étapes suivantes.

  4. Dans l’Explorateur Windows, accédez au <dossier> Windows\assembly\.

    1. Cliquez avec le bouton droit sur Microsoft.Samples.BizTalk.ExtensionMapper.MapperClassLibrary , puis sélectionnez Propriétés.

    2. Copiez la valeur du jeton de clé publique.

    3. Dans un éditeur de texte, ouvrez <Samples Path>\XML Tools\ExtendingMapper\ExternalAssembly.xml.

    4. Sélectionnez l’AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b"attribute, puis remplacez la valeur PublicKeyToken par la valeur de jeton de clé publique que vous avez copiée à l’étape c.

    5. Enregistrez et fermez ExternalAssembly.xml.

    Remarque

    Vous devez confirmer qu’aucune erreur n’a été signalée pendant le processus de génération et d’initialisation avant de tenter d’exécuter cet exemple.

Pour configurer, enregistrer et démarrer le port d’envoi

  1. Cliquez sur Démarrer, sélectionnez Tous les programmes, Microsoft BizTalk Server, puis l’administration de BizTalk Server.

  2. Dans la console Administration de BizTalk Server, cliquez pour développer l’administration de BizTalk Server, cliquez pour développer le groupe BizTalk [<nom_serveur> :<base de données> de gestion], puis cliquez pour développer des applications.

  3. Cliquez pour développer ExtensionMapperApplication, puis cliquez sur Envoyer des ports.

  4. Dans le volet droit, cliquez avec le bouton droit sur Envoyer des ports, puis cliquez sur Propriétés.

  5. Dans la boîte de dialogue ExtendingMapperSP – Propriétés du port d'envoi, sélectionnez la page Cartes sortantes.

    Dans la colonne Carte , sélectionnez la carte requise dans la liste déroulante, puis cliquez sur OK. Les cartes sont décrites dans le tableau suivant.

    Carte pour appliquer la propriété Descriptif
    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 correctement toute logique de traitement du fichier map. Ce fichier map utilise l’assembly MapperClassLibrary.dll fourni avec cet exemple.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineScripts Montre comment écrire des scripts inline simples dans des fonctoids scripting dans un fichier map à 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 des 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 intégré à l’intérieur d’un fonctoid Scripting dans le plan. Vous pouvez construire certaines parties du document de destination à l’aide des fonctoids Scripting avec XSLT en ligne chaque fois qu’il n’est pas possible de le faire dans BizTalk Mapper avec 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 sur XSLT inline est que le modèle d’appel peut accepter des paramètres. Vous pouvez donc 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 des fonctoids Scripting avec XSLT en ligne chaque fois qu'il n'est pas possible de le faire avec d'autres fonctoids dans BizTalk Mapper.
    Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXsltCallingExternalAssembly Montre comment faire appel à un assembly .NET externe à partir du XSLT inline d’un fonctoid Scripting dans une carte. Explique comment remplacer la propriété Custom Extension XML de la grille du mappeur BizTalk par le fichier d’extension personnalisé ExternalAssembly_extxml.xml qui contient les détails de l'assembly .NET externe à invoquer. Vous pouvez construire certaines parties du document de destination à l’aide de fonctoids de script avec XSLT inline chaque fois qu’il n’est pas possible de le faire dans l’interface utilisateur mapper à l’aide d’autres fonctoids.
    Microsoft.Samples.BizTalk.ExtendingMapper. Substitution deMapXslt Montre comment remplacer complètement le XSLT compilé du fichier Mapper BizTalk avec un fichier XSLT personnalisé. Pour ce faire, remplacez la propriété Chemin XSL personnalisé, et éventuellement la propriété XML de l’extension personnalisée de la grille du 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 map (.btm) est ignoré. Ce fichier de carte utilise OverridingMapXslt.xslt et OverridingMapXslt.xml pour les propriétés Chemin XSL personnalisé et Extension XML personnalisée, respectivement.

    Vous pouvez valider un fichier map dans l’Explorateur de solutions. Vous pouvez ensuite l’utiliser en tant que fichier de modèle que vous pouvez modifier et utiliser pour la propriété Custom XSL Path de la grille du mappeur BizTalk. Vous pouvez recourir à cette option chaque fois qu’il n’est pas possible de produire ce XSLT à l’aide de BizTalk Mapper.

Exécution de cet exemple

Utilisez la procédure suivante pour exécuter l'exemple de programme Extending Mapper.

Pour exécuter cet exemple

  1. Copiez le fichier d’entrée ExtendingMapper.xml dans le dossier d’entrée dans <Samples Path>\XmlTools\ExtendingMapper\In.

  2. 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 la carte que vous avez appliquée.

Voir aussi

Outils XML (dossier d’exemples BizTalk Server)