Gestoppte Aktivität erneut ausführen

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

  1. 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.

  2. 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.

Zugehörige Konzepte
Abfragen für Business-Prozessobjekte und taskbezogene Objekte

Rechtliche Hinweise |

Letzte Aktualisierung: LASTUPDATEDVAR

(c) Copyright IBM Corporation 2005.
Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)