Show Menu
ARGOMENTI×

Riferimento passo flusso di lavoro

I modelli di workflow sono composti di una serie di passaggi di vari tipi. In base al tipo, questi passaggi possono essere configurati ed estesi con parametri e script per fornire le funzionalità e il controllo richiesti.
Questa sezione descrive i passaggi standard del flusso di lavoro.
Per i passaggi specifici del modulo, vedi anche:

Proprietà passaggio

Ciascun componente passo dispone di una finestra di dialogo Proprietà ​passo che consente di definire e modificare le proprietà richieste.

Proprietà passaggio - Scheda comune

Nella scheda Comune della finestra di dialogo delle proprietà sono disponibili una combinazione delle seguenti proprietà per la maggior parte dei componenti dei passaggi del flusso di lavoro:
  • Titolo
    Titolo del passaggio.
  • Descrizione
    Una descrizione del passaggio.
  • Stadio flusso di lavoro
    Selettore a discesa per applicare uno stage al passaggio.
  • Timeout
    Il periodo dopo il quale il passaggio verrà "timeout".
    È possibile selezionare tra: Off , Immediato , 1h , 6h , 12h , 24h.
  • Gestore timeout
    Il gestore che controllerà il flusso di lavoro quando il passaggio viene eseguito; ad esempio:
    Auto Advancer
  • Avanzamento gestore
    Selezionate questa opzione per avanzare automaticamente il flusso di lavoro al passaggio successivo dopo l’esecuzione. Se non è selezionato, lo script di implementazione deve gestire l'avanzamento del flusso di lavoro.

Proprietà passaggio - scheda Utente/gruppo

Le seguenti proprietà sono disponibili per molti componenti dei passaggi del flusso di lavoro, nella scheda Utente/Gruppo della finestra di dialogo delle proprietà:
  • Notifica all'utente via e-mail
    • Potete inviare una notifica ai partecipanti inviando loro un messaggio e-mail quando il flusso di lavoro raggiunge il passo.
    • Se abilitata, verrà inviata un'e-mail all'utente definito dalla proprietà Utente/Gruppo oppure a ciascun membro del gruppo, se è definito un gruppo.
  • Utente/Gruppo
    • Una casella di selezione a discesa consente di navigare e selezionare un utente o un gruppo.
    • Se assegnate il passaggio a un utente specifico, solo questo utente può intervenire sul passaggio.
    • Se assegnate il passaggio a un intero gruppo, quando il flusso di lavoro raggiunge questo passaggio tutti gli utenti del gruppo avranno l’azione nella propria Casella in entrata ​Flusso di lavoro.
    • Per ulteriori informazioni, vedere Partecipazione ai flussi di lavoro .

Suddivisione E

La divisione AND (AND Split ) crea una divisione nel flusso di lavoro, dopo di che saranno attivi entrambi i rami. Potete aggiungere i passaggi del flusso di lavoro a ogni ramo, a seconda delle necessità. Questo passaggio consente di introdurre più percorsi di elaborazione nel flusso di lavoro. Ad esempio, è possibile consentire che alcuni passaggi di revisione si verifichino in parallelo, risparmiando tempo.

E Split - Configurazione

  • Modificate le proprietà AND Split :
    • Nome divisione: assegnare un nome a scopo esplicativo.
    • Selezionare il numero di rami richiesti; 2, 3, 4 o 5.
  • Aggiungi i passaggi del flusso di lavoro ai rami come necessario.

Passaggio contenitore

Un passaggio Contenitore avvia un altro modello di flusso di lavoro che viene eseguito come flusso di lavoro secondario.
Questo Contenitore] ​consente di riutilizzare i modelli di workflow per implementare le sequenze di passaggi più comuni. Ad esempio, un modello di flusso di lavoro di traduzione potrebbe essere utilizzato in più flussi di lavoro di modifica.

Passaggio contenitore - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:
  • Contenitore
    • Flusso di lavoro secondario: Selezionare il flusso di lavoro da avviare.

Passaggio GoTo

Il passaggio Goto consente di specificare il passaggio successivo nel modello di workflow da eseguire, a seconda del risultato di un ECMAScript:
  • true : Il passaggio Vai viene completato e il motore del flusso di lavoro esegue il passaggio specificato.
  • false : Il passo Vai viene completato e la logica di routing normale determina il passaggio successivo da eseguire.
