Utilisation et options du Directory Picker
1. Récupération de ressources
OpenDirectoryPicker (field,types,ismultiple)
field: Champ cible (0 est le plus souvent utilisé)
types: actor, service, profile, user, group, role, code_grp, distribution_group, excel_report, extern_user, report, societe.
ismultiple: true (pour sélectionner plusieurs valeurs), false (pour ne sélectionner qu'une seule valeur)
OpenDirectoryPicker( {0}, 'user', true );
Il est possible d'afficher plusieurs types de ressources, dans ce cas il faut les séparer par des ;
Une dropdown de sélection du type de ressource apparait alors en haut de la fenêtre.
OpenDirectoryPicker( {0}, 'user;service', true );
2. Affichage de ressources à partir de relation
Il faut mettre NomDeLaRelation:Valeur de la destination de la relation ([to])
Les différents type de relations possibles sont : Distribution , Hierarchie , Manager , Membre , Profiles , Roles , ServiceRole , ServiceSociete , UserAdminOrgaSociete, UserSociete
OpenDirectoryPicker( {0}, "Roles:Approbateur", true )
- Après application du SP .Net 2013, il est possible de d'inverser le sens de récupération des valeurs de la relation (par ex les rôles d'un utilisateur). Pour cela, il faut ajouter un ! dans la relation
OpenDirectoryPicker( {0}, "Roles:!Jean ALESI", true )
- Il est possible de combiner les relations à chercher en utilisant le | :
Dans l'exemple ci-dessous, le picker retourne les personnes membres et le manager du service 'Service informatique'
OpenDirectoryPicker({0}, 'Manager|Membre:Service informatique' , false)
- Il est possible d'afficher des users de plusieurs relations (attention elles doivent être du même type)
OpenDirectoryPicker({0}, 'Membre:Service1;Membre:Service2;Membre:Service3', true)
permet de choisir entre le Service1, Service2 et le Service3. Le système affichera alors les utilisateurs du service sélectionné.
- Il est possible de combiner les relations en mode ET, pour cela il faut utiliser le &depends= (attention, valable uniquement sur 2016SP1 patchée minimum)
Dans l'exemple ci-dessous, le picker affiche les users membres du service informatique et disposant du rôle Author
OpenDirectoryPicker({0}, 'Membre:Service Informatique&depends=Roles:Author' , false);
- Il est donc possible de gérer une combinatoire des fonctionnalités ci-dessus :
OpenDirectoryPicker({0}, 'Manager|Membre:Service Informatique&depends=Roles:Author' , false);
Dans les résultats proposés de tous ces picker, il est possible d'afficher toutes les ressources de la base orga ou uniquement les ressources actives. Cela est géré dans le web.config avec la clé ci-dessous :
<!-- Hide locked account in DirectoryPicker selection : 0 show, 1 hide-->
<add key="DirectoryHideLockUsers" value="1" />
3. Création d'une relation dédiée
Il est possible de créer une toute nouvelle relation. Cette dernière sera utilisée dans une picklist pour sélectionner, par exemple, des utilisateurs ainsi que des rôles dont le nom contient '3C'.
Créer le rôle 'Roles_3C' :
Puis créer la relation 'Roles_3C' :

et associer cette nouvelle relation aux rôles qui pourront être sélectionnés :

Enfin, ajouter la nouvelle relation dans le champ 'type' de la fonction OpenDirectoryPicker :

Il est alors possible de sélectionner dans la picklist des utilisateurs ou des rôles se contenant '3C' :
