AEM biedt verschillende processtappen die kunnen worden gebruikt voor het maken van workflowmodellen. Aangepaste processtappen kunnen ook worden toegevoegd voor taken die niet door de ingebouwde stappen worden bestreken (zie Workflowmodellen maken).
Voor elke processtap worden de volgende kenmerken beschreven.
Processtappen worden gedefinieerd door een Java-klasse of een ECMAScript.
De nuttige lading is de entiteit waarop een werkschemainstantie handelt. De payload wordt impliciet geselecteerd door de context waarbinnen een werkschemainstantie is begonnen.
Als een workflow bijvoorbeeld wordt toegepast op een AEM pagina P, wordt P van stap tot stap doorgegeven terwijl de workflow verder gaat, waarbij elke stap optioneel op P op een of andere manier reageert.
In het meest voorkomende geval is de lading een JCR-knooppunt in de repository (bijvoorbeeld een AEM Pagina of Element). Een JCR-knooppuntlading wordt doorgegeven als een tekenreeks die een JCR-pad of een JCR-id (UUID) is. In sommige gevallen kan de payload een JCR-eigenschap (doorgegeven als een JCR-pad), een URL, een binair object of een algemeen Java-object zijn. De individuele processtappen die op de lading handelen zullen gewoonlijk een lading van een bepaald type verwachten, of verschillend afhankelijk van het ladingstype handelen. Voor elk hieronder beschreven proces wordt het verwachte ladingstype, indien van toepassing, beschreven.
Sommige workflowprocessen accepteren argumenten die de beheerder opgeeft bij het instellen van de workflowstap.
Argumenten worden ingevoerd als één tekenreeks in de eigenschap Procesargumenten in het deelvenster Eigenschappen van de werkstroomeditor. Voor elk hieronder beschreven proces, wordt het formaat van het argumentkoord beschreven in een eenvoudige grammatica EBNF. De volgende code geeft bijvoorbeeld aan dat de argumenttekenreeks bestaat uit een of meer door komma's gescheiden paren, waarbij elk paar bestaat uit een naam (een tekenreeks) en een waarde, gescheiden door een dubbele dubbele dubbele punt:
args := name '::' value [',' name '::' value]*
name := /* A string */
value := /* A string */
Na deze time-outperiode is de workflowstap niet meer operationeel. Sommige workflowprocessen respecteren de time-out, andere niet en worden genegeerd.
De sessie die aan de WorkflowProcess
wordt doorgegeven, wordt ondersteund door de servicegebruiker voor de workflowprocesservice, die de volgende machtigingen heeft in de hoofdmap van de opslagplaats:
jcr:read
rep:write
jcr:versionManagement
jcr:lockManagement
crx:replicate
Als die reeks toestemmingen voor uw WorkflowProcess
implementatie niet voldoende is, dan moet het een zitting met de vereiste toestemmingen gebruiken.
De geadviseerde manier om dit te doen is een de dienstgebruiker te gebruiken die met de noodzakelijke, maar minimale, vereiste ondergroep van toestemmingen wordt gecreeerd.
Als u een upgrade uitvoert vanaf een versie die ouder is dan AEM 6.2, moet u mogelijk uw implementatie bijwerken.
In vorige versies, werd de admin zitting overgegaan tot WorkflowProcess
implementaties en kon dan volledige toegang tot de bewaarplaats zonder het moeten specifieke ACLs bepalen.
De machtigingen zijn nu gedefinieerd als boven (Machtigingen). Net als de aanbevolen methode voor het bijwerken van uw implementatie.
Een kortetermijnoplossing is ook beschikbaar voor achterwaartse compatibiliteitsdoeleinden wanneer codeveranderingen niet haalbaar zijn:
Gebruikend de Console van het Web ( /system/console/configMgr
bepaal de plaats van de Dienst van de Configuratie van de Werkstroom van Granite
de Verouderde modus van workflowproces inschakelen
Dit zal terugkeren naar het oude gedrag van het verstrekken van een admin zitting aan de WorkflowProcess
implementatie en zal onbeperkte toegang tot de volledige bewaarplaats opnieuw verlenen.
De volgende processen voeren geen handelingen uit op inhoud. Ze dienen om het gedrag van de workflow zelf te bepalen.
Het proces AbsoluteTimeAutoAdvancer
(Absolute Tijd AutoBevordering) gedraagt zich identiek aan AutoAdvancer, behalve dat het zich op een bepaalde tijd en een datum, in plaats van na een bepaalde tijdsduur uitvouwt.
com.adobe.granite.workflow.console.timeout.autoadvance.AbsoluteTimeAutoAdvancer
Met het proces AutoAdvancer
wordt de workflow automatisch naar de volgende stap verplaatst. Als er meer dan één mogelijke volgende stap (bijvoorbeeld, als er OF gesplitst is) is dan zal dit proces de werkschema langs de standaardroute vooruit, als één is gespecificeerd, anders zal het werkschema niet geavanceerd zijn.
Java-klasse: com.adobe.granite.workflow.console.timeout.autoadvance.AutoAdvancer
Payload: Geen.
Argumenten: Geen.
Time-out: Procestijden worden na ingestelde tijdsduur weergegeven.
Het ProcessAssembler
proces voert veelvoudige subprocessen opeenvolgend in één enkele werkschemastap uit. Als u ProcessAssembler
wilt gebruiken, maakt u één stap van dit type in uw workflow en stelt u de argumenten ervan in om de namen en argumenten van de subprocessen aan te geven die u wilt uitvoeren.
Java-klasse: com.day.cq.workflow.impl.process.ProcessAssembler
Payload: Een DAM-middel, AEM pagina of geen lading (afhankelijk van de vereisten van subprocessen).
Argumenten:
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 */
Bijvoorbeeld:
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
De volgende processen voeren eenvoudige taken uit of dienen als voorbeelden.
U must verandert niets in /libs
weg.
Dit komt doordat de inhoud van /libs
de volgende keer wordt overschreven dat u uw exemplaar bijwerkt (en kan worden overschreven wanneer u een hotfix of functiepakket toepast).
Het item in het opgegeven pad wordt verwijderd.
ECMAScript-pad: /libs/workflow/scripts/delete.ecma
Payload: JCR-pad
Argumenten: Geen
Time-out: Genegeerd
Dit is het null-proces. Het voert geen verrichting uit, maar registreert een zuivert bericht.
ECMAScript-pad: /libs/workflow/scripts/noop.ecma
Payload: Geen
Argumenten: Geen
Time-out: Genegeerd
Dit is een ongeldig proces dat false
op check()
methode terugkeert.
ECMAScript-pad: /libs/workflow/scripts/rule-false.ecma
Payload: Geen
Argumenten: Geen
Time-out: Genegeerd
Dit is een voorbeeld van een ECMAScript-proces.
ECMAScript-pad: /libs/workflow/scripts/sample.ecma
Payload: Geen
Argumenten: Geen
Time-out: Genegeerd
Dit is een eenvoudig workflowproces dat de opgegeven URL aanroept. Doorgaans wordt de URL een verwijzing naar een JSP (of ander servletequivalent) dat een eenvoudige taak uitvoert. Dit proces mag alleen tijdens de ontwikkeling en demonstraties worden gebruikt en niet in een productieomgeving. De argumenten specificeren URL, login en wachtwoord.
ECMAScript-pad: /libs/workflow/scripts/urlcaller.ecma
Payload: Geen
Argumenten:
args := url [',' login ',' password]
url := /* The URL to be called */
login := /* The login to access the URL */
password := /* The password to access the URL */
Bijvoorbeeld: http://localhost:4502/my.jsp, mylogin, mypassword
Vergrendelt de lading van de workflow.
Java, klasse: com.day.cq.workflow.impl.process.LockProcess
Payload: JCR_PATH en JCR_UID
argumenten: geen
time-out: genegeerd
De stap heeft geen effect in de volgende omstandigheden:
Ontgrendelt de lading van de workflow.
Java, klasse: com.day.cq.workflow.impl.process.UnlockProcess
Payload: JCR_PATH en JCR_UID
argumenten: geen
time-out: genegeerd
De stap heeft geen effect in de volgende omstandigheden:
Het volgende proces voert een versie-verwante taak uit.
Hiermee maakt u een nieuwe versie van de taakbelasting van de werkstroom (AEM pagina of DAM-element).
Java-klasse: com.day.cq.wcm.workflow.process.CreateVersionProcess
Payload: Een JCR-pad of UUID die verwijst naar een pagina of DAM-element
Argumenten: Geen
Time-out: Eerbiedigd