ContextUtil

Objets utilitaires disponibles dans les scripts de gestionnaires d’opérations

Vue d’ensemble

Deux objets utilitaires sont disponibles dans les scripts de gestionnaires d’opérations. Ils ont des rôles distincts :

Objet Accès Rôle
util Variable d’instance Accès aux services, persistance de composants, création de faits — toute opération qui interagit avec FlowerDocs Core
RuleUtil Référence de classe statique Helpers en mémoire — lecture/écriture de tags, classes et statuts sans appeler les services de FlowerDocs Core

util est une instance de RuleContextUtil (qui hérite de RuleUtil). En tant qu’instance, ses méthodes s’appellent via util.methodName(...).

RuleUtil est une référence de classe statique injectée par le moteur de scripts. Toutes ses méthodes étant statiques, elles s’appellent via RuleUtil.methodName(...).


Comme RuleContextUtil hérite de RuleUtil, appeler les méthodes statiques via l’instance util (ex : util.setTagValue(...)) fonctionne également en GraalJS. Toutefois, la convention recommandée est d’utiliser RuleUtil pour les appels statiques et util pour les appels d’instance, afin de clarifier l’intention.

util — Accès aux services

Cet objet expose des méthodes permettant d’accéder aux services exposés par FlowerDocs Core pour interagir avec eux :

Nom Description
getDocumentService() Récupère le service de gestion de document
getVersionService() Récupère le service de gestion des versions d’un document
getFolderService() Récupère le service de gestion de dossier
getTaskService() Récupère le service de gestion de tâche
getVirtualFolderService() Récupère le service de gestion de dossier virtuel
getService(Component component) Récupère le service de gestion approprié selon le type de composant
Nom Description
getClassService(Component component) Récupère le service de gestion des classes de composants
getTagClassService() Récupère le service de gestion des classes de tags
getAclService() Récupère le service de gestion d’ACL
Nom Description
getUserService() Récupère le service de gestion des utilisateurs
getGroupService() Récupère le service de gestion des groupes
Méthodes Description
createFact(Fact fact) Génère un fait métier
getNotificationService() Récupère le service de notifications push
getFeatureService() Récupère le service accédant aux informations des fonctionnalités internes de FlowerDocs
getReservationService() Récupère le service de gestion des réservations

util — Persistance d’un composant

Les méthodes suivantes permettent de persister ou transformer un composant :

Méthodes Description
create(Component component) Crée le composant et retourne celui réellement créé
update(Component component) Modifie le composant et retourne la version mise à jour
Méthodes Description
changeClass(Component component, String classId) Modifie la classe du composant et propage uniquement les tags en commun entre la classe initiale et la nouvelle
createDocument(Task task, String classId) Crée un nouveau Document à partir des fichiers attachés à une tâche, avec la classe indiquée
Méthodes Description
getAttachments(Task task) Récupère les composants (documents et dossiers) attachés à la tâche

RuleUtil — Helpers statiques

Les méthodes de RuleUtil sont statiques : elles opèrent sur les objets déjà en mémoire sans effectuer d’appels aux services. Utilisez-les pour lire ou modifier les valeurs de tags, identifiants de classe et statuts sur la variable component.

Méthodes Description
getClassId(Component component) Récupère la valeur de la classe du composant sinon vide
setClassId(Component component, String classId) Définit la valeur de la classe du composant
getStatus(Component component) Récupère la valeur du statut du composant
setStatus(Component component, Status status) Définit la valeur du statut du composant
Méthodes Description
getTagValue(Component component, String tagName) Récupère la première valeur d’un tag sinon null
getTagValues(Component component, String tagName) Récupère la liste de valeurs d’un tag sinon null
setTagValue(Component component, String tagName, String value) Définit la valeur d’un tag en modifiant sa valeur s’il existe, sinon en ajoutant un tag
setTagValues(Component component, String tagName, List<String> values) Définit la liste de valeurs d’un tag en modifiant sa valeur s’il existe, sinon en ajoutant un tag
setTagReadOnly(Component component, String tagName, boolean readonly) Modifie un tag en le mettant en lecture seule ou lecture écriture
addTagValue(Component component, String tagName, String value) Ajoute une valeur à un tag existant ou ajoute le tag
addTagValues(Component component, String tagName, List<String> values) Ajoute une liste de valeurs à un tag existant ou ajoute le tag
Méthodes Description
getAnswerId(Task task) Récupère la dernière réponse appliquée sur une tâche
Méthodes Description
log(String message) Affiche dans les logs un message préfixé par [Drools] en INFO

Exemples d’utilisation


Lecture de tags et appels de services

// RuleUtil : lire les valeurs de tags en mémoire (appel statique)
var clientName = RuleUtil.getTagValue(component, "NomClient");
var classId = RuleUtil.getClassId(component);

// util : appeler les services (appel d'instance)
util.changeClass(component, "NewClass");
util.update(component);

// util : accéder à un service et effectuer une recherche
var request = SearchRequestBuilder.init()
    .filter(FilterClauseBuilder.and()
        .criterion(CriterionBuilder.name("NomClient").operator(Operators.EQUALS_TO)
            .type(Types.STRING).value(clientName).build())
        .build())
    .build();
var response = util.getVirtualFolderService().search(request);