Sélecteurs d'opérateurs étendus

Présentation générale

Le sélecteur d’opérateurs (champ de type rôle) peut être surchargé grâce au vdoc.kit.

L’objectif de ce sélecteur d’opérateurs étendu est de permettre au concepteur d’un processus de déclarer une classe d’extension qui va surcharger le comportement standard du produit. Ainsi, la classe d’extension alimentera la liste des membres potentiels d’un rôle.

A partir de la version 1.5.2, de vdoc.kit, il est possible d’utiliser deux classes d’extensions livrées permettant d’alimenter la liste des membres potentiels d’un rôle soit à partir de groupe, soit à partir d’une organisation.

Cette page regroupe les différentes informations nécessaires pour personnaliser le sélecteur d’opérateurs de VDoc.

Utilisation

Pour mettre en place la personnalisation d’un sélecteur d’opérateurs, il suffit d’ajouter un champ Personne(s) d’un rôle dans un formulaire à l’aide Studio et de se rendre sur la section Développement des propriétés du champ.

La classe d’extension pourra être spécifiée dans la zone Attributs.

Personne(s) d’un rôle

L’attribut class-name permet de définir le nom complet de l’extension Java. Si aucune classe d’extension n’est définie, le sélecteur d’opérateurs respectera le comportement standard du produit.

L’attribut scope-type permet de définir la nature de la contrainte que l’on souhaite poser. Il est en effet possible de contraindre le champ Personne(s) d’un rôle à n’afficher que les utilisateurs d’une organisation ou d’un groupe. Cette attribut peut prendre les valeurs suivantes :

Valeur Description
protocol-uri Indique que la contrainte sera posée au travers d’une valeur de type protocolUri (seules les protocolUri d’organisations et de groupes sont supportées).
organization-name Indique que la contrainte sera posée par le nom système d’une organisation.
organization-field Indique que la contrainte sera posée par le nom système d’un champ sélecteur simple d’organisation.
group-name Indique que la contrainte sera posée par le nom système d’un groupe. Si cette valeur est spécifiée, il faudra ajouter un attribut organization-name car les noms systèmes des groupes ne sont pas uniques sur le serveur VDoc.
group-names Indique que la contrainte sera posée par les noms systèmes de groupes (séparateur ; point-virgule). Si cette valeur est spécifiée, il faudra ajouter un attribut organization-name car les noms systèmes des groupes ne sont pas uniques sur le serveur VDoc.
group-field Indique que la contrainte sera posée au travers du nom système d’un champ sélecteur simple de groupe.
display-sysadmin Indique que l’utilisateur ‘sysadmin’ pourra être sélectionné.
display-anonymous Indique que l’utilisateur ‘anonymous’ pourra être sélectionné.

Exemple de personnalisation

Déclaration de la classe Java FillActorsExtension pour le pack Réclamations Client.

1
class-name=com.vdoc.packs.claims.ui.providers.selectors.extensions.FillActorsExtension

Exemples de personnalisation à partir de la version 1.5.2

Utilisation de la classe Java GroupOperatorsExtension pour permettre la sélection d’opérateurs à partir d’un groupe.

1
2
3
4
5
class-name=com.vdoc.kit.ui.providers.selectors.extensions.GroupOperatorsExtension
scope-type=group-name
organization-name=DefaultOrganization
group-name=ExtranetClients
recursive=false

Utilisation de la classe Java GroupOperatorsExtension pour permettre la sélection d’opérateurs à partir de plusieurs groupes.

1
2
3
4
5
class-name=com.vdoc.kit.ui.providers.selectors.extensions.GroupOperatorsExtension
scope-type=group-names
organization-name=DefaultOrganization
group-names=ExtranetClients;Fournisseurs
recursive=false

Utilisation de la classe Java GroupOperatorsExtension pour permettre la sélection d’opérateurs à partir d’un nom de groupe lié à un champ organisation.

1
2
3
4
5
class-name=com.vdoc.kit.ui.providers.selectors.extensions.GroupOperatorsExtension
scope-type=group-name
organization-field=OrganizationField
group-name=Fournisseurs
recursive=false

Utilisation de la classe Java OrganizationOperatorsExtension pour permettre la sélection d’opérateurs à partir d’une organization.

1
2
3
4
class-name=com.vdoc.kit.ui.providers.selectors.extensions.OrganizationOperatorsExtension
scope-type=organization-name
organization-name=DefaultOrganization
recursive=false

Développement

Pour surcharger le comportement standard du produit, il suffit de développer une classe Java implémentant une méthode statique getMembers() et renvoyant une collection d’utilisateurs.

Paramètres de la méthode

Paramètre Type Description
context com.axemble.vdoc.sdk.interfaces.IContext Le contexte de l’utilisateur connecté.
workflowInstance com.axemble.vdoc.sdk.interfaces.IWorkflowInstance Le document processus sur lequel s’exécute l’opération.
property com.axemble.vdoc.sdk.interfaces.IProperty Le champ rôle concerné.

Exemple de code

Alimentation du champ Personne(s) d’un rôle à partir d’un champ du document processus lié à une donnée du réservoir de données.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
package com.vdoc.packs.claims.ui.providers.selectors.extensions;
...
public class FillActorsExtension
{
 public static Collection<IUser> getMembers(IContext context, IWorkflowInstance workflowInstance, IProperty property)
 {
  Set<IUser> usersSet = new HashSet<>();

  // récupération du type de réclamation
  IStorageResource claimType= (IStorageResource)workflowInstance.getValue(FIELD_CLAIM_TYPE);
  if (claimType == null)
   return usersSet;

  // récupération des opérateurs associés au type de réclamation sélectionné
  Collection<IUser> users = (Collection<IUser>)claimType.getValue(STORAGE_FIELD_OPERATORS);
  if (users != null)
   usersSet.addAll(users);

  return usersSet;
 }
}