Il passo ​Vai consente di implementare strutture di routing avanzate nei modelli di workflow. Ad esempio, per implementare un ciclo, è possibile definire Vai passo per eseguire un passaggio precedente nel flusso di lavoro, con lo script che valuta una condizione del ciclo.

Passaggio Vai - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:
  • Processo
    • Il passaggio a cui andare] : Selezionare il passaggio da eseguire.
    • Percorso script: Percorso di ECMAScript che determina se eseguire il passaggio Goto.
    • Script : ECMAScript che determina se eseguire il passaggio Goto.
Specificare il percorso ​dello script o lo script . Non è possibile utilizzare entrambe le opzioni contemporaneamente. Se si specificano valori per entrambe le proprietà, il passaggio utilizza il Percorso ​script.

Simulazione di un ciclo for

Per simulare un ciclo for è necessario mantenere un conteggio del numero di iterazioni del ciclo che si sono verificate:
  • In genere, il conteggio rappresenta un indice di elementi su cui viene eseguita l'azione nel flusso di lavoro.
  • Il conteggio viene valutato come criterio di uscita del ciclo.
Ad esempio, per implementare un flusso di lavoro che esegue un'azione su più nodi JCR, è possibile utilizzare un contatore di loop come indice per i nodi. Per mantenere il conteggio, memorizzare un integer valore nella mappa dati dell'istanza del flusso di lavoro. Utilizzare lo script del passaggio ​Vai per incrementare il conteggio e confrontare il conteggio con i criteri di uscita.
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;
   }
}

Suddivisione O

La divisione OR (OR Split ) crea una divisione nel flusso di lavoro, dopo di che sarà attivo solo un ramo. Questo passaggio consente di introdurre i percorsi di elaborazione condizionale nel flusso di lavoro. Potete aggiungere i passaggi del flusso di lavoro a ogni ramo, a seconda delle necessità.
Per ulteriori informazioni sulla creazione di una divisione OR, vedete: https://helpx.adobe.com/experience-manager/using/aem64_workflow_servlet.html

O suddivisione - Configurazione

  • Modificate le proprietà OR Split :
    • Comune
      • Selezionare il numero di rami richiesti; 2, 3, 4 o 5.
    • Succursale:*x*>
      • Percorso script: Percorso di un file contenente lo script.
      • Script : Aggiungere lo script nella casella.
      • Percorso predefinito: Il ramo predefinito viene seguito quando più rami corrispondono a true. Per impostazione predefinita è possibile specificare solo un ramo.
    Per ciascun ramo è disponibile una scheda separata:
    • Lo script di ciascun ramo viene valutato uno alla volta.
    • I rami vengono valutati da sinistra a destra.
    • Viene eseguito il primo script che restituisce true.
    • Se nessun ramo restituisce true, il flusso di lavoro non procede.
    Specificare il percorso ​dello script o lo script . Non è possibile utilizzare entrambe le opzioni contemporaneamente. Se si specificano valori per entrambe le proprietà, il passaggio utilizza il Percorso ​script.
  • Aggiungi i passaggi del flusso di lavoro ai rami come necessario.

Passaggi e scelte dei partecipanti

Passaggio partecipante

Un passo ​partecipante consente di assegnare la proprietà per una particolare azione. Il flusso di lavoro continuerà solo se l'utente ha riconosciuto manualmente il passaggio. Viene utilizzato quando si desidera che un utente esegua un’azione sul flusso di lavoro; ad esempio, un passaggio di revisione.
Anche se non direttamente correlata, l'autorizzazione utente deve essere presa in considerazione al momento dell'assegnazione di un'azione; l'utente deve avere accesso alla pagina che rappresenta il payload del flusso di lavoro.

Passaggio partecipante - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:
L’iniziatore del flusso di lavoro riceve sempre una notifica quando:
  • Il flusso di lavoro è completato (completato).
  • Il flusso di lavoro viene interrotto (terminato).
Per abilitare le notifiche e-mail è necessario configurare alcune proprietà. Potete inoltre personalizzare il modello e-mail o aggiungere un modello e-mail per una nuova lingua. See Configuring Email Notification to configure email notifications in AEM.

