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. Sur le rail supérieur, dans le coin gauche, sélectionnez Filtres. Vous pouvez également utiliser les touches alt+1. La boîte de dialogue suivante s’affiche :
Dans la boîte de dialogue Filtre, sélectionnez les critères de recherche de workflow. Vous pouvez effectuer des recherches en fonction des entrées suivantes :
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.
Le statut d’abandon est considéré comme un arrêt réussi, 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, Étape, et 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.
Configurer Configuration de la purge du workflow Adobe Granite pour purger les instances de workflow en fonction de leur âge et de leur état. 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 pour réduire 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 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 workflow | 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 est le chemin d’accès au noeud 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 de 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 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 le stockage 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 sur 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;
}