Zeige letzte Bearbeiter
1 {{content/}}
2
3 LDAP-Abfragen verhalten sich ähnlich wie [[Datenbankabfragen>>doc:Formcycle.UserInterface.Data.DBQueries]] oder [[Datenquellen>>doc:Sources]]. Sie dienen dazu, dynamisch Daten von einem //LDAP//-Server zu ermitteln. Hierbei steht neben der Filterung über eine //LDAP-Query// auch die Einschränkung der Rückgabewerte auf festgelegte Attribute zur Verfügung.
4
5 == LDAP-Abfrage anlegen ==
6
7 * Vergeben Sie einen eindeutigen Namen und optional eine Beschreibung.
8 * Aktivieren Sie ggf. die Benutzung der //LDAP//-Verbindung des [[Mandanten>>doc:Formcycle.SystemSettings.UserInterface.Clients]] oder wählen sie eine separate [[//LDAP//-Verbindung>>doc:Formcycle.UserInterface.Data.LDAPConnections]] aus.
9 * Definieren Sie für die für diese //LDAP//-Abfrage zu verwendende //BaseDN//. Diese dient als Wurzel für die Suche mittels der eigentlichen Filterabfrage.
10 * Definieren Sie die Abfrage in entsprechender //LDAP//-Filtersyntax ([[Tutorial>>url:http://www.selfadsi.de/ldap-filter.htm#FilterDef||rel="__blank"]]). Parameter werden innerhalb des Filters durch {{code}}?{{/code}} angegeben und durch entsprechende Übergaben ersetzt.
11 * Tragen Sie ggf. die von Ihnen benötigten Attribute in den Attributfilter ein. Die Rückgabe der Abfrage wird anschließend auf diese beschränkt. Wird hier kein Attribut definiert, werden alle Attribute des Such-Ergebnisses zurückgeliefert.
12
13 {{lightbox image="ldap-abfrage.jpg" width="300"/}}
14
15 == Verwendung der Abfrage ==
16
17 Die //LDAP//-Datenabfrage ist innerhalb und außerhalb eines Formulars über das hierfür vorgesehene //Servlet// unter Verwendung der entsprechenden Parameter abrufbar.
18
19 {{code}}
20 http://<server>/formcycle/datenabfrageldap
21 {{/code}}
22
23 Folgende URL-Parameter sind hierbei möglich:
24
25 {{table dataTypeAlpha="0" preSort="0-asc"}}
26 |=Parametername|=Beschreibung|=Erforderlich
27 |name|Muss dem Namen der LDAP-Abfrage entsprechen.|Ja
28 |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja, wenn //projektId// nicht gegeben
29 |projektId|Muss der ID des Formulars entsprechen. Diese Information kann über XFC_METADATA.currentProject.id abgerufen werden.|Ja, wenn //mandantName// nicht gegeben
30 |queryParameter|Nur erforderlich, wenn innerhalb der LDAP-Abfrage Platzhalter in Form eines Fragezeichens {{code}}?{{/code}} verwendet werden. Ist dies der Fall, werden die einzelnen Parameter übergeben getrennt mit dem Trennzeichen, welches durch den Parameter //delimiter// festgelegt wird.|Nein
31 |delimiter|Trennzeichen, welches die einzelnen Werte des //queryParameter// trennt. Standardmäßig ein Komma {{code}},{{/code}}.|Nein
32 {{/table}}
33
34 Bei Zugriff aus einem Formular verwenden Sie bitte immer das globale Variablen-Objekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. In diesem Objekt stehen alle relevanten URLs von {{formcycle case="dat"/}} zur Verfügung, sodass diese Beispielhaft wie folgt ermittelt werden kann: {{code language="javascript"}}XFC_METADATA.urls.datasource_ldap{{/code}}.
35
36 Die Rückgabe des Abfrage-Ergebnisses erfolgt im //JSON//-Format und kann somit innerhalb des Formulars direkt genutzt werden.
37
38 == Beispiele für Abfragen ==
39
40 Im Folgenden wird gezeigt, wie auf eine LDAP-Abfrage mittels HTTP-Requests zugegriffen werden kann. [[In den Demoseiten findet sich auch, wie ein Auswahlelement mit dem
41 Ergebnis einer LDAP-Abfrage befüllt werden kann.>>doc:Examples.SelectOptionsLDAP]]
42
43 Beispielsweise ein LDAP-Abfrage mit dem Namen //MeinAbfrage// angelegt und folgende Abfrage hinterlegt.
44
45 {{code}}
46 ((distinguishedName=?,?)
47 {{/code}}
48
49 Es müssen zwei Werte für die beiden Platzhalter (Fragezeichen) übergeben werden. Diese Abfrage kann wie folgt aufgerufen werden.
50
51 {{code}}
52 http://<server>/formcycle/datenabfrageldap?name=MeineAbfrage&mandantName=MeinMandant&queryParameter=Wert,1;Wert,2&delimiter=;
53 {{/code}}
54
55 Der folgende Code kann zur Abfrage mittels AJAX aus einem Formular genutzt werden.
56
57 {{code language="javascript"}}
58 function ldapQuery(name, queryParameter, delimiter, callback) {
59 $.ajax({
60 url: XFC_METADATA.urls.dataquery_ldap,
61 method: 'GET',
62 async: true,
63 cache: false,
64 dataType: 'json',
65 data: {
66 name: name,
67 mandantName: XFC_METADATA.currentClient.name,
68 queryParameter: queryParameter,
69 delimiter: delimiter || ','
70 }
71 }).success(callback);
72 }
73 {{/code}}
Copyright 2000-2024