Skip to main content
Administrator Guide
Laatst bijgewerkt: 2023-06-23
Concept: foutafhandelingscomponenten

Concept: foutafhandelingscomponenten

Studio biedt drie verschillende
fouthandlers
in het
palet
:
Naam
Functie
fout bij verzenden
Hiermee kunt u de fout verwerken met behulp van standaardcomponenten en -stappen. Een veelvoorkomend patroon is om
Send-error
te gebruiken om de fout aan de integratiegebeurtenis te rapporteren door de gemeenschappelijke component
PutIntegrationMessage
aan te roepen.
log-error
Hiermee wordt de huidige fout vastgelegd in het uitvoerlogboek. Bevat het foutbericht en de stacktracering van de Java-uitzondering. Gebruik deze optie wanneer het niet nodig is om afzonderlijk fouten in de integratiegebeurtenis aan het licht te brengen, maar u het bericht wel wilt vastleggen op het moment dat de fout zich voordoet. Vermijd het vastleggen van grote berichten, omdat deze de prestaties kunnen verminderen en kunnen worden afgekapt, wat kan leiden tot verlies van diagnostische gegevens.
custom-error-handler
Hiermee kunt u een springbean opgeven die Java gebruikt om de fout te verwerken. Gebruik deze optie wanneer voor foutafhandeling complexe Java-code is vereist.
U kunt een fouthandler toevoegen als onderliggend element van een bemiddelingscomponent of als afzonderlijk element in de assemblage. Fouthandlers die aan bemiddelingscomponenten zijn toegevoegd, zijn lokaal. Fouthandlers voor de assemblage zijn algemeen.
Wanneer Workday een fout aantreft in een Studio-integratie, stopt Workday de normale verwerking en wordt de keten van verwerkte componenten afgewikkeld, op zoek naar een fouthandler die kan worden aangeroepen. Fouten worden altijd eerst lokaal verwerkt. Als er geen lokale fouthandler beschikbaar is, wordt de verantwoordelijkheid overgedragen aan de algemene fouthandler. Gebruik lokale fouthandlers als u nauwkeurige controle wilt over wat er gebeurt als er fouten optreden of als u de gedetailleerde context wilt rapporteren van wat de integratie aan het doen was op het moment van de fout. Beschouw algemene fouthandlers als een failsafe.
Als elke fouthandler is geactiveerd en een fout nog steeds niet is gemarkeerd als afgehandeld, wordt het bericht verwerkt, wordt een fout gegenereerd op basis van de uitzondering en wordt de assembly gemarkeerd als beëindigd. De integratie wordt beschreven als Voltooid met fouten.
Opmerkelijk standaardgedrag:
  • Lokale fouthandlers verwerken alleen fouten die optreden in de bovenliggende bemiddelingscomponent. Ze kunnen echter ook fouten in downstreamcomponenten verwerken. Als u dit gedrag wilt inschakelen, stelt u de eigenschap
    'Downstreamfouten afhandelen'
    van de bemiddelingscomponent met de fouthandler in op
    true
    .
  • Fouten worden in Workday gemarkeerd als afgehandeld wanneer een fouthandler wordt aangeroepen. Als u de eigenschap
    Rethrow Error
    van een fouthandler instelt op
    true
    , wordt de fout niet gewist. Als gevolg hiervan wordt de fout afgehandeld door de volgende upstream-fouthandler binnen het bereik of de algemene fouthandler. Gebruik dit patroon om de details van een fout lokaal te rapporteren, maar om de algehele fout of voltooiing op een hoger niveau in de assemblage af te handelen.
  • Wanneer in Workday een fout wordt verwerkt, wordt de berichtverwerking opnieuw gestart vanuit de aangeroepen fouthandler en wordt het antwoordpad voortgezet naar het element waarin de fout is opgetreden. U kunt echter opgeven dat de verwerking moet worden hervat op het element waarin de fout is opgetreden. Als u dit gedrag wilt inschakelen, stelt u de eigenschap
    Doorgaan na fout in
    van de bemiddelingscomponent met de fouthandler om '' te
    herstellen
    . Gebruik dit gedrag in situaties waarin de code die door de fouthandler wordt aangeroepen de foutvoorwaarde kan corrigeren, zodat de mislukte bewerking opnieuw kan worden uitgevoerd.
U kunt meer controle over fouthandlers uitoefenen door MVEL-voorwaarde-expressies toe te voegen aan de weergave
Eigenschappen
. Als er voorwaardeexpressies aanwezig zijn, wordt de fouthandler alleen aangeroepen als deze allemaal 'waar' zijn.
U kunt het verhogen van de fout afdwingen met behulp van de
context.setError
of
context.SetException
methoden in MVEL- of Java-code. Bij gebruik van de
setError
kunt u een fout-ID configureren die kan worden gedetecteerd door voorwaardelijke expressies in de fouthandler. Gebruik deze techniek wanneer u een fout lokaal afhandelt, maar details van het fouttype wilt doorgeven aan een stroomopwaartse fouthandler voor algemene afhandeling.
U kunt fouten ook afhandelen met behulp van
routecomponenten
:
  • De
    failoverstrategie
    probeert een route te gebruiken. Als er een fout optreedt, wordt de failoverroute uitgevoerd, waarbij de fout wordt gemarkeerd als afgehandeld.
  • Met de
    aangepaste strategie
    kunt u een springbean leveren. Springbeans implementeert de
    RoutingStrategy
    -interface, die een . heeft
    isHandleError
    methode. Gebruik deze methode om op te geven dat de strategie fouten moet verwerken.