Show Menu
THEMEN×

Referenz für Workflow-Prozesse

AEM bietet verschiedene Prozessschritte für die Erstellung von Workflow-Modellen. Darüber hinaus können auch benutzerdefinierte Prozessschritte für Aufgaben hinzugefügt werden, die nicht von den integrierten Schritten abgedeckt werden (vergleiche Erstellen von Workflow-Modellen ).

Prozessmerkmale

Die folgenden Merkmale werden für jeden Prozessschritt beschrieben.

Java-Klasse oder ECMA-Pfad

Prozessschritte werden entweder durch eine Java-Klasse oder ein ECMAScript definiert.
  • Bei Java-Klassenprozessen wird der vollqualifizierte Klassenname angegeben.
  • Bei ECMAScript-Prozessen wird der Pfad des Skripts angegeben.

Nutzlast

Die Nutzlast ist die Entität, auf die die Workflow-Instanz reagiert. Die Nutzlast wird implizit durch den Kontext ausgewählt, in dem eine Workflow-Instanz gestartet wird.
Wenn beispielsweise ein Workflow auf die AEM-Seite P angewendet wird, durchläuft P bei fortlaufendem Workflow die verschiedenen Schritte. Dabei wirkt sich jeder Schritt optional in irgendeiner Weise auf P aus.
Meistens besteht die Nutzlast aus einem JCR-Knoten im Repository (beispielsweise eine AEM-Seite oder ein AEM-Asset). Eine JCR-Knotennutzlast wird als Zeichenfolge übergeben, die entweder aus einem JCR-Pfad oder einer JCR-Kennung besteht (UUID). Manchmal ist die Nutzlast eine JCR-Eigenschaft (sie wird dann als JCR-Pfad übergeben), eine URL, ein Binärobjekt oder ein generisches Java-Objekt. Einzelne Prozessschritte, die auf die Nutzlast reagieren, erwarten in der Regel einen bestimmten Typ Nutzlast oder verhalten sich je nach Nutzlasttyp anders. Der erwartete Nutzlasttyp (falls vorhanden) wird für jeden der unten beschriebenen Prozesse angegeben.

Argumente

Einige Workflow-Prozesse akzeptieren Argumente, die der Administrator beim Einrichten des Workflow-Schritts angibt.
Argumente werden als einzelne Zeichenfolge im Bereich Eigenschaften des Workflow-Editors in der Eigenschaft Prozess-Argumente angegeben. Das Format der Argumentzeichenfolge wird für jeden unten beschriebenen Prozess in einfacher EBNF-Grammatik angegeben. Beispielsweise zeigt Folgendes an, dass die Argumentzeichenfolge aus einem oder mehreren durch Kommas getrennten Paaren besteht, wobei jedes Paar aus einem Namen (der eine Zeichenfolge ist) und einem Wert besteht, der durch einen Doppelpunkt voneinander getrennt ist:
    args := name '::' value [',' name '::' value]*
    name := /* A string */
    value := /* A string */

Zeitüberschreitung

Nach einer gewissen Zeitüberschreitung funktioniert der Workflow-Schritt nicht mehr. Einige Workflow-Prozesse respektieren die Zeitüberschreitung, für andere gilt sie nicht und wird daher ignoriert.

Berechtigungen

The session passed to the WorkflowProcess is backed by the service user for the workflow process service, which has the following permissions at the root of the repository:
  • jcr:read
  • rep:write
  • jcr:versionManagement
  • jcr:lockManagement
  • crx:replicate
