2016-07-25 9 views
6

Handhabung Ich versuche, die Web-Service-Ausnahme im Workflow (Activiti) zu behandeln .Hier ich nur ein Beispielprozess geschaffen, wo ich einer der Web-Service durch Service Task nenne, die eine Ausnahme (keine Sub-Prozess wirft). Um diese Ausnahme zu behandeln, habe ich das Boundary Error Event hinzugefügt und die Fehlerreferenz als "myError" angegeben (wie im Code). Während ich zu implementieren bin versucht, erhalte eine Fehlermeldung alsFehler in Activiti

Attribute 'attachedToRef' must appear on element 'boundaryEvent'. 

In Activiti Modellierer i nicht das Attribut als ‚attachedToRef‘ gefunden.

Here is the workflow process,which i want to deploy

Kann jemand bitte helfen Sie mir diesen Fehler zu beheben aus.

Antwort

0

Ich glaube nicht, dass Sie eine solche Ausnahme in Activiti in einer solchen Art und Weise handhaben kann. alternativ können Sie eine Klasse erstellen, Ihren Web-Service über diese Klasse aufrufen und in der Service-Aufgabe eingeben.

hoffen, es hilft ...

+0

Ich tue das gleiche in meinem Dienst Aufgabe zu machen, in der Klasse Attribute des Service-Task ich den vollständigen Pfad meiner Klassennamen geben und innerhalb der Klasse Rufen Sie den Webservice über playClient auf und meine Logik befindet sich innerhalb von try und catch block, wo ich eine Ausnahme bekommen kann. Hier ist das Problem activiti erlaubt nicht, den Prozess selbst zu implementieren. Es fragt nach attachedRef Attribut. Können Sie mir bitte sagen, den Pfad für dieses Attribut in Activiti Modellierer –

+1

zuerst: verwenden Sie keine Grenze Fangereignis mit Serviceaufgabe. Es funktioniert nie so. Zweitens: Wenn eine Ausnahme auftritt, können Sie eine Prozessvariable ändern und nach Abschluss der Service-Aufgabe können Sie ein exklusives Gateway haben, um zu überprüfen, ob diese Prozessvariable geändert wurde oder nicht. und den Prozess entsprechend fortsetzen. –

+0

Vielen Dank für Ihre schnelle Antwort. Ich habe Zweifel, wie kann ich den Fehler an den nächsten Schritt des Workflow-Prozesses weiterleiten. Ich möchte den Endbenutzer den gleichen Fehler anzeigen. –

0

Sie können für die Fehlerbehandlung Sub-Prozess erstellen:

<process id="1" isClosed="false" isExecutable="true" processType="None"> 
     **main process tasks** 
<subProcess activiti:exclusive="true" id="eventSP" triggeredByEvent="true"> 
    <startEvent id="startError" name="StartErrorEvent"> 
    <errorEventDefinition id="_5"/> 
    </startEvent> 
    <serviceTask> 
    **tasks for error** 
    </serviceTask> 
</subProcess> 
</process> 

Für Fehler Unterprozess Sie separate Klasse zu erstellen haben (oder smth) und Logik ausführen für Fehler.

Oder wenn Sie Ausnahme wie Grenze activiti user guide las

Verwandte Themen