Verwalten der Workflow-Instanzen

Die Workflow-Konsole stellt mehrere Tools für die Verwaltung von Workflow-Instanzen bereit, um sicherzustellen, dass sie wie erwartet ausgeführt werden.

Für die Verwaltung Ihrer Workflows steht eine Reihe von Konsolen bereit. Verwenden Sie die globale Navigation, um das Bedienfeld Tools zu öffnen, und wählen Sie dann Workflow aus:

  • Modelle: Workflow-Definitionen verwalten
  • Instanzen: Laufende Workflow-Instanzen anzeigen und verwalten
  • Starter: Launches von Workflows verwalten
  • Archiv: Protokoll der erfolgreich abgeschlossenen Workflows anzeigen
  • Fehler: Protokoll der mit Fehlern abgeschlossenen Workflows anzeigen
  • Automatisch zuweisen: Automatische Zuweisung von Workflows zu Vorlagen konfigurieren

Überwachen des Status von Workflow-Instanzen

  1. Wählen Sie über die Navigation Tools und dann Workflow aus.

  2. Wählen Sie Instanzen aus, um die Liste der aktuell ausgeführten Workflow-Instanzen anzuzeigen.

    wf-97

Durchsuchen von Workflow-Instanzen

  1. Wählen Sie über die Navigation Tools und dann Workflow aus.

  2. Wählen Sie Instanzen aus, um die Liste der aktuell ausgeführten Workflow-Instanzen anzuzeigen. Wählen Sie in der oberen Leiste links die Option Filter. Alternativ können Sie den Tastaturbefehl Alt+1 verwenden. Daraufhin wird das folgende Dialogfeld angezeigt:

    wf-99-1

  3. Wählen Sie im Dialogfeld „Filter“ die gewünschten Suchkriterien für den Workflow aus. Sie können anhand der folgenden Eingaben suchen:

    • Payload-Pfad: einen bestimmten Pfad auswählen
    • Workflow-Modell: ein Workflow-Modell auswählen
    • Bevollmächtigter: einen Workflow-Bevollmächtigten auswählen
    • Typ: Aufgabe, Workflow-Element oder Workflow-Fehler
    • Aufgabenstatus: „Aktiv“, „Abgeschlossen“ oder „Beendet“
    • Meine Position: Eigentümer UND Bevollmächtigter, nur Eigentümer, nur Bevollmächtigter
    • Startdatum: Startdatum vor oder nach einem bestimmten Datum
    • Enddatum: Enddatum vor oder nach einem bestimmten Datum
    • Fälligkeitsdatum: Fälligkeitsdatum vor oder nach einem bestimmten Datum
    • Aktualisierungsdatum: Aktualisierungsdatum vor oder nach einem bestimmten Datum

Aussetzen, Fortsetzen und Beenden einer Workflow-Instanz

  1. Wählen Sie über die Navigation Tools und dann Workflow aus.

  2. Wählen Sie Instanzen aus, um die Liste der aktuell ausgeführten Workflow-Instanzen anzuzeigen.

    wf-96-1

  3. Wählen Sie ein spezifisches Element aus und verwenden Sie dann je nachdem Beenden, Aussetzen oder Fortsetzen. Eine Bestätigung und/oder weitere Details sind erforderlich:

    wf-97-1

    HINWEIS

    Um einen Workflow zu beenden oder abzubrechen, muss er in einem Zustand sein, in dem auf Benutzerinteraktionen gewartet wird, z. B. in einem Teilnehmerschritt. Der Versuch, einen Workflow abzubrechen, der gerade Vorgänge ausführt (aktive Threads, die gerade ausgeführt werden), führt möglicherweise nicht zu den erwarteten Ergebnissen.

Anzeigen archivierter Workflows

  1. Wählen Sie über die Navigation Tools und dann Workflow aus.

  2. Wählen Sie Archiv aus, um die Liste der erfolgreich abgeschlossenen Workflow-Instanzen anzuzeigen.

    wf-98

    HINWEIS

    Der Abbruchstatus wird als erfolgreiches Beenden betrachtet, da er infolge der Benutzeraktion auftritt, wie zum Beispiel:

    • nach der Verwendung der Aktion Beenden oder
    • wenn eine von einem Workflow betroffene Seite (erzwungenermaßen) gelöscht wird, wird der Workflow beendet
  3. Wählen Sie ein spezifisches Element und dann Offener Verlauf aus, um mehr Details anzuzeigen:

    wf-99

