Partager via


Étape 7 (sur site) : Création d’une orchestration

Selon le scénario métier, une fois que BizTalk Server a reçu le message de commande client de la file d’attente Service Bus, il doit case activée si la quantité commandée dans le message est supérieure à 100. Si la quantité est supérieure à 100, le message est inséré dans la table SalesOrder . Sinon, le message est envoyé dans un emplacement de fichier partagé. Northwind parvient à mettre en œuvre cette logique métier en créant une orchestration. Cette rubrique fournit des instructions pas à pas pour la créer.

Pour ajouter une orchestration au projet BizTalk Server

  1. Dans le BizTalk Server que vous avez déjà créé, cliquez avec le bouton droit sur le projet, pointez sur Ajouter, puis cliquez sur Nouvel élément.

  2. Dans la boîte de dialogue Nouvel élément , sélectionnez Orchestration BizTalk, entrez le nom de la carte , OrderProcessing.odxpuis cliquez sur Ajouter.

Création de messages pour l’orchestration

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, du type défini par le schéma correspondant. Vous devez à présent créer des messages pour l’orchestration, puis les lier aux schémas que vous avez générés précédemment. Vous devez créer les trois messages suivants :

Nom du message Correspond au schéma
Message1_SO_Inbound Ce message est un instance du schéma ECommerceSalesOrder.xsd.
Message2_SO_Inbound Ce message est une copie du Message1_SO_Inbound. Il est recommandé de créer une copie du message, puis de modifier le nouveau message de manière à garder intact le message d’orgine. Pour plus d’informations, consultez Le message BizTalk Server.
Message1_SO_Outbound Ce message est un instance du schéma TableOperations.dbo.SalesOrder (Insert).

Pour créer les messages

  1. Ouvrez la fenêtre Vue d’orchestration du projet BizTalk, si elle n’est pas déjà ouverte. Pour ce faire, cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.

  2. Dans la vue Orchestration, cliquez avec le bouton droit sur Messages, puis cliquez sur Nouveau message.

  3. Cliquez avec le bouton droit sur le message nouvellement créé, puis sélectionnez Fenêtre Propriétés.

  4. Dans le volet Propriétés du Message_1, procédez comme suit :

    Nom de la propriété Action à effectuer
    Identificateur Entrez Message1_SO_Inbound
    Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez OrderProcessingDemo.ECommerceSalesOrder, où OrderProcessingDemo est le nom de votre projet BizTalk. ECommerceSalesOrder est le schéma du message de commande client reçu de la file d’attente Service Bus.
  5. Répétez les étapes pour créer les messages avec les informations suivantes :

    Nom du message Effectuer une action
    Message2_SO_Inbound - Définissez Identificateur sur Message2_SO_Inbound
    - Définissez type de message sur OrderProcessingDemo.ECommerceSalesOrder
    Message1_SO_Outbound - Définissez Identificateur sur Message1_SO_Outound
    - Définissez type de message sur OrderProcessingDemo.TableOperation_dbo_SalesOrder.Insert

Ajout de formes à l’orchestration

Les formes d’orchestration définissent le flux d’une application BizTalk Server. Dans cette section, vous allez ajouter les formes requises à l’orchestration.

