Referentie workflowstap workflow-step-reference
De modellen van het werkschema bestaan uit een reeks stappen van diverse types. Volgens het type, kunnen deze stappen met parameters en manuscripten worden gevormd en worden uitgebreid om de functionaliteit te verstrekken en de controle u vereist.
Step Properties step-properties
Elke stapcomponent heeft een Step Properties een dialoogvenster waarin u de vereiste eigenschappen kunt definiëren en bewerken.
Step Properties - Common tab step-properties-common-tab
Voor de meeste workflowstapcomponenten is een combinatie van de volgende eigenschappen beschikbaar: Common tabblad van het dialoogvenster Eigenschappen:
-
Title
De titel voor de stap.
-
Description
Een beschrijving van de stap.
-
Workflow Stage
Een vervolgkeuzelijst voor het toepassen van een Werkgebied naar de stap.
-
Timeout
De periode waarna de stap wordt "uitgezet".
U kunt kiezen tussen: Off, Immediate, 1h, 6h, 12h, 24h.
-
Timeout Handler
De manager die het werkschema zal controleren wanneer de staptijden uit; bijvoorbeeld:
Auto Advancer
-
Handler Advance
Selecteer deze optie als u de workflow na de uitvoering automatisch wilt laten doorlopen naar de volgende stap. Als deze optie niet is geselecteerd, moet het implementatiescript de voortgang van de workflow afhandelen.
Step Properties - User/Group tab step-properties-user-group-tab
De volgende eigenschappen zijn beschikbaar voor veel workflowstapcomponenten op de User/Group tabblad van het dialoogvenster Eigenschappen:
-
Notify user via email
- U kunt deelnemers op de hoogte stellen door hen een e-mail te sturen wanneer de werkstroom de stap bereikt.
- Indien ingeschakeld, wordt een e-mail verzonden naar de gebruiker die door de eigenschap wordt gedefinieerd User/Group of aan elk lid van de groep indien een groep is gedefinieerd.
-
User/Group
- In een keuzelijst kunt u navigeren en een gebruiker of groep selecteren.
- Als u de stap toewijst aan een specifieke gebruiker, kan alleen deze gebruiker actie ondernemen voor de stap.
- Als u de stap toewijst aan een hele groep, hebben alle gebruikers in deze groep de actie in hun Workflow Inbox.
- Zie Deelnemen aan workflows voor meer informatie .
EN splitsen and-split
De AND Split maakt een splitsing in de workflow, waarna beide vertakkingen actief zijn. U voegt workflowstappen naar wens toe aan elke vertakking. Met deze stap kunt u meerdere verwerkingspaden in de workflow opnemen. U kunt bijvoorbeeld toestaan dat bepaalde stappen van de revisie parallel worden uitgevoerd, zodat u tijd bespaart.
EN splitsen - Configuratie and-split-configuration
-
Bewerk de AND Split eigenschappen:
- Split Name: een naam voor verklarende doeleinden toewijzen.
- Selecteer het aantal vereiste vertakkingen; 2, 3, 4 of 5.
-
Voeg zo nodig workflowstappen toe aan de vertakkingen.
Containerstap container-step
A Container stap start een ander workflowmodel dat wordt uitgevoerd als een onderliggende workflow.
Dit Container Hiermee kunt u workflowmodellen opnieuw gebruiken om algemene stappen te implementeren. Een workflowmodel voor vertaling kan bijvoorbeeld worden gebruikt in meerdere bewerkingsworkflows.
Containerstap - Configuratie container-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Container
- Sub Workflow: Selecteer de workflow die u wilt starten.
Ga naar stap goto-step
De Goto Step Hiermee kunt u de volgende stap in het workflowmodel opgeven die moet worden uitgevoerd, afhankelijk van het resultaat van een ECMAScript:
-
true
: De Goto Step wordt voltooid en de workflow-engine voert de opgegeven stap uit. -
false
: De Goto Step voltooit en de normale verpletterende logica bepaalt de volgende stap uit te voeren.
De Goto Step laat u toe om geavanceerde verpletterende structuren in uw werkschemamodellen uit te voeren. Als u bijvoorbeeld een lus wilt implementeren, Goto Step kan worden bepaald om een vroegere stap in het werkschema uit te voeren, met het manuscript evaluerend een lusvoorwaarde.
Ga naar stap - Configuratie goto-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Process
- The step to go to: Selecteer de uit te voeren stap.
- Script Path: Het pad naar het ECMAScript dat bepaalt of het Goto Step.
- Script: Het ECMAScript dat bepaalt of om uit te voeren Goto Step.
Een lus voor lus simuleren simulating-a-for-loop
Wanneer u een lus for simuleert, moet u een telling bijhouden van het aantal herhalingen van lus dat is opgetreden:
- De telling vertegenwoordigt typisch een index van punten die op in het werkschema worden gehandeld.
- De telling wordt geëvalueerd als uitgangscriteria van de lijn.
Als u bijvoorbeeld een workflow wilt implementeren die een handeling uitvoert op verschillende JCR-knooppunten, kunt u een lusteller gebruiken als index voor de knooppunten. Als u het aantal wilt behouden, slaat u een integer
waarde in de gegevenskaart van de werkschemainstantie. Het script van het Goto Step de telling verhogen en de telling vergelijken met de uitstapcriteria.
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;
}
}
OF Splitsen or-split
De OR Split maakt een splitsing in de workflow, waarna slechts één vertakking actief is. Met deze stap kunt u voorwaardelijke verwerkingspaden in uw workflow introduceren. U voegt workflowstappen naar wens toe aan elke vertakking.
OF Splitsen - Configuratie or-split-configuration
-
Bewerk de OR Split eigenschappen:
-
Common
- Selecteer het aantal vereiste vertakkingen; 2, 3, 4 of 5.
-
**Branch : x >
- Script Path: Het pad naar een bestand dat het script bevat.
- Script: Voeg het script toe in het vak.
- Default Route: De standaardvertakking wordt gevolgd wanneer meerdere vertakkingen true opleveren. U kunt slechts één vertakking als standaard opgeven.
note note NOTE Er is een apart tabblad voor elke vertakking: - Het script van elke vertakking wordt één voor één geëvalueerd.
- De vertakkingen worden van links naar rechts geëvalueerd.
- Het eerste script dat true oplevert, wordt uitgevoerd.
- Als geen tak aan waar evalueert, dan gaat het werkschema niet vooruit.
note caution CAUTION Geef een van de Script Path of Script. Beide opties kunnen niet tegelijkertijd worden gebruikt. Als u waarden voor beide eigenschappen opgeeft, wordt in de stap de optie Script Path. note note NOTE Zie Een regel definiëren voor een OR-splitsing. -
-
Voeg zo nodig workflowstappen toe aan de vertakkingen.
Stappen en keuzen van deelnemers participant-steps-and-choosers
Stap deelnemer participant-step
A Participant Step kunt u de eigendom van een bepaalde handeling toewijzen. De workflow wordt alleen uitgevoerd wanneer de gebruiker de stap handmatig heeft bevestigd. Dit wordt gebruikt wanneer u iemand een actie op het werkschema wilt nemen; bijvoorbeeld een revisiestap.
Hoewel dit niet rechtstreeks verband houdt, moet bij de toewijzing van een actie rekening worden gehouden met de autorisatie van de gebruiker; de gebruiker moet toegang hebben tot de pagina die de nuttige werkstroom is.
Stap van de deelnemer - Configuratie participant-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
- De workflow is voltooid (voltooid).
- De workflow is afgebroken (beëindigd).
Stap deelnemer van dialoogvenster dialog-participant-step
Een Dialog Participant Step om informatie te verzamelen van de gebruiker aan wie het werkitem is toegewezen. Deze stap is nuttig om kleine hoeveelheden gegevens te verzamelen die later in het werkschema worden gebruikt.
Als u de stap hebt voltooid, Complete Work Item bevat de velden die u in het dialoogvenster definieert. De gegevens die in de velden worden verzameld, worden opgeslagen in knooppunten van de werkstroomlading. De volgende workflowstappen kunnen vervolgens de waarde van de repository lezen.
Om de stap te vormen, specificeert u de groep of de gebruiker om het het werkpunt aan toe te wijzen, en de weg aan de dialoog.
Stap van de Deelnemer van de dialoog - Configuratie dialog-participant-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Dialog
- Dialog Path: Het pad naar het dialoogvenster van het dialoogvenster dialoogvenster dat u maakt.
Stap deelnemer van dialoogvenster - Een dialoogvenster maken dialog-participant-step-creating-a-dialog
Een dialoogvenster maken:
- Bepalen waar de resulterende gegevens worden opgeslagen in de lading.
- De dialoog definiëren; dit omvat het definiëren van de velden die worden gebruikt om de gegevens te verzamelen (en op te slaan).
Stap van de Deelnemer van de dialoog - het Opslaan van Gegevens in de Lading dialog-participant-step-storing-data-in-the-payload
U kunt widgetgegevens opslaan in de werkstroomlading of in de meta-gegevens van het werkpunt. Het formaat van de name
De eigenschap van het widgetknooppunt bepaalt waar de gegevens worden opgeslagen.
-
Store Data with the Payload
-
Als u widgetgegevens wilt opslaan als een eigenschap van de payload van de workflow, gebruikt u de volgende indeling voor de waarde van de eigenschap name van het widgetknooppunt:
./jcr:content/nodename
-
De gegevens worden opgeslagen in de
nodename
eigenschap van het payload-knooppunt. Als het knooppunt die eigenschap niet bevat, wordt de eigenschap gemaakt. -
Wanneer opgeslagen met de lading, het verdere gebruik van de dialoog met de zelfde lading overschrijft de waarde van het bezit.
-
-
Store Data with the Work Item
-
Als u widgetgegevens wilt opslaan als een eigenschap van de metagegevens van het werkitem, gebruikt u de volgende indeling voor de waarde van de eigenschap name:
nodename
-
De gegevens worden opgeslagen in de
nodename
eigenschap van het werkitemmetadata
. De gegevens blijven behouden als het dialoogvenster vervolgens wordt gebruikt met dezelfde payload.
-
Stap deelnemer van dialoogvenster - Dialoogdefinitie dialog-participant-step-dialog-definition
-
Dialog Structure
De dialoogvensters voor de Stappen van de Deelnemer van de Dialoog zijn gelijkaardig aan dialogen die u voor auteurscomponenten creeert. Zij worden opgeslagen onder:
/apps/myapp/workflow/dialogs
Dialoogvensters voor de standaardinterface met aanraakbediening hebben de volgende knooppuntstructuur:
code language-xml newComponent (cq:Component) |- cq:dialog (nt:unstructured) |- content |- layout |- items |- column |- items |- component0 |- component1 |- ...
note note NOTE Zie voor meer informatie Een dialoogvenster maken en configureren. -
Dialog Path Property
De Dialog Participant Step de Dialog Path eigenschap (samen met de eigenschappen van een Stap deelnemer). De waarde van de Dialog Path eigenschap is het pad naar de
dialog
van uw dialoogvenster.Het dialoogvenster bevindt zich bijvoorbeeld in een component met de naam
EmailWatch
dat in de knoop wordt opgeslagen:/apps/myapp/workflows/dialogs
Voor de interface met aanraakbediening wordt de volgende waarde gebruikt voor de Dialog Path eigenschap:
/apps/myapp/workflow/dialogs/EmailWatch/cq:dialog
-
Voorbeeld Dialoogdefinitie
Het volgende XML-codefragment vertegenwoordigt een dialoogvenster waarin een
String
in dewatchEmail
knooppunt van de ladingsinhoud. Het titelknooppunt vertegenwoordigt de TextField component: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>
In het geval van de interface met aanraakbediening resulteert dit voorbeeld in een dialoogvenster zoals:
Stap dynamische deelnemer dynamic-participant-step
De Dynamic Participant Step component is vergelijkbaar met Participant Step met het verschil dat de deelnemer automatisch bij runtime wordt geselecteerd.
Om de stap te vormen, selecteert u Participant Chooser die de deelnemer aangeeft waaraan het werkitem moet worden toegewezen, samen met een dialoogvenster.
Dynamische deelnemersstap - Configuratie dynamic-participant-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Participant Chooser
- Participant Chooser: De naam van de deelnemerenkiezer die u maakt.
- Arguments: Alle vereiste argumenten.
- Email: Of een e-mailbericht naar de gebruiker moet worden verzonden.
-
Dialog
- Dialog Path: Het pad naar het dialoogvenster van het dialoogvenster dialoogvenster dat u maakt (net als met het dialoogvenster Stap deelnemer van dialoogvenster).
De dynamische Stap van de Deelnemer - ontwikkelt de deelnemerverkiezer dynamic-participant-step-developing-the-participant-chooser
U maakt de deelnemerkiezer. Daarom kunt u om het even welke selectielogica of criteria gebruiken. Uw deelnemerkiezer kan bijvoorbeeld de gebruiker (binnen een groep) selecteren die de minste werkitems heeft. U kunt een willekeurig aantal keuzemogelijkheden voor deelnemers maken voor gebruik met verschillende exemplaren van de Stap dynamische deelnemer in uw workflowmodellen.
Creeer de dienst OSGi of een ECMAScript die een gebruiker selecteert om het het werkpunt aan toe te wijzen.
-
ECMAscript
Scripts moeten een functie met de naam getParticipant bevatten die een gebruikers-id als een
String
waarde. Sla uw aangepaste scripts op in bijvoorbeeld de/apps/myapp/workflow/scripts
of een submap.Een voorbeeldscript is opgenomen in een standaard AEM-instantie:
/libs/workflow/scripts/initiator-participant-chooser.ecma
note caution CAUTION U moet niets wijzigen in de /libs
pad.Dit komt omdat de inhoud van /libs
wordt de volgende keer overschreven dat u een upgrade uitvoert van uw exemplaar (en kan worden overschreven wanneer u een hotfix- of functiepakket toepast).Met dit script wordt de aanvrager van de workflow geselecteerd als de deelnemer:
code language-none function getParticipant() { return workItem.getWorkflow().getInitiator(); }
note note NOTE De Workflow Initiator Participant Chooser component breidt de Dynamic Participant Step en gebruikt dit script als de stapimplementatie. -
OSGi service
De diensten moeten uitvoeren com.day.cq.workflow.exec.ParticipantStepChooser interface. De interface definieert de volgende leden:
SERVICE_PROPERTY_LABEL
veld: Gebruik dit veld om de naam van de deelnemerkiezer op te geven. De naam wordt weergegeven in een lijst met beschikbare deelnemerskiezers in het dialoogvenster Dynamic Participant Step eigenschappen.getParticipant
methode: Hiermee wordt de dynamisch opgeloste Principal-id geretourneerd als eenString
waarde.
note caution CAUTION De getParticipant
De methode keert dynamisch gevormde Belangrijkste identiteitskaart terug. Dit kan een groep-id of een gebruikers-id zijn.Een groep-id kan echter alleen worden gebruikt voor een Participant Step, wanneer een lijst met deelnemers wordt geretourneerd. Voor een Dynamic Participant Step er wordt een lege lijst geretourneerd en deze kan niet worden gebruikt voor delegatie. Om uw implementatie beschikbaar te maken aan Dynamic Participant Step componenten, voeg uw klasse van Java aan een bundel OSGi toe die de dienst uitvoert, en stel de bundel aan de AEM server op.
note note NOTE Random Participant Chooser is een voorbeeldservice waarmee een willekeurige gebruiker wordt geselecteerd ( com.day.cq.workflow.impl.process.RandomParticipantChooser
). De Random Participant Chooser voorbeeldformulier voor de step-component breidt het Dynamic Participant Step en gebruikt deze service als de stapimplementatie.
Stap voor dynamische deelnemer - Voorbeeld van Kiezerservice voor deelnemers dynamic-participant-step-example-participant-chooser-service
De volgende Java-klasse implementeert de ParticipantStepChooser
interface. De klasse retourneert de naam van de deelnemer die de workflow heeft gestart. De code gebruikt de zelfde logica die het steekproefmanuscript ( initator-participant-chooser.ecma
) gebruikt.
De @Property
annotatie stelt de waarde van de SERVICE_PROPERTY_LABEL
veld naar 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;
}
}
In de Dynamic Participant Step eigenschappen, dialoogvenster Participant Chooser list include the item Workflow Initiator Participant Chooser (script)
, die deze dienst vertegenwoordigt.
"Wanneer het werkschemamodel is begonnen, wijst het logboek op identiteitskaart van de gebruiker die het werkschema in werking stelde en wie het het werkpunt wordt toegewezen. In dit voorbeeld wordt admin
de gebruiker heeft de workflow gestart.
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
Stap voor deelnemer aan formulier form-participant-step
De Form Participant Step presenteert een formulier wanneer het werkitem wordt geopend. Wanneer de gebruiker het formulier invult en verzendt, worden de veldgegevens opgeslagen in de knooppunten van het taakvenster van de werkstroom.
Als u de stap wilt configureren, geeft u de groep of gebruiker op waaraan het werkitem moet worden toegewezen en het pad naar het formulier.
Stap van de deelnemer van de vorm - Configuratie form-participant-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Form
- Form Path: Het pad naar de formulier dat u maakt.
Stap deelnemer aan formulier - Het formulier maken form-participant-step-creating-the-form
Een formulier maken voor gebruik met een Form Participant Step zoals normaal. Formulieren voor een stap Formulierdeelnemer moeten echter de volgende configuraties hebben:
-
De Start of Form de component moet Action Type eigenschap ingesteld op
Edit Workflow Controlled Resource(s)
. -
De Start of Form component moet een waarde voor de component hebben
Form Identifier
eigenschap. -
De formuliercomponenten moeten beschikken over de Elementnaam eigenschap ingesteld op het pad van het knooppunt waar de veldgegevens zijn opgeslagen. Het pad moet een knooppunt in de ladingsinhoud van de workflow vinden. De waarde gebruikt de volgende indeling:
./jcr:content/path_to_node
-
Het formulier moet een Workflow Submit Button(s) component. U vormt geen eigenschappen van de component.
De vereisten van uw workflow bepalen waar u veldgegevens moet opslaan. U kunt bijvoorbeeld veldgegevens gebruiken om de eigenschappen van pagina-inhoud te configureren. De volgende waarde van een Element Name eigenschap slaat veldgegevens op als de waarde van redirectTarget
eigendom van de jcr:content
knooppunt:
./jcr:content/redirectTarget
In het volgende voorbeeld worden de veldgegevens gebruikt als de inhoud van een Text component op de ladingspagina:
./jcr:content/par/text_3/text
"Het eerste voorbeeld kan worden gebruikt voor elke pagina die cq:Page
wordt weergegeven. Het tweede voorbeeld kan alleen worden gebruikt wanneer de ladingspagina een Tekst component met een id van text_3
.
Het formulier kan overal in de gegevensopslagruimte worden gevonden, maar workflowgebruikers moeten worden gemachtigd om het formulier te lezen.
Kiezer voor willekeurige deelnemers random-participant-chooser
De Random Participant Chooser De stap is een deelnemer verkiesster die het geproduceerde het werkpunt aan een gebruiker toewijst die willekeurig uit een lijst wordt geselecteerd.
Kiezer voor willekeurige deelnemers - Configuratie random-participant-chooser-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Arguments
- Participants: Hier geeft u de lijst op met gebruikers die kunnen worden geselecteerd. Als u een gebruiker aan de lijst wilt toevoegen, klikt u op Add Item en typ het homepad van het gebruikersknooppunt of de gebruikers-id. De volgorde van de gebruikers heeft geen invloed op de waarschijnlijkheid dat een werkitem wordt toegewezen.
Deelnemerkiezer voor workflow-initiator workflow-initiator-participant-chooser
De Workflow Initiator Participant Chooser De stap is een deelnemer verkiest die het geproduceerde het werkpunt aan de gebruiker toewijst die de werkschema begon. Er zijn geen andere eigenschappen om te configureren dan de Common eigenschappen.
Deelnemerkiezer voor workflow-initiator - Configuratie workflow-initiator-participant-chooser-configuration
Om de stap te vormen, geef het gebruiken van de volgende lusjes uit:
Processtap process-step
A Process Step stelt een ECMAScript in werking of roept de dienst OSGi om automatische verwerking uit te voeren.
Processtap - Configuratie process-step-configuration
Om de stap te vormen, geef en gebruik de volgende lusjes uit:
-
Process
-
Process: De uit te voeren procesimplementatie. Gebruik het drop-down menu om de dienst te selecteren ECMAScript of OSGi. Voor informatie over:
- De standaard ECMAScripts en OSGi diensten, zie Ingebouwde processen voor processtappen.
- ECMAScripts maken voor een Process stap, zie Een processtap implementeren met een ECMAScript.
- OSGi-services maken voor een Process stap, zie Een processtap implementeren met een Java-klasse.
-
Handler Advance: Selecteer deze optie als u de workflow na de uitvoering automatisch wilt laten doorlopen naar de volgende stap. Als deze optie niet is geselecteerd, moet het implementatiescript de voortgang van de workflow afhandelen.
-
Arguments: Argumenten die aan het proces moeten worden doorgegeven.
-