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.
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 :
Avec la navigation, sélectionnez Outil, puis Workflows.
Sélectionnez Instances pour afficher la liste des instances de workflow en cours.
Avec la navigation, sélectionnez Outil, puis Workflows.
Sélectionnez Instances pour afficher la liste des instances de workflow en cours.
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 :
Avec la navigation, sélectionnez Outil, puis Workflows.
Sélectionnez Archiver pour afficher la liste des instances de workflow qui se sont terminées avec succès.
L’état d’abandon est considéré comme une interruption réussie, car il se produit suite à une action de l’utilisateur ; par exemple :
Sélectionnez un élément spécifique, puis Ouvrir l’historique pour afficher plus de détails :
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 :
Avec la navigation, sélectionnez Outil, puis Workflows.
Sélectionnez Échecs pour afficher la liste des instances de workflow qui ne se sont pas terminées avec succès.
Sélectionnez un élément spécifique, puis l’action appropriée :
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.
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 :
|
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 : 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. |
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.
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 |
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.
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.
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;
}