Ajout d'un gestionnaire d'exceptions global à une orchestration

A l'exécution, si l'une des activités de l'orchestration envoie une exception et un gestionnaire d'exceptions global a été activé, la branche d'interception globale est exécutée.

Pourquoi et quand exécuter cette tâche

La figure ci-dessous montre un exemple d'orchestration :

Modèle d'orchestration

Dans cet exemple, si les activités Base de données, Obtenir lignes insérées ou Base de données, Insérer lignes échouent et renvoient une exception, l'activité Si... alors de la branche d'interception globale est exécutée.

Procédure

  1. Cliquez avec le bouton droit de la souris sur l'icône de démarrage Icône de démarrage de l'orchestration et, dans le menu, sélectionnez l'option Ajouter une branche d'interception globale. La branche d'interception globale est ajoutée à l'orchestration et les variables suivantes sont automatiquement créées :
    • faultName - Pendant l'exécution, la variable faultName contient le nom de l'exception envoyée par une activité dans l'orchestration.
    • faultData - Pendant l'exécution, la variable faultData contient le message d'erreur associé à l'exception. Ces informations supplémentaires sont uniquement renvoyées par les activités des services Web. Pour les activités des services Web, la variable faultData contient l'erreur.
    • faultInfo - Pendant l'exécution, la variable faultInfo renvoie les noeuds suivants :
      • name - Pendant l'exécution, le noeud faultInfo/name contient le nom de l'exception envoyée par une activité dans l'orchestration. Le noeud faultInfo/name est de type xsd:QName.
      • message - Pendant l'exécution, le noeud faultInfo/message contient le message d'erreur associé à l'exception. Le noeud faultInfo/message est de type xsd:string.
      • activityId - Pendant l'exécution, le noeud faultInfo/activityId contient l'ID activité qui identifie de manière unique l'activité où l'exception s'est produite. Le noeud faultInfo/activityId est de type xsd:int.
      • activityName - Pendant l'exécution, le noeud faultInfo/activityName contient le nom de l'activité où l'exception s'est produite. Le noeud faultInfo/activityName est de type xsd:string.
      • faultTime - Pendant l'exécution, le noeud faultInfo/faultTime contient l'heure à laquelle l'erreur s'est produite. Le noeud faultInfo/faultTime est de type xsd:dateTime.
      Remarque : Le nom d'exception renvoyé par une activité dans la variable faultName et le noeud faultInfo/name pourront être modifiés dans une édition ultérieure.
  2. Configurez la branche d'interception globale en déplaçant les activités de l'onglet Activités vers la branche d'interception globale, comme illustré dans la figure précédente.

Résultats

Remarque : La portée des variables faultName, faultData et faultInfo est limitée à la branche d'interception globale. Cette limitation de portée signifie que la valeur de ces variables est valide uniquement dans la branche d'interception globale. Par exemple, si vous ajoutez l'activité Si...Alors qui teste la valeur de la variable faultName, l'activité Si...Alors doit être placée dans la branche d'interception globale comme illustré dans la figure précédente.



Commentaires | Notices


Icône d'horodatage Dernière révision: Friday, November 1, 2013


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/Adding_a_Global_Exception_Handler_to_an_Orchestration.html