Abonnement
Un abonnement à une opération est un document technique de classe OperationHandlerRegistration
.
Les tags référencés par cette classe permettent de configurer l’abonnement :
Tag | Type | Description |
---|---|---|
OperationHandler |
string | Classe Java de l’OperationHandler ou l’URL d’un OperationHook |
ExecutionPhase |
choicelist | Phase d’exécution de l’opération |
Action |
choicelist | Action de l’opération |
ObjectType |
choicelist | Type d’objet auquel réagir |
Enabled |
boolean | Détermine si l’abonnement est actif ou inactif |
Asynchronous |
boolean | Détermine si l’OperationHandler doit être exécuté de manière asynchrone ou non |
RegistrationOrder |
integer | Ordonnancer les différents abonnements à une même opération |
StopOnException |
boolean | Détermine si l’exécution de l’opération doit être stoppée en cas d’exception (seulement si synchrone) |
Authorization |
string | chaîne d’autorisations basic à fournir au hook (générée en ligne grâce à blitter) |
Leur utilisation ne doit pas être détournée pour de la mise à jour de données qui devrait être réalisée par un traitement batch.
Filtres
Evaluation des filtres
Pour chaque abonnement à une opération, des filtres d’exécution peuvent être définis à travers un objet
SearchRequest. Ces filtres permettent de restreindre les contextes dans lesquels un gestionnaire d’opérations est exécuté. Un abonnement peut ainsi être limité à des composants respectant les critères configurés.
Bill
.
Les filtres sont évalués en fonction du contexte dans lequel une opération est exécutée. Les données pouvant être utilisées pour filtrer les opérations diffèrent en fonction du type d’opération.
Une opération exécutée sur un composant expose à travers son contexte le composant concerné. Ainsi ses données (tags, propriétaire, classe…) peuvent être utilisées pour évaluer les filtres définis. Alors que lors de l’exécution d’une recherche, les filtres sont évalués sur ses critères.
Stockage
Les filtres sont stockés à travers un objet
SearchRequest. Lors de l’enregistrement, cet objet est sérialisé (XML) et est sauvegardé comme fichier du document utilisé pour définir l’abonnement.
Spécificités
Certaines opérations permettent l’utilisation de critères particuliers.
Assignation
Le critère Id
correspond à l’identifiant de l’utilisateur à qui a été assignée la tâche.
Tandis que le critère Assigné à
correspond à celui de l’utilisateur auquel la tâche était assignée avant l’opération.
Réponse à une tâche
Le critère Id
correspond à l’identifiant de la réponse appliquée sur la tâche.
Contenu d’un dossier
Lors de l’exécution d’une opération portant sur le contenu d’un dossier (ajout ou suppression), le critère Id
correspond à l’identifiant de la classe du composant ajouté ou supprimé du dossier.
Recherche
Lors d’une recherche, les filtres d’un abonnement permettent de réagir à l’exécution de recherches spécifiques. Les filtres sont ainsi comparés aux critères de la recherche.
Les opérateurs des filtres sont interprétés tels que :
EQUALS_TO
: présence du critère dans la requête avec la valeur indiquée.CONTAINS
: présence du critère dans la requête avec une valeur contenant la chaîne de caractères indiquée dans le filtre.STARTS_WITH
: présence du critère dans la requête avec une valeur commençant par la chaîne de caractères indiquée dans le filtre.ENDS_WITH
: présence du critère dans la requête avec une valeur se terminant par la chaîne de caractères indiquée dans le filtre.DIFFERENT
: inexistance du critère ou présence avec une valeur différente de celle indiquée dans le filtre.
Concernant les critères de type Date, des opérateurs spécifiques sont utilisés et résolus tels que :
GREATER_THAN
: présence du critère dans la requête avec une valeur supérieure à celle indiquée dans le filtre.LESS_THAN
: présence du critère dans la requête avec une valeur inférieure à celle indiquée dans le filtre.BETWEEN
: présence du critère dans la requête avec une valeur comprise entre les deux valeurs indiquées.
EQUALS_TO
et DIFFERENT
sont sensibles à la casse.
- Pour les critères représentant des identifiants d’utilisateurs, la valeur ${user.id}
peut être définie. Cette valeur indique l’identifiant de l’utilisateur courant de la session.