Concept : composants du gestionnaire d'erreurs
Workday Studio propose trois
gestionnaires d'erreurs
différents dans la Palette
:
Nom | Fonction |
|---|---|
send-error
| Permet de traiter l'erreur à l'aide de composants et d'étapes standard. Un modèle courant consiste à utiliser send-error pour signaler l'erreur à l'événement d'intégration en appelant le composant commun PutIntegrationMessage . |
log-error
| Enregistre l'erreur actuelle dans le journal de sortie. Inclut le message d'erreur et la trace d'appels de l'exception Java. À utiliser lorsqu'il n'est pas nécessaire d'exposer individuellement les erreurs dans l'événement d'intégration, mais que vous souhaitez consigner le message au moment de l'erreur. Évitez de consigner les messages volumineux, car ils peuvent nuire aux performances et être tronqués, entraînant une perte de données de diagnostic. |
custom-error-handler
| Permet de fournir un bean Spring qui utilise Java pour traiter l'erreur. À utiliser lorsque la gestion des erreurs nécessite un code Java complexe. |
Vous pouvez ajouter un gestionnaire d'erreurs en tant qu'élément enfant d'un composant de médiation ou en tant qu'élément individuel dans l'assemblage. Les gestionnaires d'erreurs ajoutés aux composants de médiation sont locaux. Les gestionnaires d'erreurs de l'assemblage sont globaux.
Lorsque Workday rencontre une erreur dans une intégration Workday Studio, il interrompt le traitement normal et déroule la chaîne des composants traités, à la recherche d'un gestionnaire d'erreurs à appeler. Il tente toujours de traiter les erreurs localement en premier. Si aucun gestionnaire d'erreurs local n'est disponible, la responsabilité est transférée au gestionnaire d'erreurs global. Utilisez des gestionnaires d'erreurs locaux lorsque vous souhaitez contrôler précisément ce qui se passe en cas d'erreur ou lorsque vous devez signaler le contexte détaillé de ce que faisait l'intégration au moment où l'erreur s'est produite. Considérez les gestionnaires d'erreurs globaux comme une solution de sécurité intégrée.
Si tous les gestionnaires d'erreurs se sont déclenchés et qu'une erreur n'est toujours pas marquée comme traitée, Workday traite le message, génère une erreur à partir de l'exception et marque l'assemblage comme terminé. Il décrit l'intégration comme étant Terminée avec erreurs.
Comportements par défaut notables :
- Les gestionnaires d'erreurs locaux traitent uniquement les erreurs qui surviennent dans leur composant de médiation parent. Toutefois, ils peuvent également traiter les erreurs dans les composants en aval. Pour activer ce comportement, définissez la propriétéHandle Downstream Errorsdu composant de médiation contenant le gestionnaire d'erreurs surtrue.
- Workday marque les erreurs comme étant gérées lorsqu'un gestionnaire d'erreurs est appelé. Cependant, si vous définissez la propriétéRethrow Errord'un gestionnaire d'erreurs surtrue, Workday n'efface pas l'erreur. En conséquence, elle est gérée par le gestionnaire d'erreurs en amont ou le gestionnaire d'erreurs global suivant dans le champ d'application. Utilisez ce modèle pour rapporter le détail d'une erreur en local mais pour gérer l'échec global ou l'achèvement du processus à un niveau supérieur dans l'ensemble.
- Lorsque Workday gère une erreur, il redémarre le traitement du message à partir du gestionnaire d'erreurs appelé, en continuant sur le chemin de la réponse vers l'élément dans lequel l'erreur a été générée. Toutefois, vous pouvez indiquer que le traitement doit reprendre à l'élément où l'erreur s'est produite. Pour activer ce comportement, définissez la propriétéContinue After Errordu composant de médiation contenant le gestionnaire d'erreurs surrecover. Utilisez ce comportement dans les situations où le code appelé par le gestionnaire d'erreurs peut corriger la condition d'erreur, permettant ainsi à une nouvelle tentative de l'opération échouée d'aboutir.
Vous pouvez mieux contrôler les gestionnaires d'erreurs en ajoutant des expressions de condition MVEL dans leur vue
Propriétés
. Lorsque des expressions de condition sont présentes, Workday appelle le gestionnaire d'erreurs uniquement si elles sont toutes définies sur true.Vous pouvez forcer l'augmentation des erreurs avec l'
context.setError
ou context.SetException
Utiliser les méthodes de code MVE ou Java. Lorsque vous utilisez la setError
, vous pouvez configurer un code d'erreur qui peut être détecté par des expressions conditionnelles dans le gestionnaire d'erreurs. Utilisez cette technique lorsque vous gérez une erreur localement, mais que vous souhaitez transmettre des informations sur le type d'erreur à un gestionnaire d'erreurs en amont pour une gestion commune.Vous pouvez également gérer les erreurs à l'aide de composants
Route
:
- failover-strategytente d'utiliser un routage et, en cas d'erreur, exécute le routage par basculement en marquant l'erreur comme gérée.
- custom-strategyvous permet de fournir un bean Spring. Les multi-élémentsRoutingStrategyl'interfaceisHandleErrorméthode. Utilisez cette méthode pour indiquer que la stratégie gère les erreurs.