Administration d’instances de workflow

La console de workflows fournit plusieurs outils permettant d’administrer les instances de workflow pour vérifier qu’elles s’exécutent comme prévu.

REMARQUE

La console JMX permet d’effectuer d’autres opérations de maintenance des workflows.

Différentes consoles sont à votre disposition pour administrer les workflows. Utilisez la navigation globale pour ouvrir le panneau Outils, puis sélectionnez Workflows :

  • Modèles: Gestion des définitions de workflow
  • Instances : affichez et gérez l’exécution des instances de workflow.
  • Lanceurs: Gérer le lancement des workflows
  • Archiver: Afficher l’historique des workflows qui se sont terminés avec succès
  • Échecs: Afficher l’historique des workflows qui se sont terminés avec des erreurs
  • Attribution automatique : configurez l’attribution automatique des workflows aux modèles

Suivi du statut des instances de workflow

  1. Avec la navigation, sélectionnez Outil, puis Workflows.

  2. Sélectionnez Instances pour afficher la liste des instances de workflow en cours.

    wf-96

Suspension, reprise ou arrêt d’une instance de workflows

  1. Avec la navigation, sélectionnez Outil, puis Workflows.

  2. Sélectionnez Instances pour afficher la liste des instances de workflow en cours.

    wf-96-1

  3. Sélectionnez un élément spécifique, puis utilisez Arrêter, Suspendre ou Reprendre, selon le cas. Une confirmation et/ou d’autres détails sont requis :

    wf-97-1

Affichage des workflows archivés

  1. Avec la navigation, sélectionnez Outil, puis Workflows.

  2. Sélectionnez Archiver pour afficher la liste des instances de workflow qui se sont terminées avec succès.

    wf-98

    REMARQUE

    L’état d’abandon est considéré comme une interruption réussie, car il se produit suite à une action de l’utilisateur ; par exemple :

    • l’utilisation de la fonction Arrêter action
    • Lorsqu’une page, qui est soumise à un workflow, est supprimée (de force), le workflow est arrêté.
  3. Sélectionnez un élément spécifique, puis Ouvrir l’historique pour afficher plus de détails :

    wf-99

Correction des échecs d’instance de workflows

Lorsqu’un workflow échoue, AEM fournit la console Échecs pour vous permettre d’enquêter et de prendre la mesure appropriée une fois la cause d’origine traitée :

  • Détails de l’échec
    Ouvre une fenêtre pour afficher le
    Message d’échec, l’Étape et la Pile des échecs.

  • Ouvrir l’historique
    Affiche des détails sur l’historique des workflows.

  • Relancer l’étape Exécute à nouveau l’instance du composant d’étape de test. Utilisez la commande Relancer l’étape après avoir corrigé la cause de l’erreur initiale. Par exemple, relancez l’étape après avoir corrigé un bogue dans le script que l’étape de processus exécute.

  • Arrêter Arrêtez le workflow si l’erreur a provoqué une situation irrémédiable pour le workflow. Par exemple, le workflow peut se baser sur des conditions environnementales comme des informations figurant dans le référentiel qui ne sont plus valides pour l’instance de workflow.

  • Arrêter et réessayer Similaire à Arrêter, à ceci près qu’une nouvelle instance de workflow est lancée à l’aide de la charge utile, du titre et de la description d’origine.

Pour examiner les échecs, puis reprendre ou arrêter le workflow par la suite, utilisez les étapes suivantes :

  1. Avec la navigation, sélectionnez Outil, puis Workflows.

  2. Sélectionnez Échecs pour afficher la liste des instances de workflow qui ne se sont pas terminées avec succès.

  3. Sélectionnez un élément spécifique, puis l’action appropriée :

    wf-47

Purge régulière des instances de workflow

Réduire le nombre d’instances de workflow améliore les performances du moteur de workflows. Vous pouvez donc purger régulièrement les instances de workflow terminées ou en cours d’exécution du référentiel.

Configurez la configuration de la purge du workflow Adobe Granite pour purger les instances de workflows en fonction de leur âge et de leur statut. Vous pouvez également purger les instances de workflow de tous les modèles ou d’un modèle spécifique.

Vous pouvez également créer plusieurs configurations du service pour purger les instances de workflow qui répondent à différents critères. Par exemple, créez une configuration qui purge les instances d’un modèle de workflow particulier lorsqu’elles s’exécutent beaucoup plus longtemps que prévu. Créez une autre configuration qui purge tous les workflows terminés après un certain nombre de jours afin de minimiser la taille du référentiel.

