Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
LDAP CHERCHER TOUS
|
LDAP CHERCHER TOUS ( dnRootEntry ; tabRésultat ; filtre {; scope {; attributs {; attributsEnTableau}}} ) | ||||||||
Paramètre | Type | Description | ||||||
dnRootEntry | Chaîne |
![]() |
Distinguished Name de l'élément racine où démarrer la recherche | |||||
tabRésultat | Tableau objet |
![]() |
Résultat de la recherche | |||||
filtre | Chaîne |
![]() |
Filtre de recherche LDAP | |||||
scope | Chaîne |
![]() |
Champ d'action de la recherche : "base" (défaut), "one" ou "sub" | |||||
attributs | Tableau texte |
![]() |
Attribut(s) à récupérer | |||||
attributsEnTableau | Tableau booléen |
![]() |
Vrai = forcer le retour des attributs en tableaux, Faux = forcer le retour des attributs en variables simples | |||||
La commande LDAP CHERCHER TOUS recherche sur le server LDAP cible toutes les occurrences correspondant aux critères définis. Cette commande doit être exécutée dans le contexte d'une connexion serveur LDAP ouverte par la commande LDAP LOGIN dans le process courant ; sinon une erreur 1003 est retournée.
A noter que les serveurs LDAP imposent généralement un nombre maximum d'entrées qui peuvent être récupérées lors d'une recherche. Par exemple, Microsoft Active directory limite de nombre à 1000 entrées par défaut.
Dans dnRootEntry, passez le Distinguished Name de l'élément racine du serveur LDAP ; la recherche démarrera à partir de cet élément.
Dans tabResult, passez un tableau objet qui sera rempli avec les entrées trouvées ; dans ce tableau, chaque élément est un objet contenant les paires attributs/valeurs retournées pour une entrée trouvée. Vous pouvez utiliser le paramètre attributs pour définir les paramètres à retourner.
Dans filtre, passez le filtre de recherche LDAP à appliquer. Ce filtre doit être conforme à la rfc2225. Vous pouvez passer une chaîne vide "" afin de ne pas appliquer de filtre. Le joker "*" pour chercher des sous-chaînes est pris en charge.
Dans scope, passez une des constantes suivantes du thème "LDAP" :
Constante | Type | Valeur | Comment |
LDAP racine et suivant | Chaîne | one | Chercher dans l'élément racine défini par dnRootEntry et dans les branches directement suivantes sur un niveau |
LDAP racine uniquement | Chaîne | base | Chercher uniquement dans l'élément racine défini par dnRootEntry (défaut si omis) |
LDAP tous niveaux | Chaîne | sub | Chercher dans l'élément racine défini par dnRootEntry et dans toutes les branches suivantes |
Dans attributs, passez un tableau texte contenant la liste de tous les attributs LDAP à récupérer à partir des entrées trouvées. Par défaut, si ce paramètre est omis, tous les attributs sont récupérés.
Note : Les noms d'attributs LDAP tiennent compte des majuscules/minuscules. Pour plus d'informations sur les attributs LDAP, vous pouvez consulter cette page qui liste tous les attributs disponibles pour MS Active Directory.
Par défaut, la commande retourne les attributs sous forme de tableau si plusieurs résultats sont trouvés, ou sous forme de variable simple si un seul résultat est trouvé. Le paramètre optionnel attributsEnTableau vous permet de "forcer" le formatage des attributs retournés en tableau ou en variable pour chaque attribut défini :
Nous voulons récupérer les numéros de téléphone de tous les utilisateurs nommés "smith" dans l'annuaire d'enterprise :
TABLEAU TEXTE($_tabAttributes;0)
TABLEAU BOOLEEN($_tabAttributes_asArray;0)
AJOUTER A TABLEAU($_tabAttributes;"cn")
AJOUTER A TABLEAU($_tabAttributes_asArray;Faux)
AJOUTER A TABLEAU($_tabAttributes;"telephoneNumber")
AJOUTER A TABLEAU($_tabAttributes_asArray;Faux)
TABLEAU OBJET($_entry;0)
LDAP LOGIN($url;$myLogin;$pwd)
$filter:="cn=*smith*"
LDAP CHERCHER TOUS($dnSearchRootEntry;$_entry;$filter;LDAP tous niveaux;$_tabAttributes)
LDAP LOGOUT
//$_entry contiendra par exemple
// $_entry{1} = {"cn":"John Smith","telephoneNumber":"01 40 87 00 00"}
// $_entry{2} = {"cn":"Adele Smith","telephoneNumber":"01 40 87 00 01"}
// $_entry{3} = {"cn":"Adrian Smith","telephoneNumber":"01 23 45 67 89"}
// ...
Ces exemples illustrent plus particulièrement l'utilisation du paramètre attributsEnTableau :
TABLEAU OBJET($_entry;0)
TABLEAU TEXTE($_tabAttributes;0)
TABLEAU BOOLEEN($_tabAttributes_asArray;0)
AJOUTER A TABLEAU($_tabAttributes;"cn")
AJOUTER A TABLEAU($_tabAttributes_asArray;Faux)
AJOUTER A TABLEAU($_tabAttributes;"memberOf")
AJOUTER A TABLEAU($_tabAttributes_asArray;Vrai)
LDAP LOGIN($url;$login;$pwd;LDAP password plain text)
LDAP CHERCHER TOUS($dnSearchRootEntry;$_entry;$filter;LDAP tous niveaux;$_tabAttributes;$_tabAttributes_asArray)
LDAP LOGOUT
TABLEAU TEXTE($_arrMemberOf;0)
OB LIRE TABLEAU($_entry{1};"memberOf";$_arrMemberOf)
// $_arrMemberOf est un tableau contenant tous les groupes de l'entrée
TABLEAU TEXTE($_tabAttributes;0)
TABLEAU BOOLEEN($_tabAttributes_asArray;0)
AJOUTER A TABLEAU($_tabAttributes;"cn")
AJOUTER A TABLEAU($_tabAttributes_asArray;Faux)
AJOUTER A TABLEAU($_tabAttributes;"memberOf")
AJOUTER A TABLEAU($_tabAttributes_asArray;Faux)
LDAP LOGIN($url;$login;$pwd;LDAP password plain text)
LDAP CHERCHER TOUS($dnSearchRootEntry;$_entry;$filter;LDAP tous niveaux;$_tabAttributes;$_tabAttributes_asArray)
LDAP LOGOUT
$memberOf:=OB Lire($_entry{1};"memberOf")
// $memberOf est une variable contenant le premier groupe de l'entrée
Produit : 4D
Thème : LDAP
Numéro :
1329
Nom intl. : LDAP SEARCH ALL
Créé : 4D v15
4D - Langage ( 4D v20 R7)