Cycle de vie de l'auditeur ESM
Aperçu
Le cycle de vie d'un écouteur comporte trois ou quatre phases, selon qu'il s'agit d'un écouteur avant ou après sauvegarde :
- Sauvegarde de la carte de données : L'écouteur est déclenché lors de la sauvegarde d'une carte de données.
- Vérification des conditions de la source : Les conditions de la source sont vérifiées.
- Vérification des conditions de la cible (écouteurs post-sauvegarde uniquement) : Le groupe de cartes de données cible est défini en fonction des conditions de la cible. Cette phase n'a lieu que si l'écouteur est un écouteur post-sauvegarde.
- Exécution d'actions : Une ou plusieurs actions sont exécutées sur la carte de données cible.
- Dans le cas d'un écouteur pré-enregistré, la carte de données cible est la carte de données dite « source », qui « héberge » l'écouteur.

Sauvegarde de la carte de données
L'écouteur est déclenché lors de la sauvegarde d'une carte de données.

Déclencher les auditeurs

Ordre d'exécution des gestionnaires et des auditeurs

Écouteurs, gestionnaires et automatisation visuelle des flux de travail
- Les actions du workflow ne sont pas exécutées comme le dernier écouteur avant enregistrement. Elles démarrent au premier nœud du workflow (ou au dernier nœud traité) et traitent plusieurs nœuds en une seule exécution jusqu'à atteindre un nœud (comme un temporisateur ou une approbation) qui l'empêche d'aller plus loin.
- L'initialisation de l'automatisation du flux de travail visuel se produit à la fin de la partie de pré-enregistrement du cycle de sauvegarde.
- Automatisation visuelle du flux de travail __ Pro traitement__ se produit à la fin de la partie post-enregistrement du cycle de sauvegarde.
Vérification des conditions de la source
Chaque écouteur possède des conditions sources, qui décrivent le moment où il doit réagir à l'événement. Par exemple, la condition pourrait être la suivante :
(attribute "state" old value!= attribute "state" new value) && (attribute "state" new value == "closed")Les conditions peuvent être beaucoup plus complexes avec les opérateurs « and » et « or », voire imbriqués. Si la carte de données source remplit les conditions, l'exécution se poursuit.

Écouteur pré-enregistré

Écouteur post-enregistrement

ET Exemple

Exemple OU

SC combiné

Conditions sources implémentées
| Nom | Description |
|---|---|
| Condition de source combinée | Combine des conditions (qui peuvent également être des CombinedSourceConditions) avec les opérateurs AND ou OR. Dans le XML, l'élément source_conditions le plus externe est lui-même une CombinedSourceCondition. |
| Condition source toujours vraie | Toujours vrai, c'est-à-dire que la carte de données correspond toujours à cette condition. |
| EntitéSourceCondition |
|
| Condition de la source du dossier | La carte de données se trouve-t-elle dans un dossier spécifique ou dans un autre (opérateur !=). |
| GuiEditSourceCondition | Vrai lorsque la carte de données source est modifiée à partir de l'interface utilisateur ESM. |
| Nouvelle condition de source de carte de données | Sommes-nous sur le point de sauvegarder une nouvelle carte de données : oui ou non |
| Pro | Comparer un champ de la carte de données (attribut) avant ou après l'enregistrement (valeur actuelle : true ou false) à la valeur d'un autre champ, avant ou après l'enregistrement, avec un opérateur. Les opérateurs pris en charge dépendent du type de données. |
| ValeurSourceCondition | Comparer un champ (attribut) avant ou après l'enregistrement (valeur actuelle : true ou false) à une valeur constante avec un opérateur. Les opérateurs pris en charge dépendent du type de données ; par exemple, il est impossible de comparer une référence à une constante (comme l'identifiant ou le nom d'une carte de données). |
| Chemin de référenceValeurSourceCondition | Comparer une valeur trouvée dans un chemin de référence ($code1:code2:code3$) avant ou après l'enregistrement (valeur_courante vraie ou fausse) à une valeur constante avec un opérateur. Les opérateurs pris en charge dépendent du type de données. |
| Pro ReferencePathSourceCondition |
Grâce à cette condition source, il est possible de comparer les valeurs de deux attributs, dont l'un ou les deux peuvent être référencés. Le premier peut être une référence à un attribut local (non référencé), tandis que l'autre doit être un attribut de carte de données référencé. Les deux attributs doivent avoir le même type de données. Attributs multivaleurs et correspondance de la condition :
|
Voir plus d'exemples de conditions source dans SourceConditionExamples.xml :

Vérification des conditions cibles
Les conditions cibles sont similaires aux conditions de recherche dans l'interface utilisateur ESM. Les actions de l'auditeur sont exécutées sur les cartes de données correspondant aux conditions. Notez que la carte de données source doit être exclue avec ces conditions.
Un exemple de condition cible pourrait être le suivant :
(template == "ticket") && (reference attribute "caused by" target == source data card) && (attribute "state" value == "open")



