Guide pratique pour implémenter un routage basé sur le contenu à l’aide d’une stratégie de règles métier pour un type de message connu
Objectif
Cette section montre comment créer un itinéraire qui achemine dynamiquement un message, en fonction du contenu d’un type de message connu (schéma déployé sur la base de données Microsoft BizTalk Server Configuration), à l’aide d’une stratégie de règles d’entreprise.
Dans cette rubrique de procédure, vous allez effectuer les étapes suivantes :
Créez une stratégie de règles d’entreprise qui sera utilisée pour acheminer un message en fonction du contenu.
Créez un bordereau de routage d’itinéraire avec un programme de résolution BRE pour acheminer dynamiquement un message.
Testez l’itinéraire à l’aide de l’exemple d’application Itinerary Test Client.
Prérequis
Les procédures décrites dans cette rubrique de procédure nécessitent l’achèvement des conditions préalables pour les activités de développement.
Avant de commencer
Effectuez les tâches suivantes avant d’effectuer les étapes décrites plus loin dans cette rubrique pratique :
Créez le message de test GlobalBank West.
Créez le message de test GlobalBank East.
Les procédures suivantes décrivent comment effectuer chacune de ces opérations.
Pour créer le message de test GlobalBank West
Dans Windows Explorer, accédez à C :\HowTos.
Créez une copie de NAOrderDoc.xml, puis nommez la copie West.xml.
Dans le Bloc-notes, ouvrez West.xml, puis remplacez la valeur de l’élément customerName par GlobalBankWest.
Enregistrez West.xml en tant que UTF-8, puis fermez le Bloc-notes.
Pour créer le message de test GlobalBank East
Dans Windows Explorer, accédez à C :\HowTos.
Créez une copie de NAOrderDoc.xml, puis nommez la copie East.xml.
Dans le Bloc-notes, ouvrez East.xml, puis remplacez la valeur de l’élément customerName par GlobalBankEast.
Enregistrez East.xml en tant que UTF-8, puis fermez le Bloc-notes.
Étapes
Pour créer une stratégie BRE à acheminer à l’aide de propriétés de message personnalisées
Cette règle utilise le nom du client pour définir dynamiquement le point de terminaison utilisé pour acheminer le message.
Cliquez sur Démarrer dans la barre des tâches, pointez sur Tous les programmes, pointez sur BizTalk Server, puis cliquez sur Compositeur de règles d’entreprise.
Dans Stratégie Explorer, cliquez avec le bouton droit sur Stratégies, puis cliquez sur Ajouter une nouvelle stratégie. Nommez la stratégie RouteBasedOnCustomerKnownType.
Pour ajouter une règle de routage pour le client GlobalBank West
Dans la stratégie RouteBasedOnCustomerKnownType , cliquez avec le bouton droit sur Version 1.0 (non enregistrée), puis cliquez sur Ajouter une nouvelle règle. Nommez la règle SetWestEndpoint.
Dans Faits Explorer, cliquez sur l’onglet Schémas XML, cliquez avec le bouton droit sur Schémas, puis cliquez sur Parcourir.
Dans la boîte de dialogue Fichiers de schéma , accédez à C :\Projects\Microsoft.Practices.ESB\Source\Samples\DynamicResolution\Source\ESB. DynamicResolution.Schemas, sélectionnez NAOrderDoc.xsd, puis cliquez sur Ouvrir.
Notes
Il s’agit du schéma qui définit le message NAOrderDoc.xml, qui a été utilisé pour créer les messages Ouest et Est que vous utiliserez pour les tests.
Dans Faits Explorer, cliquez sur NAOrderDoc.xsd, puis dans le volet Propriétés, cliquez sur la propriété Type de document, puis tapez GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc.
Notes
Il s’agit du nom complet du schéma.
Dans Faits Explorer, développez NAOrderDoc.xsd, puis OrderDoc.
Dans la fenêtre Règle, cliquez avec le bouton droit sur Conditions, pointez sur Prédicats, puis cliquez sur Égal.
À partir de Facts Explorer, faites glisser l’élément customerName vers le nœud argument1 sous Conditions.
Cliquez sur le nœud argument2 , puis tapez GlobalBankWest.
Dans Faits Explorer, cliquez sur l’onglet Vocabulaires, développez ESB. EndPointInfo, puis développez version 1.0.
Notes
Microsoft BizTalk ESB Toolkit comprend plusieurs vocabulaires qui peuvent être utilisés pour créer des règles à utiliser dans l’ESB. Certains d’entre eux doivent être remplacés ou augmentés par vos propres vocabulaires. Par exemple, dynamicRunTimeMaptypes contient des définitions pour les cartes fournies dans les exemples GlobalBank .
À partir des faits Explorer, faites glisser la définition Définir l’emplacement de transport sortant du point de terminaison vers Actions.
Cliquez sur <une chaîne> vide, puis tapez C :\HowTos\Out\West%MessageID%.xml.
À partir de Facts Explorer, faites glisser la définition Définir le type de transport sortant du point de terminaison vers Actions.
Dans Faits Explorer, développez ESB. TransportTypes, développez Version 1.0, puis faites glisser la définition Des fournisseurs d’adaptateurs vers <une chaîne> vide.
Dans le volet Actions , développez la liste déroulante Fournisseurs d’adaptateurs , puis cliquez sur FICHIER.
Pour ajouter une règle de routage pour le client GlobalBank East
Dans Stratégie Explorer, cliquez avec le bouton droit sur la règle SetWestEndpoint, puis cliquez sur Copier.
Cliquez avec le bouton droit sur Version 1.0 (non enregistrée), puis cliquez sur Coller.
Dans la boîte de dialogue Nouveau nom de règle , tapez SetEastEndpoint, puis cliquez sur OK.
Dans Stratégie Explorer, cliquez sur la règle SetEastEndpoint.
Dans la section Conditions , cliquez avec le bouton droit sur GlobalBankWest, puis cliquez sur Réinitialiser l’argument.
Cliquez sur argument2, puis tapez GlobalBankEast.
Dans la section Actions , cliquez avec le bouton droit sur C :\HowTos\Out\West%MessageID%.xml, puis cliquez sur Réinitialiser l’argument.
Cliquez sur <une chaîne> vide, puis tapez C :\HowTos\Out\East%MessageID%.xml.
Pour ajouter une règle de routage pour les clients inconnus
Dans la stratégie RouteBasedOnCustomerKnownType, cliquez avec le bouton droit sur Version 1.0 (non enregistrée), puis cliquez sur Ajouter une nouvelle règle. Nommez la règle SetUnknownCustomerEndpoint.
Dans la fenêtre Règle, cliquez avec le bouton droit sur Conditions, puis cliquez sur Ajouter un AND logique.
Dans la fenêtre Règle, cliquez avec le bouton droit sur AND, pointez sur Prédicats, puis cliquez sur NotEqual.
Dans Faits Explorer, cliquez sur l’onglet Schémas XML, développez NAOrderDoc.xsd, puis développez OrderDoc.
À partir de Facts Explorer, faites glisser l’élément customerName vers le nœud argument1 sous Conditions.
Cliquez sur le nœud argument2, puis tapez GlobalBankWest.
Dans la fenêtre Règle, cliquez avec le bouton droit sur AND, pointez sur Prédicats, puis cliquez sur NotEqual.
À partir de Facts Explorer, faites glisser l’élément customerName vers le nœud argument1 sous Conditions.
Cliquez sur le nœud argument2, puis tapez GlobalBankEast.
Dans Faits Explorer, cliquez sur l’onglet Vocabulaires, développez ESB. EndPointInfo, puis développez version 1.0.
À partir des faits Explorer, faites glisser la définition Définir l’emplacement de transport sortant du point de terminaison vers Actions.
Cliquez sur <une chaîne> vide, puis tapez C :\HowTos\Out\CustomerUnknown%MessageID%.xml.
À partir des faits Explorer, faites glisser la définition Définir le type de transport sortant du point de terminaison vers Actions.
Dans Faits Explorer, développez ESB. TransportTypes, développez Version 1.0, puis faites glisser la définition Des fournisseurs d’adaptateurs vers <une chaîne> vide.
Dans le volet Actions, développez la liste déroulante Fournisseurs d’adaptateurs, puis cliquez sur FICHIER.
Pour publier et déployer la stratégie
Dans stratégie Explorer, sous la stratégie RouteBasedOnCustomerKnownType, cliquez avec le bouton droit sur Version 1.0 (non enregistrée), puis cliquez sur Publier.
Dans stratégie Explorer, sous la stratégie RouteBasedOnCustomerKnownType, cliquez avec le bouton droit sur Version 1.0 - Publiée, puis cliquez sur Déployer.
Pour créer un modèle DSL d’itinéraire ESB
Dans Visual Studio, ouvrez C :\HowTos\Patterns\Patterns.sln.
Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet ItinéraireLibrary, pointez sur Ajouter, puis cliquez sur Nouvel itinéraire.
Dans la boîte de dialogue Ajouter un nouvel élément , dans la zone Nom , tapez CbrKnownType, puis cliquez sur Ajouter.
Pour configurer les propriétés de l’itinéraire
Dans Visual Studio, cliquez sur l’aire de conception de CbrKnownType.itinerary. Dans le Fenêtre Propriétés CbrKnownType, configurez les propriétés suivantes :
Dans la liste déroulante Exporter de modèle , cliquez sur Exportateur d’itinéraire XML.
Dans la section Paramètres de l’extendeur , en regard de la propriété fichier XML D’itinéraire , cliquez sur le bouton de sélection (...).
Dans la boîte de dialogue Sélectionner un fichier XML , tapez C :\HowTos\Itineraries\CbrKnownType dans la zone Nom de fichier , puis cliquez sur Enregistrer.
Notes
Cette étape vous permet d’exporter l’itinéraire au format XML vers un emplacement de fichier local. L’exportation d’un itinéraire vers un emplacement de fichier local, plutôt que vers la base de données d’itinéraire, permet de tester l’itinéraire à l’aide de l’application cliente de test ESB. Vous terminerez ce processus plus loin dans cette rubrique de procédures.
Pour définir la structure de l’itinéraire
À partir de la boîte à outils, faites glisser un élément de modèle On-Ramp vers l’aire de conception. Dans le Fenêtre Propriétés OnRamp1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez ReceiveNAOrder.
Dans la liste déroulante Extender , cliquez sur On-Ramp ESB Extender.
Dans la liste déroulante Application BizTalk , cliquez sur Microsoft.Practices.ESB.
Dans la liste déroulante Port de réception , cliquez sur OnRamp.Itinerary.
À partir de la boîte à outils, faites glisser un élément de modèle Off-Ramp vers l’aire de conception, puis placez-le à droite de l’élément de modèle ReceiveNAOrder . Dans le Fenêtre Propriétés OffRamp1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez SendRegionalOrders.
Dans la liste déroulante Extender , cliquez sur Extension ESB hors rampe.
Dans la liste déroulante Application BizTalk , cliquez sur GlobalBank.ESB.
Dans la liste déroulante Port d’envoi , cliquez sur DynamicResolutionOneWay.
À partir de la boîte à outils, faites glisser un élément de modèle service D’itinéraire vers l’aire de conception, puis placez-le entre l’élément de modèle ReceiveNAOrder et l’élément de modèle SendRegionalOrders . Dans le Fenêtre Propriétés ItineraryService1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez SendPortFilter.
Dans la liste déroulante Extender de service d’itinéraire , cliquez sur Extender hors rampe.
Dans la liste déroulante Hors rampe , développez SendRegionalOrders, puis cliquez sur Envoyer des gestionnaires.
Cliquez avec le bouton droit sur la collection Resolver de l’élément de modèle SendPortFilter , puis cliquez sur Ajouter un nouveau programme de résolution. Dans le Fenêtre Propriétés Resolver1, configurez les propriétés suivantes :
Cliquez sur la propriété Name , puis tapez RouteRégionOrders.
Dans la liste déroulante Nom du transport , cliquez sur BRE.
Dans la liste déroulante Implémentation du programme de résolution, cliquez sur Bre Resolver Extension.
Dans la liste déroulante Stratégie , cliquez sur RouteBasedOnCustomerKnownType.
Dans la liste déroulante Reconnaître le format de message , cliquez sur True.
Dans la liste déroulante UtiliserMsg , cliquez sur True.
Notes
Si vous utilisez l’extension BRE Resolver à partir de l’orchestration, la propriété recognizeMessageFormat doit avoir la valeur False.
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle ReceiveNAOrder vers l’élément de modèle SendPortFilter .
Dans la boîte à outils, cliquez sur Connecteur. Faites glisser une connexion de l’élément de modèle SendPortFilter vers l’élément de modèle SendRegionalOrders .
Pour exporter le modèle à utiliser avec le client de test d’itinéraire
Dans Visual Studio, cliquez avec le bouton droit sur l’aire de conception de l’itinéraire CbrKnownType , puis cliquez sur Exporter le modèle.
Notes
La version XML de l’itinéraire s’ouvre dans Visual Studio.
Enregistrez tous les artefacts de projet.
Dans Windows Explorer, accédez à C :\HowTos\Itinéraires et notez la création de votre code XML d’itinéraire (CbrKnownType.xml).
Pour tester les règles d’itinéraire et d’entreprise
Ouvrez l’exemple d’application Itinerary Test Client à l’aide du raccourci créé pendant les prérequis pour les activités de développement (C:\HowTos\ESB.Itinerary.Test.exe - Raccourci).
Dans le client de test d’itinéraire, désactivez la zone Utiliser le service WCF case activée, puis cliquez sur Charger l’itinéraire.
Dans la boîte de dialogue Ouvrir le fichier d’itinéraire , accédez à C :\HowTos\Itinéraires. Sélectionnez CbrKnownType.xml, puis cliquez sur Ouvrir pour charger l’itinéraire.
Cliquez sur OK pour effacer le message Itinéraire chargé avec succès .
Dans le client de test d’itinéraire, cliquez sur le bouton de sélection (...) en regard de la zone Charger le message .
Dans la boîte de dialogue Sélectionner un document XML à charger , accédez à C :\HowTos. Sélectionnez West.xml, puis cliquez sur Ouvrir pour charger le message de test.
Cliquez sur le bouton Envoyer une demande . Une fois le test terminé, cliquez sur OK pour ignorer la confirmation qui s’affiche.
Dans Windows Explorer, accédez à C :\HowTos\Out. Vérifiez que le message West%MessageID%.xml a été écrit dans le répertoire.
Répétez le processus de test à l’aide du message East.xml.
Dans Windows Explorer, accédez à C :\HowTos\Out. Vérifiez que le message East%MessageID%.xml a été écrit dans le répertoire.
Répétez le processus de test à l’aide du message NAOrderDoc.xml.
Dans Windows Explorer, accédez à C :\HowTos\Out. Vérifiez que le message CustomerUnknown%MessageID%.xml a été écrit dans le répertoire.
Ressources supplémentaires
Pour plus d'informations, consultez les rubriques connexes suivantes :