Passaggio partecipante finestra di dialogo

Utilizzare un Passaggio partecipante alla finestra di dialogo per raccogliere informazioni dall'utente a cui è assegnato l'elemento di lavoro. Questo passaggio è utile per raccogliere piccole quantità di dati da utilizzare successivamente nel flusso di lavoro.
Al termine del passaggio, la finestra di dialogo Completa elemento di lavoro contiene i campi definiti nella finestra di dialogo. I dati raccolti nei campi vengono memorizzati nei nodi del payload del flusso di lavoro. I passaggi successivi del flusso di lavoro possono quindi leggere il valore dalla directory archivio.
Per configurare il passaggio, specificate il gruppo o l’utente a cui assegnare l’elemento di lavoro e il percorso della finestra di dialogo.

Passaggio partecipante finestra di dialogo - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:

Passaggio partecipante finestra di dialogo - Creazione di una finestra di dialogo

Per creare una finestra di dialogo:

Passaggio partecipante finestra di dialogo - Memorizzazione dei dati nel payload

Potete memorizzare i dati widget nel payload del flusso di lavoro o nei metadati dell’elemento di lavoro. Il formato della name proprietà del nodo widget determina la posizione di memorizzazione dei dati.
  • Archiviare i dati con il payload
    • Per memorizzare i dati dei widget come proprietà del payload del flusso di lavoro, utilizzate il formato seguente per il valore della proprietà name del nodo del widget:
      ./jcr:content/nodename
    • I dati vengono memorizzati nella nodename proprietà del nodo payload. Se il nodo non contiene tale proprietà, la proprietà viene creata.
    • Se memorizzato con il payload, gli usi successivi della finestra di dialogo con lo stesso payload sovrascrivono il valore della proprietà.
  • Archiviare i dati con l&#39;elemento di lavoro
    • Per memorizzare i dati dei widget come proprietà dei metadati dell'elemento di lavoro, utilizzate il formato seguente per il valore della proprietà name:
      nodename
    • I dati vengono memorizzati nella nodename proprietà dell'elemento di lavoro metadata . I dati vengono conservati se la finestra di dialogo viene successivamente utilizzata con lo stesso payload.

Passaggio partecipante finestra di dialogo - Definizione finestra di dialogo

  1. Struttura finestra di dialogo
    Le finestre di dialogo per i passi partecipanti alla finestra di dialogo sono simili alle finestre di dialogo create per creare componenti. Sono memorizzati in:
    /apps/myapp/workflow/dialogs
    Le finestre di dialogo per l’interfaccia touch standard hanno la seguente struttura di nodi:
    newComponent (cq:Component)
      |- cq:dialog (nt:unstructured)
        |- content 
          |- layout 
            |- items 
              |- column 
                |- items 
                  |- component0
                  |- component1
                  |- ...
    
    
    Per ulteriori informazioni, vedere Creazione e configurazione di una finestra di dialogo .
  2. Proprietà del percorso di dialogo
    Il Passaggio partecipante alla finestra di dialogo ha la proprietà Percorso ​finestra di dialogo (insieme alle proprietà di un Passaggio Passaggio partecipante partecipante). Il valore della proprietà Dialog Path è il percorso del dialog nodo della finestra di dialogo.
    Ad esempio, la finestra di dialogo è contenuta in un componente denominato EmailWatch memorizzato nel nodo:
    /apps/myapp/workflows/dialogs
    Per l’interfaccia touch, per la proprietà Percorso finestra di dialogo viene utilizzato il valore seguente:
    /apps/myapp/workflow/dialogs/EmailWatch/cq:dialog
  3. Definizione finestra di esempio
    Il frammento di codice XML seguente rappresenta una finestra di dialogo che memorizza un String valore nel watchEmail nodo del contenuto del payload. Il nodo titolo rappresenta il componente TextField :
    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 questo esempio, nel caso dell’interfaccia touch, viene visualizzata una finestra di dialogo come:

Passaggio partecipante dinamico

