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);