Pour configurer le service, vous pouvez utiliser la console Web ou ajouter une configuration OSGi au référentiel. Le tableau suivant décrit les propriétés dont vous avez besoin pour l’une ou l’autre de ces méthodes.

REMARQUE

Pour ajouter la configuration au référentiel, le PID de service est :

com.adobe.granite.workflow.purge.Scheduler

Le service étant un service d’usine, le nom du nœud sling:OsgiConfig nécessite un suffixe d’identifiant, tel que :

com.adobe.granite.workflow.purge.Scheduler-myidentifier

Nom de la propriété (console web) Nom de propriété OSGi Description
Nom de la tâche scheduledpurge.name Nom explicite de la purge planifiée.
État du processus scheduledpurge.workflowStatus

Statut des instances de workflow à purger. Les valeurs suivantes sont valides :

  • TERMINÉ : les instances de workflow terminées sont purgées.
  • EN COURS : les instances de workflow en cours d’exécution sont purgées.
Modèles à purger scheduledpurge.modelIds

ID des modèles de workflows à purger. L’ID correspond au chemin d’accès au nœud de modèle, par exemple :
/var/workflow/models/dam/update_asset
.

Pour spécifier plusieurs modèles, cliquez sur le bouton + dans la console web.

Ne spécifiez aucune valeur pour purger les instances de tous les modèles de workflow.

Âge du workflow scheduledpurge.daysold L’âge des instances de workflow à purger, exprimé en jours.

Définition de la taille maximale de la boîte de réception

Vous pouvez définir la taille maximale de la boîte de réception en configurant le service de workflow Adobe Granite à l’aide de la console web ou ajouter une configuration OSGi au référentiel. Le tableau suivant décrit la propriété que vous configurez pour l’une ou l’autre de ces méthodes.

REMARQUE

Pour ajouter la configuration au référentiel, le PID de service est :

com.adobe.granite.workflow.core.WorkflowSessionFactory.

Nom de la propriété (console web) Nom de propriété OSGi
Taille de requête de boîte de réception maximale granite.workflow.inboxQuerySize

Utilisation de variables de workflow pour les banques de données détenues par le client

Les données traitées par les workflows sont stockées dans l’enregistrement fourni par Adobe (JCR). Par nature, ces données peuvent être sensibles. Vous pouvez enregistrer toutes les métadonnées et les données définies par l’utilisateur dans votre propre enregistrement géré au lieu de celui fourni par Adobe. Ces sections décrivent comment configurer ces variables pour un enregistrement externe.

Définition du modèle pour utiliser l’enregistrement externe des métadonnées

Au niveau du modèle de workflow, un indicateur est fourni pour indiquer que le modèle (et ses instances d’exécution) dispose d’un enregistrement externe des métadonnées. Les variables de workflow ne seront pas conservées dans le JCR pour les instances de workflow des modèles marqués pour l’enregistrement externe.

La propriété userMetadataPersistenceEnabled sera stocké dans le nœud jcr:content node du modèle de workflow. Cet indicateur sera conservé dans les métadonnées de workflow sous le nom cq:userMetaDataCustomPersistenceEnabled.

L’illustration ci-dessous montre comment définir l’indicateur dans un workflow.

workflow-externalize-config

API pour les métadonnées dans un enregistrement externe

Pour stocker les variables en externe, vous devez implémenter les API exposées par le workflow.

UserMetaDataPersistenceContext

Les exemples suivants vous montrent comment utiliser l’API.

@ProviderType
public interface UserMetaDataPersistenceContext {

    /**
     * Gets the workflow for persistence
     * @return workflow
     */
    Workflow getWorkflow();

    /**
     * Gets the workflow id for persistence
     * @return workflowId
     */
    String getWorkflowId();

    /**
     * Gets the user metadata persistence id
     * @return userDataId
     */
    String getUserDataId();
}

UserMetaDataPersistenceProvider

/**
 * This provider can be implemented to store the user defined workflow-data metadata in a custom storage location
 */
@ConsumerType
public interface UserMetaDataPersistenceProvider {

   /**
    * Retrieves the metadata using a unique identifier
    * @param userMetaDataPersistenceContext
    * @param metaDataMap of user defined workflow data metaData
    * @throws WorkflowException
    */
   void get(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;

   /**
    * Stores the given metadata to the custom storage location
    * @param userMetaDataPersistenceContext
    * @param metaDataMap metadata map
    * @return the unique identifier that can be used to retrieve metadata. If null is returned, then workflowId is used.
    * @throws WorkflowException
    */
   String put(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;
}

Sur cette page