Principe
L’Operation API permet de réagir à l’exécution d’opérations au sein de FlowerDocs Core. Une opération est une action effectuée par un utilisateur sur un composant.
Les gestionnaires d’opérations (ou
OperationHandler) sont appelés lors de l’exécution d’une opération pour y réagir et appliquer des traitements spécifiques. Ils peuvent être appelés avant (pré-traitement) ou après (post-traitement) l’exécution de l’opération.
L’exécution d’une opération peut être découpée en trois phases :
1 . Les OperationHandler enregistrés dans la phase de pré-traitement sont appelés
2 . L’Operation est executée
3 . Les OperationHandler enregistrés dans la phase de post-traitement sont appelés
Abonnement
Afin qu’un gestionnaire d’opérations réagisse à l’exécution d’une opération, il doit y être abonné. L’abonnement à l’exécution d’une opération consiste en la création d’un document de configuration de classe OperationHandlerRegistration
.
L’abonnement définit le type d’opérations auxquelles le gestionnaire doit réagir en configurant une
action (création, mise à jour…) et une
phase d'exécution (avant ou après) indique si le gestionnaire doit réagir avant ou après l’exécution de l’opération.
En outre, l’abonnement détermine si la réaction à l’exécution d’une opération est synchrone ou asynchrone (exécutée dans un autre thread pour ne pas bloquer l’opération effectuée par l’utilisateur).
Afin de limiter le nombre d’appel, il est possible de définir un filtre d’exécution que FlowerDocs va résoudre pour déclencher ou non l’appel au gestionnaire d’opérations en fonction du contexte.
Les champs sur lesquels ont peut appliqués des filtres dépendent de la
catégorie de composants choisie, en voici la liste exhaustive :
- Document, dossier et dossier virtuels : liste de tags, classe de composant
- Tâches : listes de tags, classe de composant, utilisateur assigné, identifiant du processus
- Classe de tâche : identifiant, identifiant du processus
- Autres : identifiant
Via l’interface d’administration, il est possible de sélectionner des champs autre, notamment sur les composants d’administration : ils ne seront pas pris en compte.
Gestionnaire d’opérations
Un gestionnaire d’opérations (ou
OperationHandler) est un fragment de code appelé lors de l’exécution d’une opération. Ils peuvent être classés en trois catégories :
- natifs : fournis nativement par FlowerDocs Core et exécutés au sein de sa JVM
- hooks : exposés en tant que web services REST
Afin de contextualiser leurs exécutions, un objet
OperationContext est fourni en entrée. Le contexte peut être utilisé pour récupérer les informations concernant l’exécution de l’opération comme le composant concerné ou les modifications apportées.