Pour ajouter des formes à l'orchestration

  1. Pour commencer, vous devez ajouter une forme Recevoir . Cette forme reçoit le message de commande client entrant en provenance de la file d’attente Service Bus. Définissez les propriétés suivantes sur la forme Réception.

    1. Définissez Activer sur True.

    2. Définissez Messagesur Message1_SO_Inbound.

    3. Définissez Nom sur ReceiveOrder.

  2. Comme indiqué précédemment, vous devez créer une copie du message de commande client d’origine reçu dans l’orchestration.

    1. Glisser-déplacer une forme De message de construction sous la forme ReceiveOrder . Étant donné que vous utilisez cette forme pour construire un message de type Message2_SO_Inbound, définissez la propriété Messages construits sur Message2_SO_Inbound.

    2. Ajoutez une forme d’affectation de message dans la forme Construire un message . Double-cliquez sur la forme pour ouvrir l’Éditeur d’expression, puis ajoutez les informations suivantes :

      Message2_SO_Inbound = Message1_SO_Inbound; //copy the message  
      Message2_SO_Inbound(*) = Message1_SO_Inbound(*); //copy the context properties on the message  
      

      Cliquez sur OK.

  3. D’après le scénario d’entreprise, le message doit être envoyé vers différentes destinations en fonction de la quantité d’articles commandés. Aussi, vous devez à présent extraire la valeur de quantité du message de commande client entrant.

    1. L’élément Quantity dans le message entrant (ECommerceSalesOrder.xsd) contient la valeur de la quantité commandée. Vous devez promouvoir cette propriété de sorte que l’élément puisse être utilisé dans les expressions au sein de l’orchestration. Pour promouvoir la propriété, ouvrez le schéma ECommerceSalesOrder.xsd , cliquez avec le bouton droit sur Quantity, pointez sur Promouvoir, puis cliquez sur Promotions rapides.

    2. Créez une variable afin de stocker la valeur de quantité. Pour créer une variable, dans la vue Orchestration, cliquez avec le bouton droit sur Variables, puis cliquez sur Nouvelle variable. Définissez les propriétés suivantes de la variable :

      Nom de la propriété Valeur
      Identificateur Entrez quantityOrdered
      Type Sélectionnez Int32.
    3. Vous devez maintenant affecter la valeur de l’élément Quantity à la variable quantityOrdered . Faites glisser-déplacer un éditeur d’expressions après la forme Construire un message . Ouvrez l’Éditeur, puis entrez l’expression suivante :

      quantityOrdered = Message2_SO_Inbound.Quantity;  
      

      Cliquez sur OK.

  4. Après avoir extrait la quantité commandée, vous devez maintenant créer un bloc de décision dans lequel vous disposez deux chemins d’accès différents que doit emprunter le flux de message. Vous créez le bloc de décision dans une orchestration en ajoutant une forme Décider .

    1. Faites glisser et déposez une forme Décider après la forme de l’Éditeur d’expressions .

    2. Sélectionnez la forme Rule_1 et, dans la fenêtre Propriétés , spécifiez les éléments suivants :

      Nom de la propriété Valeur
      Identificateur Entrez Yes. Note: L’autre itinéraire est nommé Par défaut Else.
      Expression Entrez quantityOrdered > 100.

      Vous avez maintenant deux itinéraires possibles. Si la valeur dans la variable quantityOrdered est supérieure à 100, le message prend l’itinéraire Oui . Sinon, il prend la route Else . Vous devez maintenant définir les actions à effectuer au sein de chaque itinéraire.

  5. D’après le scénario d’entreprise, si la quantité commandée est supérieure à 100, le message doit être inséré dans la table SalesOrder. Ainsi, dans l’itinéraire Oui , vous devez transformer le schéma ECommerceSalesOrder.xsd en schéma TableOperations.SalesOrder.Insert. Vous avez créé le schéma d’insertion dans la rubrique Étape 5 (Sur site) : générer le schéma pour l’insertion d’un message dans la table SalesOrder. Après avoir transformé le schéma, vous devez envoyer le message dans la table de base de données SQL Server.

    1. Dans l’itinéraire Oui , faites glisser et déposez une forme Construire un message . Définissez la propriété Messages Construits pour la forme sur Message1_SO_Outbound.

    2. Dans la forme Construire un message , ajoutez une forme Transformer . Double-cliquez sur la forme pour ouvrir la boîte de dialogue Transformer la configuration . Effectuez les actions suivantes :

      1. Sélectionnez l’option Carte existante .

      2. Dans la liste déroulante Nom de la carte complète , sélectionnez OrderProcessingDemo.SalesOrder_SQL.

      3. Pour Source, sélectionnez Message2_SO_Inbound.

      4. Pour Destination, sélectionnez Message1_SO_Outound.

    3. Après la forme Construire un message , faites glisser et déposez une forme Envoyer et définissez la propriété Message de la forme sur Message1_SO_Outbound.

  6. D’après le scénario d’entreprise, si la quantité commandée est inférieure à 100, le message doit être envoyé dans un emplacement de fichier partagé. Ainsi, dans l’itinéraire Else , vous devez ajouter une forme d’envoi.

    1. Dans l’itinéraire Else , faites glisser et déposez une forme Envoyer, puis définissez la propriété Message de la forme sur Message2_SO_Inbound.

      Notes

      Vous définissez la propriété Message sur Message2_SO_Inbound, car le même message reçu de la file d’attente Service Bus est envoyé dans l’emplacement de fichier, sans aucun traitement. Message2_SO_Inbound représente le message reçu par la file d’attente Service Bus.

