Concept : composantes Error Handler
Studio fournit trois (3)
Error Handler
différents dans la Palette
:
Nom | Fonction |
|---|---|
send-error
| Permet de traiter l’erreur à l’aide de composantes et d’étapes standard. Un modèle courant consiste à utiliser send-error pour signaler l’erreur à l’événement d’intégration en appelant la composante commune PutIntegrationMessage . |
log-error
| Enregistre l’erreur actuelle dans le journal de sortie. Inclut le message d’erreur et la trace de la pile de l’exception Java. À utiliser lorsqu’il n’est pas nécessaire d’exposer individuellement les erreurs de l’événement d’intégration, mais que vous souhaitez consigner le message au moment de l’erreur. Évitez de consigner des messages volumineux, car ils peuvent nuire aux performances et être tronqués, ce qui entraînerait la perte de données de diagnostic. |
custom-error-handler
| Permet de fournir un Spring bean 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’une composante de médiation ou en tant qu’élément individuel dans l’assemblage. Les gestionnaires d’erreurs ajoutés aux composantes de médiation sont locaux. Les gestionnaires d’erreurs de l’assemblage sont globaux.
Lorsque Workday détecte une erreur dans une intégration de Studio, il arrête le traitement normal et déroule la chaîne des composantes traitées, à la recherche d’un gestionnaire d’erreurs à appeler. Il tente toujours de traiter les erreurs au niveau local d’abord. Si aucun gestionnaire d’erreurs local n’est disponible, la responsabilité est transmise au gestionnaire d’erreurs global. Utilisez des gestionnaires d’erreur locaux lorsque vous souhaitez contrôler précisément ce qui se passe en cas d’erreur ou lorsque vous avez besoin de signaler le contexte détaillé de ce que l’intégration était en train de faire au moment où l’erreur s’est produite. Considérez les gestionnaires d’erreurs globaux comme une sécurité intégrée.
Si chaque gestionnaire d’erreurs a été déclenché 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 Terminé avec erreurs.
Comportements par défaut notables :
- Les gestionnaires d’erreurs locaux ne traitent que les erreurs qui surviennent dans leur composante de médiation parent. Toutefois, ils peuvent également traiter les erreurs des composantes en aval. Pour activer ce comportement, définissez la propriétéHandle Downstream Errorsde la composante de médiation contenant le gestionnaire d’erreurs surtrue.
- Workday marque les erreurs comme traitées lorsqu’un gestionnaire d’erreurs est appelé. Toutefois, si vous définissez la propriétéRethrow Errord’un gestionnaire d’erreurs àtrue, Workday n’efface pas l’erreur. Par conséquent, elle est traitée par le prochain gestionnaire d’erreurs en amont dans le cadre ou par le gestionnaire d’erreurs globales. Utilisez ce modèle pour signaler les détails d’une erreur localement, mais pour traiter l’échec ou l’achèvement global à un niveau supérieur dans l’agrégation.
- Lorsque Workday gère une erreur, il redémarre le traitement des messages à partir du gestionnaire d’erreurs appelé et se poursuit sur le chemin de réponse vers l’élément où l’erreur a été signalée. Toutefois, vous pouvez préciser que le traitement doit plutôt reprendre à l’élément où l’erreur a été déclenchée. Pour activer ce comportement, définissez la propriétéContinue After Errorde la composante de médiation contenant le gestionnaire d’erreurs àrecover. Utilisez ce comportement dans les situations où le code appelé par le gestionnaire d’erreurs peut corriger la condition d’erreur, ce qui permet à une nouvelle tentative de l’opération qui a échoué de réussir.
Vous pouvez exercer un meilleur contrôle sur les gestionnaires d’erreurs en ajoutant des expressions de condition MVEL dans leur vue
Properties
. Lorsque des expressions de conditions sont présentes, Workday appelle le gestionnaire d’erreurs uniquement si elles sont évaluées comme vraies.Vous pouvez forcer la génération des erreurs en utilisant le
context.setError
ou context.SetException
méthodes en code MVEL ou Java. Lorsque vous utilisez la setError
Pour la méthode , vous pouvez configurer un identifiant d'erreur qui peut être détecté par des expressions conditionnelles dans le gestionnaire d'erreurs. Utilisez cette technique lorsque vous traitez une erreur localement, mais que vous souhaitez transmettre des détails sur le type d’erreur à un gestionnaire d’erreurs en amont pour le traitement commun.Vous pouvez également gérer les erreurs à l’aide des composantes
route
:
- La stratégiefailover-strategytente d’utiliser une route et, si une erreur se produit, exécute la route de basculement, en marquant l’erreur comme étant traitée.
- Lastratégie personnaliséevous permet de fournir un bean serein. Les Domaines de primes mettent en œuvre leRoutingStrategyinterface, qui comporte uneisHandleErrorméthode. Utilisez cette méthode pour préciser que la stratégie traite les erreurs.