Referens för arbetsflödessteg workflow-step-reference

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

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.

NOTE
I det här avsnittet beskrivs de vanliga arbetsflödesstegen.
För modulspecifika steg, se även:

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.

wf-26

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.

    wf-27

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.

wf-28

Behållarsteg - konfiguration container-step-configuration

Om du vill konfigurera steget redigerar du och använder följande flikar:

  • Common

  • 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:

  • Common

  • 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.
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.

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.

NOTE
Mer information om hur du skapar en OR-delning finns i: https://helpx.adobe.com/experience-manager/using/aem64_workflow_servlet.html

wf-29

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:

NOTE
Arbetsflödesinitieraren meddelas alltid när:
  • Arbetsflödet är slutfört (färdigt).
  • Arbetsflödet avbryts (avslutas).
NOTE
Vissa egenskaper måste konfigureras för att e-postmeddelanden ska kunna aktiveras. Du kan också anpassa e-postmallen eller lägga till en e-postmall för ett nytt språk. Se Konfigurerar e-postmeddelande för att konfigurera e-postmeddelanden i AEM.

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:

Steg för dialogdeltagare - Skapa en dialogruta dialog-participant-step-creating-a-dialog

Så här skapar du en dialogruta:

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 egenskap metadata. Data bevaras om dialogrutan sedan används med samma nyttolast.

Steg för dialogdeltagare - Dialogrutedefinition dialog-participant-step-dialog-definition

  1. 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.
  2. 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

    wf-30

  3. Exempeldialogrutedefinition

    Följande XML-kodfragment representerar en dialogruta som lagrar en String värdet i watchEmail 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:

    chlimage_1-177

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:

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 en String 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.

CAUTION
Det här avsnittet handlar om Forms-delen av Foundation Components för sidredigering.

Steg för formulärdeltagare - Konfiguration form-participant-step-configuration

Om du vill konfigurera steget redigerar du och använder följande flikar:

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.

wf-31

Slumpmässig deltagarväljare - konfiguration random-participant-chooser-configuration

Om du vill konfigurera steget redigerar du och använder följande flikar:

  • Common

  • 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.

wf-32

Processsteg - Konfiguration process-step-configuration

Om du vill konfigurera steget redigerar du och använder följande flikar:

  • Common

  • Process

    • Process: Processimplementeringen som ska köras. Använd listrutan för att välja ECMAScript- eller OSGi-tjänsten. Mer information om:

    • 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.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e