ajout des ports à l'orchestration

Pour une orchestration, les ports représentent les intermédiaires d’entrée et de sortie d’un message. Les messages sont consommés par une orchestration à l’aide d’un port de réception, puis sont renvoyés à l’aide d’un port d’envoi. Dans le scénario d’entreprise, un message est reçu d’un intermédiaire (une file d’attente Service Bus), puis renvoyé vers deux emplacements différents (une base de données SQL Server ou un emplacement de partage de fichiers) en fonction du traitement du message. Ainsi, vous devez créer un port de réception et deux ports d’envoi dans le cadre de l’orchestration.

Pour ajouter des ports

  1. Faites glisser et déposez une forme de port dans le volet Port Surface de l’orchestration Designer pour lancer l’Assistant Configuration du port. Sur la page d’accueil, cliquez sur Suivant.

  2. Dans la page Propriétés du port, nommez le port, ReceiveSO puis cliquez sur Suivant.

  3. Dans la page Sélectionner un type de port , sélectionnez l’option Créer un type de port , sélectionnez le modèle de communication unidirectionnel , laissez la valeur par défaut pour les restrictions d’accès, puis cliquez sur Suivant.

  4. Dans la page Liaison de port, pour la direction du port, sélectionnez Je vais toujours recevoir des messages sur ce port, laissez le port enchérissant à la valeur par défaut, puis cliquez sur Suivant.

  5. Dans la dernière page, cliquez sur Terminer.

  6. Répétez les étapes pour créer les deux ports d’envoi, en spécifiant les valeurs suivantes.

    Nom du port Propriétés
    SendToSQL - Définissez Nom sur SendToSQL
    - Sélectionnez Créer un type de port.
    - Définir le modèle de communication sur Unidirectionnel
    - Définissez le sens du port sur Je vais toujours envoyer des messages sur ce port
    SendToFile - Définissez Nom sur SendToFile
    - Sélectionnez Créer un type de port.
    - Définir le modèle de communication sur Unidirectionnel
    - Définissez le sens du port sur Je vais toujours envoyer des messages sur ce port

Connexion des ports et des formes de message

Pour terminer l’orchestration, vous devez à présent connecter les ports et les formes de message. L’orchestration démarre lorsque le message est reçu par la forme ReceiveOrder et l’orchestration se termine lorsque le message est envoyé par les deux formes d’envoi. Vous devez utiliser ce critère pour connecter les ports et les formes de message.

Pour connecter les ports aux formes de message

  1. Connectez le port de réception ReceiveSO à la forme ReceiveOrder .

  2. Connectez la forme Envoyer sous l’itinéraire Oui au port d’envoi SendToSQL . Cela indique que si un message entre dans cet itinéraire (quantityOrdered> 100), il est envoyé à la table SalesOrder de la base de données SQL Server.

  3. Connectez la forme Envoyer sous l’itinéraire Else au port d’envoi SendToFile . Cela indique que si un message entre dans cet itinéraire (quantityOrdered<= 100), il est envoyé à un emplacement de fichier spécifié.

    L’orchestration doit ressembler à ceci :

    Orchestration

Voir aussi

Tutoriel 4 : Création d’une application hybride à l’aide de BizTalk Server 2013