Gestion des erreurs (dossier d'exemples BizTalk Server)

La fonction de cet exemple est de générer une fonctionnalité de gestion des erreurs pour l'application de routage basé sur le contenu (CBR).

Prérequis

Pour exécuter l’exemple, il est recommandé d’installer Microsoft Office InfoPath 2010 ou version ultérieure. Vous pouvez exécuter l'exemple sans utiliser InfoPath, mais dans ce cas vous ne pouvez pas visualiser les bilans d'exploitation ni l'envoi des bilans d'exploitation via l'adaptateur HTTP.

Fonctions de l'exemple

L'exemple implémente une partie d'un système de traitement de bilan d'exploitation. Plus précisément, cet exemple effectue les opérations suivantes :

  1. Définit un schéma de bilan d'exploitation contenant des informations sur un bilan d'exploitation et le soumissionnaire individuel, dont le nom du département.

  2. Fournit l'envoi du bilan d'exploitation via un répertoire ou via un service Web utilisant InfoPath.

  3. Promeut les propriétés Department et correlationID dans le document de message afin qu’elles puissent être utilisées dans un filtre de port pour contrôler le routage.

  4. Achemine les bilans d'exploitation du département Marketing vers un fichier d'un répertoire, simulant la remise au système principal du département.

  5. Génère un message ayant échoué pour les bilans d'exploitation appartenant aux départements autres que Marketing. Le message ayant échoué inclut des informations sur l'erreur, dont le code d'erreur et la description de l'erreur.

  6. Achemine les messages ayant échoué vers un destinataire humain (utilisateur des activités ou opérateur d'application) en vue de la correction et du renvoi.

  7. Achemine les bilans d'exploitation renvoyés sur la base du département, comme décrit plus haut.

    Une grande partie de ces opérations est effectuée par le biais d'une planification d'orchestration BizTalk.

Comment cet exemple est conçu et pourquoi

La conception s’appuie sur les pipelines XML d’envoi et de réception par défaut, la promotion des propriétés, les filtres d’abonnement et les planifications d’orchestration dans BizTalk Server pour acheminer les messages. Ces critères de conception et leur justification sont récapitulés dans le tableau suivant.

Élément de conception Raison(s) sélectionnée(s)
Pipeline XML de réception par défaut - Le pipeline XMLReceive prend en charge la promotion de propriété ; Le pipeline PassThruReceive ne l’est pas.
- Le message entrant est déjà au format XML et ne nécessite pas de traitement au-delà du désassemblement de base et de la résolution de partie.
Routage pour les messages ayant échoué - Les ports de réception suspendent les messages ayant échoué et génèrent un accusé de réception négatif par défaut. Lorsque le routage est activé BizTalk Server tente d’acheminer tout message qui ne parvient pas à être traité vers une application d’abonnement (par exemple, un autre port de réception ou une planification d’orchestration).
Promotion de la propriété - BizTalk Server dépend des champs de propriété à effectuer le routage. Des champs distinctifs sont utilisés par les orchestrations et ne peuvent pas être utilisés à des fins de routage.
Filtre d’abonnement - Le filtre d’abonnement effectue le routage en capturant les messages qui répondent à un ou plusieurs critères en fonction des champs de propriété.
Planification d'orchestration BizTalk - Offre la possibilité d’ajouter des informations aux messages ayant échoué.
- Active le routage des messages ayant échoué vers un emplacement dédié pour l’intervention humaine.
- Traite les notes de frais resoumises.
XMLTransmit - Effectue l’assembly de base des messages XML sortants. Le pipeline PassThruTransmit ne fournit aucune prise en charge supplémentaire.

Accès à l'exemple

Cet exemple se trouve dans <Samples Path>\Messaging\ErrorHandling\.

Le tableau suivant contient une liste de fichiers pour cet exemple.

Fichier Description
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 de Services Internet (IIS) si nécessaire.
ErrorHandling.sln Fichier de solution Visual Studio pour l'exemple.
ErrorHandlingBinding.xml Fichier de liaison pour l'exemple.
Setup.bat Utilisé pour générer et initialiser cet exemple.
Bilan d'exploitation – John Doe.xml Exemple de document InfoPath de bilan d'exploitation.
Bilan d'exploitation non valide – John Doe.xml Exemple de document InfoPath de bilan d'exploitation contenant des données non valides.
Dans le dossier ErrorHandler :

ErrorHandler.btproj
Projet BizTalk pour l'orchestration.
Dans le dossier ErrorHandler :

ResubmitLogic.odx
Orchestration qui s'abonne à des messages ayant échoué, les envoie au destinataire humain en vue de la correction, puis renvoie les messages corrigés au serveur en vue du routage.
Dans le dossier ErrorHandler :

SuspendMessage.odx
Orchestration permettant d'interrompre les messages qui ne peuvent pas être traités au sein de l'orchestration de gestion des erreurs.
Dans le dossier InfoPathForms :

Expense Report.xsn

Bilan d'exploitation - Resubmit.xsn
Formulaire InfoPath de bilan d'exploitation et formulaire utilisé pour visualiser et renvoyer les messages ayant échoué.
Dans le dossier PipelinesAndSchemas :

ExpenseReportSchema.xsd
Schéma XML pour le document de bilan d'exploitation.
Dans le dossier PipelinesAndSchemas :

PipelinesAndSchemas.btproj
Projet BizTalk pour l'exemple.
Dans le dossier PipelinesAndSchemas :

PropertySchema.xsd
Schéma de propriété pour l'exemple.

Guide pratique pour utiliser cet exemple

Cet exemple fournit un point de départ pour créer votre propre procédure de gestion des erreurs.

Génération et initialisation de cet exemple

Pour créer et initialiser l'exemple Compose

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

    <Samples Path>\Messaging\ErrorHandling

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

    • Crée trois dossiers : ExpenseReportIn, ExpenseReportOut et ResubmittedReportIn sous le chemin d’accès suivant :

      <Samples Path>\Messaging\ErrorHandling

    • Copie et publie les formulaires InfoPath Expense Report.xsn et Expense Report – Resubmit.xsn dans le dossier C :\Temp\InfoPathForms.

    • Compilation des projets Visual Studio pour cet exemple.

    • Crée un répertoire virtuel appelé ExpenseReports.

    • Crée une application BizTalk appelée Exemple de gestion des erreurs et y déploie les exemples d’assemblys.

    • Crée et lie les BizTalk Server emplacements de réception et les ports d’envoi et de réception.

    • Inscription et démarrage des orchestrations, activation des emplacements de réception et démarrage des ports d'envoi.

      Si vous décidez d'ouvrir et de créer les projets de cet exemple sans exécuter Setup.bat, vous devez commencer par créer une paire de clés de nom fort à l'aide de .NET Framework Strong Name Utility (sn.exe). Celle-ci permet de signer les assemblys de l'exemple.

  3. Avant d’essayer d’exécuter cet exemple, vérifiez que BizTalk Server n’a pas déclaré d’erreurs pendant le processus de génération ou d’initialisation.

    Notes

    Pour annuler les modifications effectuées par Setup.bat, exécutez Cleanup.bat. Vous devez exécuter Cleanup.bat avant d'exécuter Cleanup.bat une seconde fois.

  4. Si vous utilisez Internet Information Services (IIS) 7.0, vous devez effectuer des étapes de configuration supplémentaires pour ajuster le paramètre du répertoire virtuel qui correspond à l’emplacement de réception HTTP BizTalk Server utilisé par l’exemple. Configurez IIS en procédant comme suit :

    1. À l'aide du gestionnaire IIS 7.0 Manager, créez un nouveau pool d'applications pour le groupe d'utilisateurs d'hôtes BizTalk isolés.

    2. Configurez le pool d’applications pour qu’il s’exécute sous l’identité de l’utilisateur hôte isolé BizTalk Server. (Vous pouvez ignorer cette étape si vous avez déjà configuré un pool d’applications pour d’autres emplacements de réception HTTP BizTalk Server.)

    3. Configurez le répertoire virtuel ExpenseReport pour utiliser le pool d’applications de réception HTTP créé à l’étape précédente.

      Si vous ne disposez pas encore d'extension de serveur Web pour l'extension BTSHTTPReceive.dll ISAPI, créez-en une et activez-la en réglant son statut sur « Autorisé ». Vous pouvez effectuer cette opération dans IIS 7.0 à l’aide de la console de gestion IIS (directement sous Outils d’administration ou via la console Gestion de l’ordinateur) comme suit :

    4. Développez l’arborescence du Gestionnaire des services Internet .

    5. Cliquez sur le dossier Extensions de service web .

    6. Dans le volet droit du console de gestion, cliquez sur Ajouter une nouvelle extension de service web.

    7. Dans la boîte de dialogue Nouvelle extension de service web , cliquez sur Ajouter.

    8. Dans la boîte de dialogue Ajouter un fichier , cliquez sur Parcourir pour sélectionner le fichier <BizTalkInstallPath>\HttpReceive\BTSHTTPReceive.dll, puis cliquez sur OK.

    9. Configurer le répertoire virtuel ExpenseReport pour utiliser le chemin local \Program Files (x86)\Microsoft BizTalk Server <VERSION>HTTPReceive

      Pour plus d’informations, consultez Comment configurer IIS pour un emplacement de réception HTTP.

Exécution de l'exemple

Avant d'exécuter l'exemple avec le bilan d'exploitation correct, recourez à la procédure suivante pour s'assurer que l'exemple de cas « absence d'erreur » fonctionne correctement.

Pour vérifier le bon fonctionnement de l'exemple de cas « absence d'erreur »

  1. Ouvrez le formulaire InfoPath Expense Report - John Doe.xml. Examinez le champ Département dans le formulaire. Ce champ doit être réglé sur « Marketing ».

  2. Dans le coin supérieur gauche de la fenêtre InfoPath, cliquez sur Envoyer ou sur Soumettre à nouveau l’état de dépenses. Attendez confirmation que le bilan d'exploitation a bien été envoyé.

    OU

    Copiez et collez ce fichier dans le dossier ExpenseReportIn .

  3. Vous devriez voir un nouveau fichier déposé dans le dossier ExpenseReportOut . Ce fichier est le même formulaire de bilan d'exploitation envoyé à l'étape précédente.

    Après avoir confirmé le cas « absence d'erreur », suivez la procédure suivante pour exécuter l'exemple avec un bilan d'exploitation incorrect afin de déclencher la fonctionnalité de gestion des erreurs.

Pour déclencher la gestion des erreurs

  1. Ouvrez le formulaire InfoPath Note de frais non valide - John Doe.xml. Examinez le champ Département dans le formulaire. Ce champ est réglé sur une valeur non valide.

  2. Dans le coin supérieur gauche de la fenêtre InfoPath, cliquez sur Envoyer. Attendez confirmation que le bilan d'exploitation a bien été envoyé.

    OU

    Copiez et collez ce fichier dans le dossier ExpenseReportIn .

  3. Vous devriez voir un nouveau fichier appelé ErrorReport_<date_time>.xml déposé dans le dossier ExpenseReportOut .

    Ouvrez ce fichier et vérifiez qu'il s'agit du bilan d'exploitation envoyé à l'étape précédente mais avec les informations d'erreur ajoutées au début.

  4. Remplacez la valeur erronée du service par « Marketing », puis cliquez sur Envoyer dans le coin supérieur gauche de la fenêtre InfoPath.

    OU

    Copiez et collez ce fichier dans le dossier ResubmittedReportIn .

  5. Vous devez voir un nouveau fichier créé dans le dossier ExpenseReportOut . Ce fichier est le bilan d'exploitation corrigé qui a été renvoyé au serveur.

Voir aussi

Utilisation du routage pour les messages ayant échoué
Messagerie (dossier d’exemples BizTalk Server)