Par défaut, seuls les flux de travaux d'approbation sont instrumentés pour générer des enregistrements d'audit. Cette section décrit l'utilisation de l'application com.waveset.session.WorkflowServices pour générer des événements de contrôle supplémentaires à partir de tout processus de flux de travaux.
Des événements de contrôle supplémentaires peuvent être nécessaires si vous devez effectuer des rapports sur des flux de travaux personnalisés. Pour toute information sur l'ajout d'événements de contrôle aux flux de travaux, voir Modification des flux de travaux pour consigner les événements de contrôle standard.
Des événements de contrôle spéciaux peuvent aussi être ajoutés aux flux de travaux en appui des rapports de flux de travaux (Rapports de flux de travaux). Les rapports de flux de travaux rapportent le temps employé par les flux de travaux pour se compléter. Des événements de contrôle spéciaux sont requis pour stocker les données nécessaires au calcul de cette durée. Pour toute information sur l'ajout d'événements de contrôle de synchronisation aux flux de travaux, voir Modification des flux de travaux pour consigner les événements de synchronisation standard.
L'application com.waveset.session.WorkflowServices génère des événements de contrôle à partir de tout processus de flux de travaux. Le Tableau 10–1 détaille les arguments disponibles pour cette application.
Tableau 10–1 Arguments de com.waveset.session.WorkflowServices
Argument |
Type |
Description |
---|---|---|
op |
Chaîne |
Opération pour WorkflowServices. Doit être défini sur audit ou auditWorkflow. Utilisez audit pour le contrôle de flux de travaux standard. Utilisez auditWorkflow pour stocker les événements de contrôle de synchronisation requis pour les calculs de durée. Obligatoire. |
type |
Chaîne |
Nom du type d'objets en cours d'audit. Les types d'objets auditables sont listés dans le Tableau B–5. Obligatoire pour consigner les événements de contrôle standard. |
action |
Chaîne |
Nom de l'action effectuée. Les actions auditables sont listées dans le Tableau B–6. Obligatoire. |
status |
Chaîne |
Nom du statut pour l'action spécifiée. Le statut est listé dans le Tableau B–7 (dans la colonne Résultats). Obligatoire pour consigner les événements de contrôle standard. |
name |
Chaîne |
Nom de l'objet concerné par l'action spécifiée. Obligatoire pour consigner les événements de contrôle standard. |
resource |
Chaîne |
(facultatif) Nom de la ressource où réside l'objet qui est changé. |
accountId |
Chaîne |
(facultatif) ID de compte modifié. Doit être un nom de compte de ressource natif. |
error |
Chaîne |
(facultatif) Chaîne d'erreur localisée accompagnant toute défaillance. |
reason |
Chaîne |
(facultatif) Nom de l'objet ReasonDenied, qui mappe vers un message internationalisé décrivant les causes des défaillances courantes. |
attributes |
Mappe |
(facultatif) Mappe des noms et valeurs d'attribut qui ont été ajoutés ou modifiés. |
parameters |
Mappe |
(facultatif) Mappe jusqu'à cinq noms ou valeurs supplémentaires pertinents pour un événement. |
organizations |
Liste |
(facultatif) Liste des noms ou ID d'organisation où cet événement sera placé. Cet argument est utilisé pour le calcul de l'étendue organisationnelle du journal d'audit. S'il est absent, le gestionnaire tentera de résoudre l'organisation sur la base du type et du nom. Si la résolution est impossible, l'événement est placé dans Haut (plus haut niveau de la hiérarchie des organisations). |
originalAttributes |
Mappe |
(facultatif) Mappe des anciennes valeurs d'attribut. Les noms doivent correspondre à ceux listés dans l'argument attributes. Les valeurs seront les valeurs précédentes que vous voulez enregistrer dans le journal d'audit. |
Pour créer un événement d'audit standard dans un flux de travaux, ajoutez l'élément <Activity> suivant à ce flux de travaux.
<Activity name=’createEvent’>
Ensuite, imbriqué dans l'élément <Activity>, incluez un élément <Action> qui référencie l'application com.waveset.session.WorkflowServices :
<Action class=’com.waveset.session.WorkflowServices’>
Imbriqué dans l'élément <Action>, incluez les éléments <Argument> obligatoires et optionnels. Pour la liste des arguments, voir le Tableau 10–1.
Pour consigner les événements de contrôle standard, l'argument op doit être sur défini sur audit.
Les Exemples de flux de travaux montrent le code minimum requis pour créer un événement de contrôle standard.
L'exemple suivant illustre une activité de flux de travaux simple et montre la génération d'un événement qui enregistrera une activité de suppression de ressource nommée ADSIResource1, effectuée par ResourceAdministrator.
<Activity name=’createEvent’> <Action class=’com.waveset.session.WorkflowServices’> <Argument name=’op’ value=’audit’/> <Argument name=’type’ value=’Resource’/> <Argument name=’action’ value=’Delete’/> <Argument name=’status’ value=’Success’/> <Argument name=’subject’ value=’ResourceAdministrator’/> <Argument name=’name’ value=’ADSIResource1’/> </Action> <Transition to=’end’/> </Activity> |
Les exemples suivants illustrent la façon dont vous pouvez ajouter des attributs spécifiques à un flux de travaux qui suit les modifications appliquées par chaque utilisateur dans un processus d'approbation à un niveau granulaire. Cette addition suivra normalement une ManualAction sollicitant une saisie d'un utilisateur.
ACTUAL_APPROVER est défini dans le formulaire et dans le flux de travail (si l'approbation se fait depuis le tableau des approbations) sur la base de la personne qui a effectivement effectué l'approbation. APPROVER identifie la personne à qui l'approbation a été assignée.
<Action name=’Audit the Approval’ application=’com.waveset.session.WorkflowServices’> <Argument name=’op’ value=’audit’/> <Argument name=’type’ value=’User’/> <Argument name=’name’ value=’$(CUSTOM_DESCRIPTION)’/> <Argument name=’action’ value=’approve’/> <Argument name=’accountId’ value=’$(accountId)’/> <Argument name=’status’ value=’success’/> <Argument name=’resource’ value=’$(RESOURCE_IF_APPLICABLE)’/> <Argument name=’loginApplication’ value=’$(loginApplication)’/> <Argument name=’attributes’> <map> <s>fullname</s><ref>user.accounts[Lighthouse].fullname</ref> <s>jobTitle</s><ref>user.accounts[Lighthouse].jobTitle</ref> <s>location</s><ref>user.accounts[Lighthouse].location</ref> <s>team</s><ref>user.waveset.organization</ref> <s>agency</s> <ref>user.accounts[Lighthouse].agency</ref> </map> </Argument> <Argument name=’originalAttributes’> <map> <s>fullname</s> <s>User’s previous fullname</s> <s>jobTitle</s> <s>User’s previous job title</s> <s>location</s> <s>User’s previous location</s> <s>team</s> <s>User’s previous team</s> <s>agency</s> <s>User’s previous agency</s> </map> </Argument> <Argument name=’attributes’> <map> <s>firstname</s> <s>Joe</s> <s>lastname</s> <s>New</s> </map> </Argument> <Argument name=’subject’> <or> <ref>ACTUAL_APPROVER</ref> <ref>APPROVER</ref> </or> </Argument> <Argument name=’approver’ value=’$(APPROVER)’/> </Action> |
Les flux de travaux peuvent être modifiés pour consigner des événements de contrôle en appui des rapports de flux de travaux (Rapports de flux de travaux). Les événements de contrôle standard se limitent à consigner qu'un événement s'est produit tandis que les événements de contrôle de synchronisation consignent le démarrage et l'arrêt d'un événement ce qui permet d'effectuer des calculs de durée. En plus des données des événements de synchronisation, la plupart des informations enregistrées par les événements de contrôle standard sont également enregistrées. Pour plus d'informations, voir Informations stockées par les événements de contrôle de synchronisation.
Pour consigner les événements de contrôle de synchronisation, vous devez commencer par activer le contrôle du flux de travaux pour chacun des types de flux de travaux que vous envisagez de contrôler.
Pour les flux de travaux que vous pouvez configurer dans l'interface Administrateur en utilisant les modèles de tâches, commencez par activer le modèle de tâche correspondant au flux de travaux à contrôler. Pour les instructions, voir Activation des modèles de tâches.
Activez ensuite le contrôle des flux de travaux en sélectionnant la case à cocher Contrôler l’intégralité du flux de travaux. Pour les instructions, voir Configuration de l'onglet Vérification informatique .
Pour les flux de travaux qui n'ont pas de modèles de tâches, définissez une variable nommée auditWorkflow et définissez-en la valeur sur true.
Sachez toutefois que l'audit des flux de travaux dégrade la performance.
L'Exemple 10–3 indique le code nécessaire pour créer des événements de contrôle de synchronisation. Pour consigner les événements de contrôle de synchronisation, l'argument op doit être sur défini sur auditWorkflow.
L'argument action est également obligatoire et doit être défini sur l'une des valeurs suivantes :
StartWorkflow
EndWorkflow
StartProcess
EndProcess
StartActivity
EndActivity
Des arguments d'action supplémentaires peuvent être définis dans auditconfig.xml.
L'Exemple 10–3 illustre l'activation des événements de contrôle de synchronisation dans un flux de travaux. Pour instrumenter un flux de travaux, les événements auditWorkflow doivent être ajoutés au début et à la fin des flux de travaux, processus et activités.
L'opération auditWorkflow est définie dans com.waveset.session.WorkflowServices . Pour plus d'informations, voir la section L'application com.waveset.session.WorkflowServices.
<Action application=’com.waveset.session.WorkflowServices’> <Argument name=’op’ value=’auditWorkflow’/> <Argument name=’action’ value=’StartWorkflow’/> </Action> |
Pour arrêter la consignation des événements de contrôle de synchronisation dans un flux de travaux, ajoutez le code de l'Exemple 10–4 à une activité pre-end près de la conclusion du flux de travaux. Sachez que lors de l'instrumentation d'un flux de travaux ou d'un processus, vous n'êtes pas autorisé à mettre quoi que soit dans une activité end. Vous devez créer une activité pre-end qui effectue l'événement auditWorkflow final et passe sans conditions à l'événement end.
<Action application=’com.waveset.session.WorkflowServices’> <Argument name=’op’ value=’auditWorkflow’/> <Argument name=’action’ value=’EndWorkflow’/> </Action> |
Par défaut, les événements de contrôle de synchronisation consignent la plupart des informations stockées par les événements de contrôle standard, notamment les attributs suivants :
Attribut |
Description |
---|---|
WORKFLOW |
Nom du flux de travaux en cours d'exécution |
PROCESS |
Nom du processus courant en cours d'exécution |
INSTANCEID |
ID d'instance unique du flux de travaux en cours d'exécution |
ACTIVITY |
Activité dans laquelle l'événement est consigné |
MATCH |
Identificateur unique au sein d'une instance de flux de travaux |
Les attributs ci-dessus sont stockés dans le tableau logattr et sont issus de auditableAttributesList. Identity Manager vérifie également si l'attribut workflowAuditAttrConds est défini.
Il est possible d'appeler plusieurs fois certaines activités au sein d'une unique instance de processus ou flux de travaux. Pour faire correspondre les événements de contrôle pour une instance d'activité donnée, Identity Manager stocke un identificateur unique au sein d'une instance de flux de travaux dans le tableau logattr.
Pour stocker des attributs supplémentaires dans le tableau logattr d'un flux de travaux, vous devez définir une liste workflowAuditAttrConds, que l'on assume être une liste de GenericObjects. Si vous définissez un attribut attrName dans la liste workflowAuditAttrConds, Identity Manager extrait attrName de l'objet dans le code, d'abord en utilisant attrName en tant que clé puis en stockant la valeur d'attrName. L'ensemble des clés et valeurs sont stockées sous forme de valeurs en majuscules.