Il componente Passaggio partecipante dinamico è simile al Passaggio ​partecipante con la differenza che il partecipante viene selezionato automaticamente in fase di esecuzione.
Per configurare il passaggio, selezionate un Selettore partecipanti che identifica il partecipante a cui assegnare l’elemento di lavoro, insieme a una finestra di dialogo.

Passaggio partecipante dinamico - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:
  • Selettore partecipanti
    • Selezione partecipanti: Nome del selettore partecipante creato .
    • Argomenti : Eventuali argomenti richiesti.
    • E-mail : Indica se inviare una notifica e-mail all’utente.
  • Finestra di dialogo

Passaggio partecipante dinamico - Sviluppo del selettore partecipante

Potete creare il selettore partecipanti. Pertanto, potete utilizzare qualsiasi logica o criterio di selezione. Ad esempio, il selettore partecipanti può selezionare l'utente (all'interno di un gruppo) con il minor numero di elementi di lavoro. Potete creare un numero qualsiasi di partecipanti che scelgono di utilizzare con istanze diverse del componente Passo **partecipante *dinamico]*nei modelli di flusso di lavoro.
Creare un servizio OSGi o un codice ECMAScript che selezioni un utente a cui assegnare l’elemento di lavoro.
  • ECMAscript
    Gli script devono includere una funzione denominata getParticipant che restituisce un ID utente come String valore. Memorizzare gli script personalizzati, ad esempio nella /apps/myapp/workflow/scripts cartella o in una sottocartella.
    Uno script di esempio è incluso in un’istanza standard di AEM:
    /libs/workflow/scripts/initiator-participant-chooser.ecma
    Non devi cambiare nulla nel /libs percorso.
    Questo perché il contenuto di /libs viene sovrascritto al successivo aggiornamento dell’istanza (e potrebbe essere sovrascritto quando applicate un hotfix o un pacchetto di funzioni).
    Questo script seleziona l'iniziatore del flusso di lavoro come partecipante:
    function getParticipant() {
        return workItem.getWorkflow().getInitiator();
    }
    
    
    Il componente Selezione partecipanti iniziatore flusso di lavoro estende il passo partecipante dinamico e utilizza questo script come implementazione passo.
  • servizio OSGi
    I servizi devono implementare l'interfaccia com.day.cq.workflow.exec.ParticipantStepChooser . L'interfaccia definisce i membri seguenti:
    • SERVICE_PROPERTY_LABEL field: Utilizzate questo campo per specificare il nome del selettore partecipanti. Il nome viene visualizzato in un elenco dei selettori partecipanti disponibili nelle proprietà Passaggio partecipante dinamico.
    • getParticipant metodo: Restituisce l'ID Principal risolto dinamicamente come String valore.
    Il getParticipant metodo restituisce l’ID Principal risolto dinamicamente. Può trattarsi di un ID gruppo o di un ID utente.
    Tuttavia, un ID gruppo può essere utilizzato solo per un Passaggio ​partecipante, quando viene restituito un elenco di partecipanti. Per un passo partecipante dinamico viene restituito un elenco vuoto che non può essere utilizzato per la delega.
    Per rendere disponibile l’implementazione ai componenti Passo partecipante dinamico, aggiungete la classe Java a un bundle OSGi che esporta il servizio e implementate il bundle nel server AEM.
    Selettore casuale partecipanti è un servizio di esempio che seleziona un utente casuale ( com.day.cq.workflow.impl.process.RandomParticipantChooser ). L’esempio di componente Selettore partecipanti casuale estende il passo partecipante dinamico e utilizza questo servizio come implementazione passo.

Passaggio partecipante dinamico - Esempio di servizio di selezione partecipanti

La seguente classe Java implementa l' ParticipantStepChooser interfaccia. La classe restituisce il nome del partecipante che ha avviato il flusso di lavoro. Il codice utilizza la stessa logica utilizzata dallo script di esempio ( initator-participant-chooser.ecma ).
L' @Property annotazione imposta il valore del SERVICE_PROPERTY_LABEL campo su 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;
 }
}

Nella finestra di dialogo Proprietà passo partecipante dinamico, il Selettore partecipanti include l'elemento Workflow Initiator Participant Chooser (script) , che rappresenta questo servizio.
"All'avvio del modello di workflow, il registro indica l'ID dell'utente che ha avviato il flusso di lavoro e a cui è stato assegnato l'elemento di lavoro. In questo esempio, l' admin utente ha avviato il flusso di lavoro.
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

