Referens för arbetsflödessteg workflow-step-reference
Arbetsflödesmodeller består av en serie steg av olika typer. Beroende på typ kan dessa steg konfigureras och utökas med parametrar och skript för att ge den funktionalitet och kontroll som du behöver.
Stegegenskaper step-properties
Varje stegkomponent har en Step Properties som gör att du kan definiera och redigera de önskade egenskaperna.
Stegegenskaper - fliken Allmänt step-properties-common-tab
En kombination av följande egenskaper är tillgängliga för de flesta arbetsflödesstegkomponenter på Common i egenskapsdialogrutan:
-
Title
Stegets titel.
-
Description
En beskrivning av steget.
-
Workflow Stage
En nedrullningsbar väljare för att använda en Scen till steget.
-
Timeout
Den period efter vilken steget"har gått ut".
Du kan välja mellan: Off, Immediate, 1h, 6h, 12h, 24h.
-
Timeout Handler
Den hanterare som ska styra arbetsflödet när steget går ut; till exempel:
Auto Advancer
-
Handler Advance
Välj det här alternativet om du vill att arbetsflödet automatiskt ska gå vidare till nästa steg efter körningen. Om du inte väljer det här alternativet måste implementeringsskriptet hantera arbetsflödets utveckling.
Stegegenskaper - fliken Användare/grupp step-properties-user-group-tab
Följande egenskaper är tillgängliga för många arbetsflödesstegkomponenter på User/Group i egenskapsdialogrutan:
-
Notify user via email
- Du kan meddela deltagare genom att skicka ett e-postmeddelande när arbetsflödet når steget.
- Om det här alternativet är aktiverat skickas ett e-postmeddelande till användaren som definieras av egenskapen User/Group eller till varje medlem i gruppen om en grupp har definierats.
-
User/Group
- I en listruta kan du navigera och välja en användare eller grupp.
- Om du tilldelar ett steg till en viss användare kan bara den här användaren utföra en åtgärd på steget.
- Om du tilldelar ett steg till en hel grupp kommer alla användare i gruppen att ha åtgärden i sin egen grupp när arbetsflödet når det här steget Workflow Inbox.
- Se Delta i arbetsflöden för mer information.
OCH dela and-split
The AND Split skapar en delning i arbetsflödet, varefter båda grenarna blir aktiva. Du kan lägga till arbetsflödessteg i varje gren efter behov. I det här steget kan du införa flera bearbetningssökvägar i arbetsflödet. Du kan t.ex. tillåta att vissa granskningssteg utförs parallellt, vilket sparar tid.
AND Split - Configuration and-split-configuration
-
Redigera AND Split egenskaper:
- Split Name: Ange ett namn för förklarande ändamål.
- Ange antalet filialer som krävs. 2, 3, 4 eller 5.
-
Lägg till arbetsflödessteg i grenarna efter behov.
Behållarsteg container-step
A Container startar en annan arbetsflödesmodell som körs som ett underordnat arbetsflöde.
Detta Container I kan du återanvända arbetsflödesmodeller för att implementera vanliga stegsekvenser. En arbetsflödesmodell för översättning kan till exempel användas i flera redigeringsarbetsflöden.
Behållarsteg - konfiguration container-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Container
- Sub Workflow: Välj arbetsflödet som ska startas.
Gå till steg goto-step
The Goto Step I kan du ange nästa steg i arbetsflödesmodellen som ska köras, beroende på resultatet av ett ECMAScript:
-
true
: The Goto Step slutförs och arbetsflödesmotorn kör det angivna steget. -
false
: The Goto Step slutförs och den normala routningslogiken bestämmer nästa steg som ska köras.
The Goto Step I kan du implementera avancerade routningsstrukturer i dina arbetsflödesmodeller. Om du till exempel vill implementera en slinga Goto Step kan definieras för att köra ett föregående steg i arbetsflödet, där skriptet utvärderar ett slingvillkor.
Gå till steg - konfiguration goto-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Process
- The step to go to: Välj det steg som ska köras.
- Script Path: Sökvägen till ECMAScript som avgör om körningen av Goto Step.
- Script: Det ECMAScript som avgör om körningen av Goto Step.
Simulera en for-slinga simulating-a-for-loop
När du simulerar en for-slinga måste du behålla antalet upprepningar av slingor som har inträffat:
- Antalet representerar vanligtvis ett index med objekt som hanteras i arbetsflödet.
- Antalet utvärderas som avslutningskriterier för slingan.
Om du till exempel vill implementera ett arbetsflöde som utför en åtgärd på flera JCR-noder kan du använda en loopräknare som index för noderna. Spara ett integer
värdet i datamappningen för arbetsflödesinstansen. Använd skriptet för Goto Step om du vill öka antalet samt jämföra antalet med avslutningskriterierna.
function check(){
var count=0;
var keyname="loopcount"
try{
if (workflowData.getMetaDataMap().containsKey(keyname)){
log.info("goto script: found loopcount key");
count= parseInt(workflowData.getMetaDataMap().get(keyname))+1;
}
workflowData.getMetaDataMap().put(keyname,count);
}catch(err) {
log.info(err.message);
return false;
}
if (parseInt(count) <7){
return true;
} else {
return false;
}
}
ELLER Dela or-split
The OR Split skapar en delning i arbetsflödet, varefter endast en gren blir aktiv. I det här steget kan du lägga in sökvägar för villkorlig bearbetning i arbetsflödet. Du kan lägga till arbetsflödessteg i varje gren efter behov.
Eller delad - konfiguration or-split-configuration
-
Redigera OR Split egenskaper:
-
Common
- Ange antalet filialer som krävs. 2, 3, 4 eller 5.
-
**Branch : x >
- Script Path: Sökvägen till en fil som innehåller skriptet.
- Script: Lägg till skriptet i rutan.
- Default Route: Standardförgreningen följs när flera förgreningar utvärderas som true. Du kan bara ange en gren som standard.
note note NOTE Det finns en separat flik för varje gren: - Skriptet för varje gren utvärderas en i taget.
- Förgreningarna utvärderas från vänster till höger.
- Det första skriptet som utvärderas till true körs.
- Om ingen gren utvärderas till true, går arbetsflödet inte framåt.
note caution CAUTION Ange antingen Script Path eller Script. Båda alternativen kan inte användas samtidigt. Om du anger värden för båda egenskaperna använder steget Script Path. note note NOTE Se Definiera en regel för en OR-delning. -
-
Lägg till arbetsflödessteg i grenarna efter behov.
Deltagarsteg och väljare participant-steps-and-choosers
Deltagarsteg participant-step
A Participant Step I kan du tilldela ägarskap för en viss åtgärd. Arbetsflödet fortsätter bara när användaren har bekräftat steget manuellt. Detta används när du vill att någon ska vidta en åtgärd i arbetsflödet; till exempel ett granskningssteg.
Även om det inte är direkt relaterat måste användarauktorisering beaktas när en åtgärd tilldelas. användaren måste ha åtkomst till sidan som är arbetsflödets nyttolast.
Deltagarsteg - konfiguration participant-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
- Arbetsflödet är slutfört (färdigt).
- Arbetsflödet avbryts (avslutas).
Steg för dialogdeltagare dialog-participant-step
Använd en Dialog Participant Step för att samla in information från den användare som har tilldelats arbetsuppgiften. Det här steget är användbart när du vill samla in små mängder data som används senare i arbetsflödet.
När du är klar med steget Complete Work Item -dialogrutan innehåller de fält som du definierar i dialogrutan. De data som samlas in i fälten lagras i noder i arbetsflödets nyttolast. Efterföljande arbetsflödessteg kan sedan läsa värdet från databasen.
Om du vill konfigurera steget anger du vilken grupp eller användare som arbetsposten ska tilldelas till och sökvägen till dialogrutan.
Steg för dialogdeltagare - konfiguration dialog-participant-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Dialog
- Dialog Path: Sökvägen till dialognoden för dialogruta som du skapar.
Steg för dialogdeltagare - Skapa en dialogruta dialog-participant-step-creating-a-dialog
Så här skapar du en dialogruta:
- Bestäm var de resulterande uppgifterna ska sparas lagras i nyttolasten.
- Definiera dialogrutan. detta innefattar att definiera de fält som används för att samla in (och spara) data.
Steg för dialogdeltagare - lagra data i nyttolasten dialog-participant-step-storing-data-in-the-payload
Du kan lagra widgetdata i arbetsflödets nyttolast eller i arbetsobjektets metadata. Formatet på name
widgetnodens egenskap avgör var data lagras.
-
Store Data with the Payload
-
Om du vill lagra widgetdata som en egenskap för arbetsflödets nyttolast använder du följande format för värdet för namnegenskapen för widgetnoden:
./jcr:content/nodename
-
Data lagras i
nodename
nyttolastnodens egenskap. Om noden inte innehåller den egenskapen skapas egenskapen. -
När den lagras med nyttolasten skriver efterföljande användning av dialogrutan med samma nyttolast över egenskapens värde.
-
-
Store Data with the Work Item
-
Om du vill lagra widgetdata som en egenskap för arbetsobjektets metadata använder du följande format för värdet för egenskapen name:
nodename
-
Data lagras i
nodename
arbetsuppgiftens egenskapmetadata
. Data bevaras om dialogrutan sedan används med samma nyttolast.
-
Steg för dialogdeltagare - Dialogrutedefinition dialog-participant-step-dialog-definition
-
Dialog Structure
Dialogrutorna för Dialog Deltagare-steg liknar dialogrutor som du skapar för redigeringskomponenter. De lagras under:
/apps/myapp/workflow/dialogs
Dialogrutor för det pekaktiverade standardgränssnittet har följande nodstruktur:
code language-xml newComponent (cq:Component) |- cq:dialog (nt:unstructured) |- content |- layout |- items |- column |- items |- component0 |- component1 |- ...
note note NOTE Mer information finns på Skapa och konfigurera en dialogruta. -
Dialog Path Property
The Dialog Participant Step har Dialog Path egenskap (tillsammans med egenskaperna för en Deltagarsteg). Värdet för Dialog Path egenskapen är sökvägen till
dialog
noden i dialogrutan.Dialogrutan finns till exempel i en komponent med namnet
EmailWatch
som lagras i noden:/apps/myapp/workflows/dialogs
För det beröringsaktiverade användargränssnittet används följande värde för Dialog Path egenskap:
/apps/myapp/workflow/dialogs/EmailWatch/cq:dialog
-
Exempeldialogrutedefinition
Följande XML-kodfragment representerar en dialogruta som lagrar en
String
värdet iwatchEmail
Nod för nyttolastinnehållet. Titelnoden representerar TextField komponent:code language-xml jcr:primaryType="nt:unstructured" jcr:title="Watcher Email Address Dialog" sling:resourceType="cq/gui/components/authoring/dialog"> <content jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/container"> <layout jcr:primaryType="nt:unstructured" margin="false" sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns" /> <items jcr:primaryType="nt:unstructured"> <column jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/foundation/container"> <items jcr:primaryType="nt:unstructured"> <title jcr:primaryType="nt:unstructured" fieldLabel="Notification Email Address" name="./jcr:content/watchEmails" sling:resourceType="granite/ui/components/foundation/form/textfield" /> </items> </column> </items> </content> </cq:dialog>
Det här exemplet kommer, när det gäller det beröringskänsliga användargränssnittet, att resultera i en dialogruta som:
Dynamiskt deltagarsteg dynamic-participant-step
The Dynamic Participant Step -komponenten liknar Participant Step med skillnaden att deltagaren väljs automatiskt vid körning.
Om du vill konfigurera steget väljer du en Participant Chooser som identifierar deltagaren som arbetsposten ska tilldelas till, tillsammans med en dialogruta.
Dynamiskt deltagarsteg - konfiguration dynamic-participant-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Participant Chooser
- Participant Chooser: Namnet på deltagarväljaren som du skapar.
- Arguments: Alla obligatoriska argument.
- Email: Anger om ett e-postmeddelande ska skickas till användaren.
-
Dialog
- Dialog Path: Sökvägen till dialognoden för som du skapar (som med Steg för dialogdeltagare).
Dynamiskt deltagarsteg - Utveckla deltagarväljaren dynamic-participant-step-developing-the-participant-chooser
Du skapar deltagarväljaren. Därför kan du använda valfri urvalslogik eller valfria villkor. Din deltagarväljare kan t.ex. välja den användare (i en grupp) som har minst arbetsobjekt. Du kan skapa valfritt antal deltagaralternativ som du kan använda med olika instanser av Dynamiskt deltagarsteg i dina arbetsflödesmodeller.
Skapa en OSGi-tjänst eller ett ECMAScript-skript som väljer en användare att tilldela arbetsposten till.
-
ECMAscript
Skript måste innehålla en funktion med namnet getParticipant som returnerar ett användar-ID som
String
värde. Lagra egna skript i/apps/myapp/workflow/scripts
eller en undermapp.Ett exempelskript ingår i en AEM standardinstans:
/libs/workflow/scripts/initiator-participant-chooser.ecma
note caution CAUTION Du måste ändrar ingenting i /libs
bana.Detta beror på innehållet i /libs
skrivs över nästa gång du uppgraderar din instans (och kan skrivas över när du använder en snabbkorrigering eller ett funktionspaket).Det här skriptet väljer arbetsflödesinitieraren som deltagare:
code language-none function getParticipant() { return workItem.getWorkflow().getInitiator(); }
note note NOTE The Workflow Initiator Participant Chooser -komponenten utökar Dynamic Participant Step och använder det här skriptet som stegimplementering. -
OSGi service
Tjänsterna måste implementera com.day.cq.workflow.exec.ParticipantStepChooser gränssnitt. Gränssnittet definierar följande medlemmar:
SERVICE_PROPERTY_LABEL
fält: Använd det här fältet för att ange namnet på deltagarväljaren. Namnet visas i en lista med tillgängliga deltagarval i dialogrutan Dynamic Participant Step egenskaper.getParticipant
metod: Returnerar det dynamiskt lösta huvud-ID:t som enString
värde.
note caution CAUTION The getParticipant
returnerar det dynamiskt lösta huvud-ID:t. Detta kan vara ett grupp-ID eller användar-ID.Ett grupp-ID kan dock bara användas för Participant Step, när en lista över deltagare returneras. För Dynamic Participant Step en tom lista returneras och kan inte användas för delegering. Gör implementeringen tillgänglig för Dynamic Participant Step lägger du till Java-klassen i ett OSGi-paket som exporterar tjänsten och distribuerar paketet till den AEM servern.
note note NOTE Random Participant Chooser är en exempeltjänst som väljer en slumpmässig användare ( com.day.cq.workflow.impl.process.RandomParticipantChooser
). The Random Participant Chooser stegkomponenten utökar Dynamic Participant Step och använder den här tjänsten som stegimplementering.
Dynamiskt deltagarsteg - Exempel på deltagarväljartjänst dynamic-participant-step-example-participant-chooser-service
Följande Java-klass implementerar ParticipantStepChooser
gränssnitt. Klassen returnerar namnet på deltagaren som initierade arbetsflödet. Koden använder samma logik som exempelskriptet ( initator-participant-chooser.ecma
).
The @Property
anteckningen anger värdet för SERVICE_PROPERTY_LABEL
fält till Workflow Initiator Participant Chooser
.
package com.adobe.example;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
import org.osgi.framework.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adobe.granite.workflow.WorkflowException;
import com.adobe.granite.workflow.WorkflowSession;
import com.adobe.granite.workflow.exec.ParticipantStepChooser;
import com.adobe.granite.workflow.exec.WorkItem;
import com.adobe.granite.workflow.metadata.MetaDataMap;
@Component
@Service
@Properties({
@Property(name = Constants.SERVICE_DESCRIPTION, value = "An example implementation of a dynamic participant chooser."),
@Property(name = ParticipantStepChooser.SERVICE_PROPERTY_LABEL, value = "Workflow Initiator Participant Chooser (service)") })
public class InitiatorParticipantChooser implements ParticipantStepChooser {
private Logger logger = LoggerFactory.getLogger(this.getClass());
public String getParticipant(WorkItem arg0, WorkflowSession arg1,
MetaDataMap arg2) throws WorkflowException {
String initiator = arg0.getWorkflow().getInitiator();
logger.info("Assigning Dynamic Participant Step work item to {}",initiator);
return initiator;
}
}
I Dynamic Participant Step egenskapsdialogrutan, Participant Chooser listan innehåller objektet Workflow Initiator Participant Chooser (script)
, som representerar den här tjänsten.
"När arbetsflödesmodellen startas visar loggen ID:t för den användare som initierade arbetsflödet och som tilldelats arbetsposten. I det här exemplet admin
användaren startade arbetsflödet.
13.09.2015 15:48:53.037 *INFO* [10.176.129.223 [1347565733037] POST /etc/workflow/instances HTTP/1.1] com.adobe.example.InitiatorParticipantChooser Assigning Dynamic Participant Step work item to admin
Steg för formulärdeltagare form-participant-step
The Form Participant Step visar ett formulär när arbetsuppgiften öppnas. När användaren fyller i och skickar formuläret lagras fältdata i noderna i arbetsflödets nyttolast.
Om du vill konfigurera steget anger du vilken grupp eller användare som arbetsposten ska tilldelas till och sökvägen till formuläret.
Steg för formulärdeltagare - Konfiguration form-participant-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Form
- Form Path: Sökvägen till formulär som du skapar.
Steg för formulärdeltagare - Skapa formuläret form-participant-step-creating-the-form
Skapa ett formulär som ska användas med en Form Participant Step som vanligt. Formulär för ett steg för formulärdeltagare måste dock ha följande konfigurationer:
-
The Start of Form måste ha Action Type egenskap inställd på
Edit Workflow Controlled Resource(s)
. -
The Start of Form måste ha ett värde för
Form Identifier
-egenskap. -
Formulärkomponenterna måste ha Elementnamn egenskapen är angiven till sökvägen för noden där fältdata lagras. Sökvägen måste hitta en nod i arbetsflödets nyttolastinnehåll. Värdet har följande format:
./jcr:content/path_to_node
-
Formuläret måste innehålla en Workflow Submit Button(s) -komponenten. Du konfigurerar inga egenskaper för komponenten.
Arbetsflödets krav avgör var fältdata ska lagras. Fältdata kan till exempel användas för att konfigurera egenskaper för sidinnehåll. Följande värde för en Element Name egenskapen lagrar fältdata som värdet för redirectTarget
egenskapen för jcr:content
nod:
./jcr:content/redirectTarget
I följande exempel används fältdata som innehåll i en Text på nyttolastsidan:
./jcr:content/par/text_3/text
"Det första exemplet kan användas för alla sidor som cq:Page
komponentåtergivning. Det andra exemplet kan bara användas när nyttolastsidan innehåller en Text -komponent som har ett ID för text_3
.
Formuläret kan finnas var som helst i databasen, men arbetsflödesanvändare måste ha behörighet att läsa formuläret.
Slumpmässig deltagarväljare random-participant-chooser
The Random Participant Chooser är en deltagarväljare som tilldelar den genererade arbetsposten till en användare som väljs slumpmässigt från en lista.
Slumpmässig deltagarväljare - konfiguration random-participant-chooser-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Arguments
- Participants: Anger listan med användare som är tillgängliga för markering. Om du vill lägga till en användare i listan klickar du på Add Item och skriv hemsökvägen för användarnoden eller användar-ID:t. Användarnas ordning påverkar inte sannolikheten att tilldelas en arbetsuppgift.
Väljare för deltagare i arbetsflödesinitieraren workflow-initiator-participant-chooser
The Workflow Initiator Participant Chooser är en deltagarväljare som tilldelar den genererade arbetsposten till användaren som startade arbetsflödet. Det finns inga andra egenskaper att konfigurera än Common egenskaper.
Väljare för deltagare i arbetsflödesinitiering - Konfiguration workflow-initiator-participant-chooser-configuration
Om du vill konfigurera steget redigerar du på följande flikar:
Processsteg process-step
A Process Step kör ett ECMAScript eller anropar en OSGi-tjänst för att utföra automatisk bearbetning.
Processsteg - Konfiguration process-step-configuration
Om du vill konfigurera steget redigerar du och använder följande flikar:
-
Process
-
Process: Processimplementeringen som ska köras. Använd listrutan för att välja ECMAScript- eller OSGi-tjänsten. Mer information om:
- Standardtjänsterna ECMAScripts och OSGi, se Inbyggda processer för processteg.
- Skapa ECMAScript för en Process steg, se Implementera ett processsteg med ett ECMAScript.
- Skapa OSGi-tjänster för en Process steg, se Implementera ett processsteg med en Java-klass.
-
Handler Advance: Välj det här alternativet om du vill att arbetsflödet automatiskt ska gå vidare till nästa steg efter körningen. Om du inte väljer det här alternativet måste implementeringsskriptet hantera arbetsflödets utveckling.
-
Arguments: Argument som ska skickas till processen.
-