Partager via


CallOrchestration (exemple BizTalk Server)

L'exemple CallOrchestration illustre l'appel d'une orchestration BizTalk à partir d'une autre orchestration.

Fonctions de l'exemple

Cet exemple illustre l'appel d'une orchestration par une autre orchestration en procédant comme suit :

  1. L'orchestration principale reçoit un message de bon de commande.

  2. L'orchestration principale appelle l'orchestration secondaire pour déterminer le prix d'expédition correspondant au bon de commande.

  3. L'orchestration secondaire calcule le prix d'expédition demandé et le renvoie à l'orchestration principale.

  4. L'orchestration principale met à jour le message de bon de commande avec le prix d'expédition reçu.

  5. L'orchestration principale place le message de bon de commande mis à jour dans un dossier à des fins d'inspection.

Comment cet exemple est conçu et pourquoi

La fonction principale de cet exemple est de présenter l'appel d'une orchestration à partir d'une autre orchestration. La possibilité d'appeler des orchestrations permet de diviser les processus d'entreprise en composants réutilisables. Vous pouvez factoriser vos processus les plus répandus en orchestrations distinctes pour que d'autres utilisateurs puissent les réutiliser.

Dans cet exemple, la forme d’orchestration des appels dans receivePO.odx appelle findShippingPrice.odx et attend que l’orchestration imbriquée, findShippingPrice.odx, calcule et retourne le prix d’expédition avant d’envoyer le bon de commande. L'orchestration findShippingPrice.odx utilise la logique suivante pour calculer le prix d'expédition :

If ( weight * shippingRate ) < minShippingPrice Then  
    shippingPrice = minShippingPrice  
Else  
    shippingPrice = weight * shippingRate  
End If  

Le fichier d'exemple de bon de commande entrant InputPO.xml spécifie un poids de 20, ce qui signifie que le message de bon de commande de sortie est passé de 10 à 20.

Notes

Vous ne pouvez pas appeler une transaction à long terme à partir d'une orchestration atomique.

Notes

La différence entre l’utilisation de la forme Orchestration des appels et la forme Démarrer l’orchestration est que lors de l’appel d’une orchestration, l’appelant attend que l’orchestration imbriquée revienne avant de continuer. Lors du démarrage d'une orchestration à partir d'une autre orchestration, après que l'appelant démarre l'action, il passe à l'étape suivante du flux de processus. L'orchestration invoquée par l'appelant est exécutée indépendamment jusqu'à ce que le flux de processus soit terminé. Pour plus d’informations, consultez Comment configurer la forme d’orchestration des appels. Consultez également Guide pratique pour configurer la forme d’orchestration de démarrage.

Accès à l'exemple

<Chemin d’accès> des exemples\Orchestrations\CallOrchestration\

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

Fichier(s) Description
CallOrchestration.btproj, CallOrchestration.sln Fichiers projet et solution de l'exemple.
CallOrchestrationBinding.xml Utilisé pour une configuration automatisée, comme la liaison de port.
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.
findShippingPrice.odx Orchestration BizTalk qui sert d'orchestration secondaire, appelée à partir de l'orchestration principale, receivePO.odx.
InputPO.xml Exemple de fichier de bon de commande conforme au schéma défini dans le fichier PO.xsd.
PO.xsd Schéma définissant la structure des messages de bon de commande entrants comme l'exemple de fichier entrant InputPO.xml, ainsi que la promotion des propriétés pour les trois éléments du schéma.
PropertySchema.xsd Fichier de schéma de propriété qui prend part à la promotion des propriétés pour les trois éléments du schéma PO.xsd.
receivePO.odx Orchestration BizTalk qui sert d'orchestration principale dans l'exemple. Elle récupère les messages de bon de commande dans le dossier de réception, puis appelle l'autre orchestration, findShippingPrice.odx, pour le calcul et la mise à jour du prix d'expédition.
Setup.bat Utilisé pour générer et initialiser cet exemple.

Génération et initialisation de cet exemple

Pour créer et initialiser l'exemple CallOrchestration

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

    <Chemin d’accès> des exemples\Orchestrations\CallOrchestration\

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

    • Création des dossiers d'entrée (In) et de sortie (Out) associés à cet exemple dans le dossier CallOrchestration.

    • Compile et déploie le projet Visual Studio, contenant les deux orchestrations, 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.

    • 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.

Exécution de cet exemple

Pour exécuter l'exemple CallOrchestration

  1. Placez une copie du fichier InputPO.xml dans le dossier In.

  2. Observez le fichier de bon de commande XML mis à jour créé dans le dossier Out. Il contient le message de bon de commande d'origine, modifié de manière à inclure le prix d'expédition calculé, comme expliqué plus haut. Le format du nom de ce fichier est <MessageID>.xml, où <MessageID> est le GUID généré pour identifier le message de manière unique.

Désinstallation de l'exemple

Pour désinstaller l'exemple CallOrchestration

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

    <Chemin d’accès> des exemples\Orchestrations\CallOrchestration\

  2. Exécutez Cleanup.bat.

Voir aussi

Orchestrations (dossier d’exemples BizTalk Server)