If that set of permissions is not sufficient for your WorkflowProcess implementation, then it must use a session with the required permissions.
Hierfür wird empfohlen, einen Dienstbenutzer mit einer minimalen Untergruppe der erforderlichen Berechtigungen zu verwenden.
Wenn Sie ein Upgrade von einer früheren Version auf AEM 6.2 durchführen, müssen Sie möglicherweise auch Ihre Implementierung aktualisieren.
In den vorherigen Versionen wurde die Adminsitzung an die WorkflowProcess -Implementierungen übergeben. Danach war der uneingeschränkte Zugriff auf das Repository ohne Definition der spezifischen ACLs möglich.
Die Berechtigungen werden nun wie oben dargestellt definiert ( Berechtigungen ). Dasselbe gilt für die empfohlene Methode zum Aktualisieren Ihrer Implementierung.
Eine kurzfristige Lösung ist auch für Abwärtskompatibilitätszwecke verfügbar, wenn Codeänderungen nicht möglich sind:
  • Using the Web Console ( /system/console/configMgr locate the Adobe Granite Workflow Configuration Service
  • Aktivieren Sie den Legacymodus des Workflow-Prozesses .
Dadurch wird das bisherige Verhalten wieder aktiviert, nach dem eine Adminsitzung an die WorkflowProcess -Implementierung übergeben und uneingeschränkter Zugriff auf das gesamte Repository eingeräumt wird.

Workflow-Steuerungsprozesse

Die folgenden Prozesse wirken sich nicht auf Inhalte aus. Sie dienen der Steuerung des Workflows.

AbsoluteTimeAutoAdvancer (automatisches Voranschreiten für absolute Uhrzeit)

Der Prozess AbsoluteTimeAutoAdvancer (automatisches Voranschreiten für absolute Uhrzeit) verhält sich wie AutoAdvancer . Ausnahme ist, dass die Zeitüberschreitung nach einer bestimmten Zeit und einem gewissen Datum anstelle einer entsprechenden Dauer eintritt.
  • Java-Klasse : com.adobe.granite.workflow.console.timeout.autoadvance.AbsoluteTimeAutoAdvancer
  • Nutzlast : Keine.
  • Argumente : Keine.
  • Zeitüberschreitung : Zeitüberschreitung nach festgelegter Zeit und festgelegtem Datum.

AutoAdvancer (Auto-Advancer)

Der AutoAdvancer -Prozess bringt den Workflow automatisch zum nächsten Schritt. Falls mehr als nur ein nächster Schritt möglich ist (beispielsweise bei einer ODER-Teilung), bringt der Prozess den Workflow auf der Standardroute voran. Wurde keine Standardroute festgelegt, wird der Workflow nicht vorangebracht.
  • Java-Klasse : com.adobe.granite.workflow.console.timeout.autoadvance.AutoAdvancer
  • Nutzlast : Keine.
  • Argumente : Keine.
  • Zeitüberschreitung : Nach einem festgelegtem Zeitraum.

ProcessAssembler (Prozess-Assembler)

Der ProcessAssembler -Prozess führt mehrere Teilprozesse nacheinander in einem einzigen Workflow-Schritt aus. Erstellen Sie für die Nutzung des ProcessAssembler -Prozesses einen einzelnen entsprechenden Schritt im Workflow und legen Sie die Argumente so fest, dass sie die Namen und Argumente der auszuführenden Teilprozesse angeben.
  • Java-Klasse : com.day.cq.workflow.impl.process.ProcessAssembler
  • Nutzlast : DAM-Asset, AEM-Seite oder keine Nutzlast (je nach Anforderungen der Teilprozesse).
  • Argumente :
        args := arg [',' arg]
        arg := processname ['::' processargs]
        processname := /* A fully qualified Java Class or absolute
        repository path to an ECMAScript */
        processargs := processarg [';' processarg]*
        processarg := '[' nobracketprocessarg ']' | nobracketprocessarg
        nobracketprocessarg := listitem [':' listitem]*
        listitem := /* A string */

  • Zeitüberschreitung : Berücksichtigt.
Beispiel:
  • Extrahieren Sie die Metadaten des Assets.
  • Erstellen Sie drei Miniaturansichten der drei angegebenen Größen.
  • Erstellen Sie ein JPEG-Bild aus dem Asset, vorausgesetzt, das Asset ist ursprünglich weder eine GIF- noch eine PNG-Datei (in diesem Fall wird kein JPEG-Bild erstellt).
  • Legen Sie das Datum der letzten Änderung für das Asset fest.
com.day.cq.dam.core.process.ExtractMetadataProcess,
    com.day.cq.dam.core.process.CreateThumbnailProcess::[140:100];[48:48];[319:319:false],
    com.day.cq.dam.core.process.CreateWebEnabledImageProcess::dimension:1280:1280;mimetype:image/jpeg,
    com.day.cq.dam.core.process.AssetSetLastModifiedProcess

Grundlegende Prozesse

Die folgenden Prozesse führen einfache Aufgaben durch oder dienen als Beispiel.
You must not change anything in the /libs path.
This is because the content of /libs is overwritten the next time you upgrade your instance (and may be overwritten when you apply either a hotfix or feature pack).

Löschen Sie

Das Element unter dem angegebenen Pfad wird gelöscht.
  • ECMAScript-Pfad : /libs/workflow/scripts/delete.ecma
  • Nutzlast : JCR-Pfad
  • Argumente : Keine
  • Zeitüberschreitung : Ignoriert

noop

Dies ist der Null-Prozess. Es wird kein Vorgang ausgeführt, jedoch eine Debugmeldung protokolliert.
  • ECMAScript-Pfad : /libs/workflow/scripts/noop.ecma
  • Nutzlast : Keine
  • Argumente : Keine
  • Zeitüberschreitung : Ignoriert

rule-false

This is a null process that returns false on the check() method.
  • ECMAScript-Pfad : /libs/workflow/scripts/rule-false.ecma
  • Nutzlast : Keine
  • Argumente : Keine
  • Zeitüberschreitung : Ignoriert

Beispiel

Ein Muster-ECMAScript-Prozess.
  • ECMAScript-Pfad : /libs/workflow/scripts/sample.ecma
  • Nutzlast : Keine
  • Argumente : Keine
  • Zeitüberschreitung : Ignoriert

urlcaller

Einfacher Workflow-Prozess, der die angegebene URL aufruft. Für gewöhnlich ist die URL ein Verweis auf ein JSP (oder ein anderes entsprechendes Servlet), das eine einfache Aufgabe ausführt. Dieser Prozess sollte nur während der Entwicklung und für Demonstrationen verwendet werden, nicht in einer Produktionsumgebung. Die Argumente legen die URL, die Anmeldedaten und das Kennwort fest.
  • ECMAScript-Pfad : /libs/workflow/scripts/urlcaller.ecma
  • Nutzlast : Keine
  • Argumente :
        args := url [',' login ',' password]
        url := /* The URL to be called */
        login := /* The login to access the URL */
        password := /* The password to access the URL */

Beispiel: http://localhost:4502/my.jsp, mylogin, mypassword
  • Zeitüberschreitung : Ignoriert

LockProcess

Sperrt die Nutzlast des Workflows.
  • Java-Klasse: com.day.cq.workflow.impl.process.LockProcess
  • Nutzlast: JCR_PATH und JCR_UUID
  • Argumente: Keine
  • Zeitüberschreitung: Ignoriert
Unter folgenden Bedingungen ist der Schritt nicht wirksam:
  • Die Nutzlast wurde bereits gesperrt
  • Der Nutzlastknoten enthält keinen untergeordneten jcr:content-Knoten

UnlockProcess

Entsperrt die Nutzlast des Workflows.
  • Java-Klasse: com.day.cq.workflow.impl.process.UnlockProcess
  • Nutzlast: JCR_PATH und JCR_UUID
  • Argumente: Keine
  • Zeitüberschreitung: Ignoriert
Unter folgenden Bedingungen ist der Schritt nicht wirksam:
  • Die Nutzlast wurde bereits entsperrt
  • Der Nutzlastknoten enthält keinen untergeordneten jcr:content-Knoten

Versionierungsprozesse

Der folgende Prozess führt eine versionsbezogene Aufgabe aus.

CreateVersionProcess

Erstellt eine neue Version der Workflow-Nutzlast (AEM-Seite oder DAM-Asset).
  • Java-Klasse : com.day.cq.wcm.workflow.process.CreateVersionProcess
  • Nutzlast : JCR-Pfad oder UUID, der auf eine Seite oder ein DAM-Asset verweist
  • Argumente : Keine
  • Zeitüberschreitung : Berücksichtigt