Anlass und Zeitpunkt für die Ausführung dieser Task
Wenn in einer Aktivität eines Dauerprozesses ein nicht abgefangener Fehler
im übergeordneten Bereich gefunden wird und die zugeordnete Aktivitätsschablone
angibt, dass die Aktivität beim Auftreten von Fehlern zu stoppen ist, wird die Aktivität
in den Stoppstatus versetzt, damit sie repariert werden kann. Sie können erneut versuchen,
die Aktivität auszuführen.
Sie können die von der Aktivität verwendeten Variablen
festlegen. Außerdem können Sie (außer bei Script-Aktivitäten) im Aufruf für erzwungene
Wiederholung Parameter übergeben (z. B. die von der Aktivität erwartete Nachricht).
Erforderliche Schritte für diese Task
- Listen Sie die gestoppten Aktivitäten auf.
QueryResultSet result =
process.query("DISTINCT ACTIVITY.AIID",
"ACTIVITY.STATE = ACTIVITY.STATE.STATE_STOPPED AND
PROCESS_INSTANCE.NAME='Kundenbestellung'",
null, null, null);
Diese Aktion gibt die gestoppten Aktivitäten
für die Prozessinstanz 'Kundenbestellung' zurück.
- Versuchen Sie erneut, die Aktivität auszuführen, z. B. eine gestoppte
Staff-Aktivität.
if (result.size() > 0)
{
result.first();
AIID aiid = (AIID) result.getOID(1);
ActivityInstanceData activity = process.getActivityInstance(aiid);
ClientObjectWrapper input =
process.createMessage(aiid, activity.getOutputMessageTypeName());
DataObject myMessage = null;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)input.getObject();
// Legen Sie die Zeichenfolgen in der Nachricht fest (es soll z. B. Schokolade bestellt werden)
myMessage.setString("Bestellnr", "Schokolade");
}
boolean continueOnError = true;
process.forceRetry(aiid, input, continueOnError);
}
Diese Aktion wiederholt die Aktivität. Wenn ein
Fehler auftritt, bestimmt der Parameter continueOnError die
durchzuführende Aktion bei einem Fehler während der Verarbeitung der Anforderung
forceRetry.
In dem angegebenen Beispiel ist continueOnError
auf 'true' gesetzt.
Dies bedeutet, dass die Aktivität beim Auftreten eines Fehlers während der
Verarbeitung der forceRetry-Anforderung in den Fehlschlagstatus versetzt wird.
Der Fehler wird an die übergeordneten Bereiche der
Aktivität weitergegeben, bis er behoben oder der Prozessbereich
erreicht ist. Anschließend wird der Prozess in den Status für anstehendes
Fehlschlagen versetzt, bis er schließlich den Status für fehlgeschlagen
erreicht.