Beheben von Workflow-Instanzfehlern

Schlägt ein Workflow fehl, ermöglicht Ihnen AEM mit der Fehler-Konsole die Untersuchung und das Ergreifen entsprechender Maßnahmen, sobald die ursprüngliche Ursache behoben wurde:

  • Fehlerdetails
    Öffnet ein Fenster zum Anzeigen von
    Fehlermeldung, Schritt und Fehlerstapel.

  • Offener Verlauf Die Details des Workflow-Verlaufs werden angezeigt.

  • Schritt erneut ausführen Hierdurch wird die Komponenteninstanz „Skriptschritt“ erneut ausgeführt. Verwenden Sie den Befehl „Schritt erneut ausführen“, nachdem Sie die Ursache des ursprünglichen Fehlers behoben haben. Wiederholen Sie zum Beispiel den Schritt nach der Behebung eines Bugs in dem Skript, das vom Prozessschritt ausgeführt wird.

  • Beenden Beenden Sie den Workflow, wenn der Fehler eine nicht mit dem Workflow zu vereinbarende Situation verursacht hat. So kann der Workflow beispielsweise von Umgebungsbedingungen abhängen, wie zum Beispiel von Informationen im Repository, die nicht mehr für die Workflow-Instanz gelten.

  • Beenden und erneut versuchen Dies hat ähnliche Auswirkungen wie Beenden, außer dass eine neue Workflow-Instanz mit der ursprünglichen Payload und Beschreibung sowie dem ursprünglichen Titel gestartet wird.

Setzen Sie den Workflow anschließend zur Untersuchung von Fehlern fort oder beenden Sie ihn. Gehen Sie hierzu wie folgt vor:

  1. Wählen Sie über die Navigation Tools und dann Workflow aus.

  2. Wählen Sie Fehler aus, um die Liste der Workflow-Instanzen anzuzeigen, die nicht erfolgreich abgeschlossen wurden.

  3. Wählen Sie ein spezifisches Element und dann die entsprechende Aktion aus:

    wf-47

Regelmäßiges Bereinigen von Workflow-Instanzen

Die Minimierung der Anzahl von Workflow-Instanzen steigert die Leistung der Workflow-Engine, sodass Sie regelmäßig abgeschlossene oder laufende Workflow-Instanzen aus dem Repository löschen können.

Konfigurieren Sie die Adobe Granite Workflow-Bereinigungskonfiguration, um Workflow-Instanzen je nach ihrem Alter und Status zu löschen. Darüber hinaus können Sie Workflow-Instanzen aller Modelle oder eines bestimmten Modells löschen.

Sie können auch mehrere Konfigurationen des Service erstellen, um Workflow-Instanzen zu löschen, die andere Kriterien erfüllen. Erstellen Sie zum Beispiel eine Konfiguration, mit der die Instanzen eines bestimmten Workflow-Modells gelöscht werden, wenn sie bedeutend länger als erwartet ausgeführt werden. Erstellen Sie eine weitere Konfiguration, die alle abgeschlossenen Workflows nach einer bestimmten Anzahl von Tagen löscht, um die Größe des Repositorys zu minimieren.

Zum Konfigurieren des Service können Sie die OSGi-Konfigurationsdateien konfigurieren. Siehe OSGi-Konfigurationsdateien. In der folgenden Tabelle werden die Eigenschaften beschrieben, die für beide Methoden erforderlich sind.

HINWEIS

Für das Hinzufügen der Konfiguration zum Repository lautet die Service-PID:
com.adobe.granite.workflow.purge.Scheduler
Da der Service ein Factory-Service ist, erfordert der Name des sling:OsgiConfig-Knotens einen ein Kennungssuffix, wie zum Beispiel:
com.adobe.granite.workflow.purge.Scheduler-myidentifier

Eigenschaftsname (Web-Konsole) OSGi-Eigenschaftsname Beschreibung
Auftragsname scheduledpurge.name Dies ist ein beschreibender Name für die geplante Bereinigung.
Workflow-Status scheduledpurge.workflowStatus