Passaggio partecipante modulo

Il Passaggio partecipante modulo presenta un modulo quando l’elemento di lavoro viene aperto. Quando l'utente compila e invia il modulo, i dati del campo vengono memorizzati nei nodi del payload del flusso di lavoro.
Per configurare il passaggio, specificare il gruppo o l'utente a cui assegnare l'elemento di lavoro e il percorso del modulo.
Questa sezione descrive la sezione Moduli di Foundation Components for Page Authoring .

Passaggio partecipante modulo - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:

Passaggio partecipante modulo - Creazione del modulo

Creare un modulo da utilizzare normalmente con un passaggio partecipante modulo . Tuttavia, i moduli per un Passaggio partecipante modulo devono avere le seguenti configurazioni:
  • Il componente Inizio modulo deve avere la proprietà Tipo ​azione impostata su Edit Workflow Controlled Resource(s) .
  • Il componente Inizio modulo deve avere un valore per la Form Identifier proprietà.
  • Ai componenti modulo deve essere impostata la proprietà Nome ​elemento sul percorso del nodo in cui sono memorizzati i dati del campo. Il percorso deve individuare un nodo nel contenuto del payload del flusso di lavoro. Il valore utilizza il formato seguente:
    ./jcr:content/path_to_node
  • Il modulo deve includere un componente Pulsante Invia per flusso di lavoro. Non si configurano proprietà del componente.
I requisiti del flusso di lavoro determinano dove memorizzare i dati del campo. Ad esempio, i dati dei campi possono essere utilizzati per configurare le proprietà del contenuto della pagina. Il seguente valore di una proprietà Nome ​elemento memorizza i dati del campo come valore della redirectTarget proprietà del jcr:content nodo:
./jcr:content/redirectTarget
Nell'esempio seguente, i dati del campo vengono utilizzati come contenuto di un componente Testo nella pagina di payload:
./jcr:content/par/text_3/text
"Il primo esempio può essere utilizzato per qualsiasi pagina rappresentata dal cq:Page componente. Il secondo esempio può essere utilizzato solo quando la pagina di payload include un componente Testo con un ID di text_3 .
Il modulo può trovarsi ovunque nella directory archivio, tuttavia gli utenti del flusso di lavoro devono essere autorizzati a leggere il modulo.

Selettore casuale partecipanti

Il passaggio Selettore casuale partecipanti è un selettore partecipante che assegna l’elemento di lavoro generato a un utente selezionato in modo casuale da un elenco.

Selettore casuale partecipanti - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:
  • Argomenti
    • Partecipanti : Specifica l'elenco di utenti disponibili per la selezione. Per aggiungere un utente all’elenco, fate clic su Aggiungi elemento e digitate il percorso principale del nodo utente o l’ID utente. L'ordine degli utenti non influisce sulla probabilità che gli venga assegnato un elemento di lavoro.

Selettore partecipante iniziatore flusso di lavoro

Il passaggio di selezione partecipanti iniziatore flusso di lavoro è un selettore partecipante che assegna l’elemento di lavoro generato all’utente che ha avviato il flusso di lavoro. Nessuna proprietà da configurare oltre alle proprietà comuni .

Workflow Initiator Participant Chooser - Configuration

Per configurare il passaggio, effettuate le modifiche utilizzando le seguenti schede:

Passaggio processo

Un passo ​processo esegue un ECMAScript o chiama un servizio OSGi per eseguire l'elaborazione automatica.

Passaggio processo - Configurazione

Per configurare il passaggio, modificate e utilizzate le seguenti schede:
  • Processo
    • Processo : L'implementazione del processo da eseguire. Utilizzate il menu a discesa per selezionare il servizio ECMAScript o OSGi. Per informazioni su:
    • Avanzamento gestore:Selezionate questa opzione per avanzare automaticamente il flusso di lavoro al passaggio successivo dopo l’esecuzione. Se non è selezionato, lo script di implementazione deve gestire l'avanzamento del flusso di lavoro.
    • Argomenti : Argomenti da passare al processo.