Note:
Si, lors de l'exécution d'un écouteur, une éventuelle boucle infinie est détectée → l'exécution de l'écouteur se termine et une erreur s'affiche.
Par exemple, si l'écouteur A modifie la carte de données B, il déclenche l'écouteur B et l'écouteur B modifie la carte de données A.
Conditions cibles mises en œuvre
| Nom | Description |
|---|---|
| Condition cible combinée | Combine plusieurs conditions (qui peuvent également être des CombinedTargetConditions elles-mêmes) en une seule avec les opérateurs AND ou OR. |
|
ValeurCibleCondition
|
Compare une valeur d'attribut d'une carte de données à une constante via un opérateur. Les opérateurs pris en charge dépendent du type de données ; par exemple, les références ne peuvent pas être comparées au nom ou à l'identifiant de la carte de données. Une exception est une référence à la source ou une référence depuis la source (configurée avec le code d'attribut). |
| Pro | Compare la valeur d'un attribut de la carte de données à celle d'un autre attribut avec un opérateur. Les opérateurs pris en charge dépendent des types de données utilisés. |
| Pro sourceCondition cible | Compare la valeur d'un attribut de la carte de données cible à celle d'un attribut de la carte de données source avec un opérateur. Les opérateurs pris en charge dépendent des types de données utilisés. |
| EntitéTargetCondition |
|
| Condition cible spéciale |
Cette condition peut être utilisée pour définir/vérifier les propriétés suivantes :
|
Voir des exemples de conditions cibles dans TargetConditionExamples.xml :

Exécution des actions
Une ou plusieurs actions sont exécutées sur la carte de données cible. Dans le cas d'un écouteur préenregistré, la carte de données cible est la carte de données dite « source », qui « héberge » l'écouteur.

Actions mises en œuvre
| Nom | Pré-enregistrement | Publier Enregistrer | Description |
|---|---|---|---|
| AlwaysFailDataCard (Action) | Oui | Non | Empêche la sauvegarde des données de la carte. |
| ChangeDataCardValues | Oui | Oui | Définit une valeur à un champ. |
| Copier les valeurs de la carte de données | Oui | Oui | Copie une valeur de la carte de données source vers la valeur d'un autre attribut ou vers la valeur d'un attribut de la carte de données cible. Possibilité de copier également les valeurs derrière des références. En cas de valeur multiple, les valeurs existantes seront remplacées. La copie de valeurs multiples fonctionne uniquement sur la carte de données hôte, et non derrière des références. |
| CopySourceReference | Oui | Non | Crée une référence des cartes de données cibles vers la carte de données source. |
| Créer une carte de données | Non | Oui | Crée une nouvelle carte de données, basée sur un modèle configuré et dans un dossier configuré. Ajoute éventuellement des références entre le créateur et les cartes de données créées, et définit les valeurs d'attributs de la carte créée. L'heure de début de la modification dans l'interface graphique d'Efecte peut également être ajoutée. |
| Carte de données d'entité | Oui | Non | Déplace une carte de données vers la corbeille, la restaure depuis la corbeille, supprime définitivement, masque ou rend une carte de données visible. |
| Expression (action) | Oui | Oui | Exécutera un script Python défini sur les cartes de données cibles. |
| DossierDataCard | Oui | Oui | Déplace une carte de données vers un dossier spécifique. |
| Enregistrer la carte de données | Non | Oui | Enregistre la carte de données. Cela permet de calculer de nouvelles valeurs pour les attributs contenant un gestionnaire (ExpressionHandler ou similaire). |
| EnregistrerDataCardXml dans un fichier | Non | Oui | Enregistre la carte de données au format XML dans un fichier et un dossier spécifiés. Notez que cette action ne s'applique qu'à la carte de données source enregistrée. Si le fichier existe, il sera écrasé (le fichier est supprimé avant l'écriture du nouveau fichier). L'action tente d'abord d'écrire le XML dans un fichier temporaire, puis renomme ce fichier temporaire en le fichier spécifié. Ceci permet d'empêcher toute lecture du fichier résultat avant son écriture complète. |
| EnvoyerDataCardXmlToWebService | Non | Oui | REMARQUE : Le nom ne contient pas d'« Action ». Envoie la carte de données au format XML au service Web SOAP configuré. Notez que cette action s'applique uniquement à la carte de données source enregistrée. |
| Envoyer un e-mail | Non | Oui | Envoie du courrier. |
| EnvoyerSourceChangedJMSMessage(Action) | Oui | Oui | L'action enverra un message JMS à la file d'attente lors de l'enregistrement de la carte de données. Le contenu du message correspond à l'intégralité de la carte de données au format Efecte XML. |
| Mise à jour ciblée de Sccm | Non | Oui | Déclenche une mise à jour SCCM ciblée. Utilisé uniquement avec SccmIntegrationTask. |
| TransformerDataCard | Non | Oui | L'action transforme la carte de données actuellement modifiée en une autre. Utilise les règles de transformation et le dossier cible définis dans les transformations de l'éditeur de modèles. |
| EnvoyerDataCardXmlToHttpAction | Non | Oui | Envoie la carte de données au format XML au service web sélectionné. Notez que cette action ne s'applique qu'à la carte de données source enregistrée. |
Voir des exemples de conditions cibles dans TargetConditionExamples.xml :