Dies ist der Status der zu bereinigenden Workflow-Instanz. Die folgenden Werte sind gültig:

  • ABGESCHLOSSEN: Abgeschlossene Workflow-Instanzen werden gelöscht.
  • WIRD AUSGEFÜHRT: Aktuell ausgeführte Workflow-Instanzen werden gelöscht.
Zu bereinigende Modelle scheduledpurge.modelIds

Dies ist die ID der zu bereinigenden Workflow-Modelle. Die ID ist der Pfad zum Modellknoten, wie zum Beispiel:
/conf/global/settings/workflow/models/dam/update_asset/jcr:content/model
Geben Sie keinen Wert zur Bereinigung der Instanzen aller Workflow-Modelle ein.

Klicken Sie zum Angeben mehrerer Modelle auf die „+“-Schaltfläche innerhalb der Web-Konsole.

Workflow-Alter scheduledpurge.daysold Dies gibt das Alter der zu bereinigenden Workflow-Instanz in Tagen an.

Einstellen der maximalen Größe des Posteingangs

Sie können die maximale Größe des Posteingangs durch die Konfiguration des Adobe Granite Workflow-Service bestimmen. Siehe Hinzufügen einer OSGi-Konfiguration zum Repository. In der folgenden Tabelle wird die Eigenschaft beschrieben, die Sie konfigurieren können.

HINWEIS

Für das Hinzufügen der Konfiguration zum Repository lautet die Service-PID:
com.adobe.granite.workflow.core.WorkflowSessionFactory.

Eigenschaftsname (Web-Konsole) OSGi-Eigenschaftsname
Max. Größe für Posteingangsabfrage granite.workflow.inboxQuerySize

Verwenden von Workflow-Variablen für kundeneigene Datenspeicher

Von Workflows verarbeitete Daten werden im von Adobe bereitgestellten Speicher (JCR) gespeichert. Diese Daten können von sensibler Natur sein. Sie können alle benutzerdefinierten Metadaten/Daten in Ihrem eigenen verwalteten Speicher speichern, anstatt die von Adobe bereitgestellte Datenspeicherung zu verwenden. In diesen Abschnitten wird beschrieben, wie Sie diese Variablen für die externe Datenspeicherung einrichten.

Festlegen des Modells für die Verwendung der externen Datenspeicherung von Metadaten

Auf der Ebene des Workflow-Modells wird ein Flag bereitgestellt, das angibt, dass das Modell (und seine Laufzeitinstanzen) über eine externe Datenspeicherung von Metadaten verfügt. Workflow-Variablen werden nicht für die Workflow-Instanzen der Modelle, die für den externen Speicher markiert sind, in JCR beibehalten.

Die Eigenschaft userMetadataPersistenceEnabled wird im jcr:content-Knoten des Workflow-Modells gespeichert. Dieses Flag wird in Workflow-Metadaten als cq:userMetaDataCustomPersistenceEnabled beibehalten.

Die folgende Abbildung zeigt, wie Sie das Flag in einem Workflow setzen.

workflow-externalize-config

APIs für Metadaten in der externen Datenspeicherung

Um die Variablen extern zu speichern, müssen Sie die APIs implementieren, die der Workflow bereitstellt.

UserMetaDataPersistenceContext

Die folgenden Beispiele zeigen die Verwendung der API.

@ProviderType
public interface UserMetaDataPersistenceContext {

    /**
     * Gets the workflow for persistence
     * @return workflow
     */
    Workflow getWorkflow();

    /**
     * Gets the workflow id for persistence
     * @return workflowId
     */
    String getWorkflowId();

    /**
     * Gets the user metadata persistence id
     * @return userDataId
     */
    String getUserDataId();
}

UserMetaDataPersistenceProvider

/**
 * This provider can be implemented to store the user defined workflow-data metadata in a custom storage location
 */
@ConsumerType
public interface UserMetaDataPersistenceProvider {

   /**
    * Retrieves the metadata using a unique identifier
    * @param userMetaDataPersistenceContext
    * @param metaDataMap of user defined workflow data metaData
    * @throws WorkflowException
    */
   void get(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;

   /**
    * Stores the given metadata to the custom storage location
    * @param userMetaDataPersistenceContext
    * @param metaDataMap metadata map
    * @return the unique identifier that can be used to retrieve metadata. If null is returned, then workflowId is used.
    * @throws WorkflowException
    */
   String put(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;

}

Auf dieser Seite