Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core JavaScript-API
Mit diesem flexiblen DataHandler können Sie:
Der DataHandler unterstützt ausschließlich die Funktion read und den Lookup eines einzelnen Werts.
Sie können die Parameter (lookup ausgenommen) sowohl programmatisch als auch über die MetaDB konfigurieren.
Die Parameter können Sie auf verschiedene Weisen übergeben oder angeben und kombinieren, um flexibel zu sein.
Folgende Reihenfolge gilt:
let parameters = { lookup: false, // Aktiviert den Lookup-Modus. Der Parameter query muss eine agorum-ID des gesuchten Objekts enthalten. searchUsers: false, // Aktiviert die Suche nach Benutzern. searchGroups: false, // Aktiviert die Suche nach Benutzergruppen. excludeWorld: false, // Entfernt die World-Gruppe aus den Ergebnissen. matchStart: true, // Erweitert die Suche, sodass die Ergebnisse mit den Wörtern der <query> beginnen müssen (Fuzzy Matching). matchEnd: false, // Erweitert die Suche, sodass die Ergebnisse mit den Wörtern der <query> enden müssen (Fuzzy Matching). // Für eine exakte Suche müssen beide Parameter aktiviert werden: Beginnt und endet mit dem Wort. // Wenn unklar ist, ob das Wort am Anfang, in der Mitte oder am Ende steht, müssen beide Parameter auf false stehen. limit: 100, // Steuert, wie viele Ergebnisse zurückgegeben werden. additionalQuery: null, // Erweitert die baseQuery um weitere Sucheigenschaften (Suche wird mit und ausgeführt). groupId: null, // Schränkt die Suche auf die angegebene Benutzergruppe ein. Der Parameter muss eine agorum-ID des gesuchten Objekts enthalten, etwa group:GRP_Demo. userTextFormat: '${typeDisplayName}: ${fullName} (${name})', // Definiert das Format, mit dem die text-Eigenschaft von Benutzern formatiert wird. groupTextFormat: '${typeDisplayName}: ${name}', // Definiert das Format, mit dem die text-Eigenschaft von Benutzergruppen formatiert wird. userValueFormat: '${uuid}', // Definiert das Format, mit dem die value-Eigenschaft von Benutzern formatiert wird. groupValueFormat: '${uuid}' // Definiert das Format, mit dem die value-Eigenschaft von Benutzergruppen formatiert wird. }
Wenn der DataHandler mit einer query aufgerufen wird (siehe Funktion read), werden Benutzer und / oder Benutzergruppen entsprechend der query gefiltert.
Beispiel
let query = 'de'
Das Beispiel liefert unter anderem den Benutzer demo zurück.
Den Suchmodus (Fuzzy Matching) steuern
Sie steuern das Fuzzy Matching mit den Parametern matchStart und matchEnd. Standardmäßig ist der Parameter matchStart aktiviert. Das System sucht entsprechend alle Treffer, die mit de beginnen und gibt daher demo zurück.
Hinweise:
Der DataHandler liefert ein Array passender Objekte zurück. Wenn das System kein passendes Objekt findet, ist die Rückgabe ein leeres Array.
Die zurückgegebenen Objekte enthalten die folgenden Eigenschaften und Werte:
{ id, // agorum-ID des Objekts uuid, // UUID des Objekts name, // Technischer Name des Benutzers / der Benutzergruppe fullName, // Anzeigename des Benutzers; bei Benutzergruppen: null queryableName, // Name in einem Format, das von objects.find gefunden wird: user:Demo className, // Name der Objektklasse: [ 'directoryuserobject', 'directorygroupobject' ] type, // Typ des Objekts: [ 'user', 'group' ] typeDisplayName, // Übersetzter Typ-Name des Typs: [ 'Benutzer', 'Gruppe' ] text, // Formatierter Text, der in einer ComboBox als Anzeigename dient. value // Formatierter Wert, der von einer ComboBox als Rückgabewert verwendet wird. }
Hinweis: Die Benutzergruppe World verhält sich anders als andere (normale) Benutzergruppen. Sie enthält keine Benutzer, wird aber technisch so behandelt, als ob alle Benutzer in der Benutzergruppe vorhanden sind. Deshalb kann der hier beschriebene DataHandler user-group keine Benutzer- oder Benutzergruppen-Objekte in der World-Gruppe finden. Die World-Gruppe kann darüber hinaus auch nicht in andere Benutzergruppen eingefügt und verschachtelt werden.
Die folgenden Abschnitte enthalten jeweils Beispiele zu bestimmten Themen und erläutern, wie Sie die gleichen Parameter über die MetaDB pflegen. Grundsätzlich legen Sie in diesem Fall in der MetaDB zu jedem Parameter einen Property-Entry an.
let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let query = 'user:demo'; let parameters = { lookup: true }; handler.read(query, parameters);
let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let parameters = { searchUsers: true, searchGroups: true, excludeWorld: true }; handler.read(parameters);
Parameter in der MetaDB
Parameter | Wert (String) |
---|---|
SearchUsers | true |
SearchGroups | true |
ExcludeWorld | true |
Alternativ mit dem Parameter „additionalQuery“
let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let parameters = { searchUsers: true, searchGroups: true, additionalQuery: 'classname:directoryuserobject OR (allfields:classname NOT id:999)' }; handler.read(parameters);
Parameter in der MetaDB
Parameter | Wert (String) |
---|---|
SearchUsers | true |
SearchGroups | true |
AdditionalQuery | 'classname:directoryuserobject OR (allfields:classname NOT id:999)' |
/* global sc */ let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let parameters = { searchUsers: true, searchGroups: true, }; handler.read(parameters);
[ { "name" : "GRP_wf_allgemein_beobachter", "fullName" : null, "className" : "directorygroupobject", "id" : "1801719", "text" : "Gruppe: GRP_wf_allgemein_beobachter", "type" : "group", "typeDisplayName" : "Gruppe", "uuid" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "value" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "queryableName" : "group:GRP_wf_allgemein_beobachter" }, { "name" : "guest", "fullName" : "Guest User", "className" : "directoryuserobject", "id" : "1002302", "text" : "Benutzer: Guest User (guest)", "type" : "user", "typeDisplayName" : "Benutzer", "uuid" : "71497030-ce62-11e0-b47a-0800276e2399", "value" : "71497030-ce62-11e0-b47a-0800276e2399", "queryableName" : "user:guest" } ]
name - idIm obigen Beispiel soll die Eigenschaft value bei der Benutzergruppe und dem Benutzer folgendermaßen lauten:
GRP_wf_allgemein_beobachter - 1801719
guest - 1002302
/* global sc */ let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let parameters = { searchUsers: true, searchGroups: true, userValueFormat: '${name} - ${id}', groupValueFormat: '${name} - ${id}' }; handler.read(parameters);
[ { "name" : "GRP_wf_allgemein_beobachter", "fullName" : null, "className" : "directorygroupobject", "id" : "1801719", "text" : "Gruppe: GRP_wf_allgemein_beobachter", "type" : "group", "typeDisplayName" : "Gruppe", "uuid" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "value" : "GRP_wf_allgemein_beobachter - 1801719", "queryableName" : "group:GRP_wf_allgemein_beobachter" } { "name" : "guest", "fullName" : "Guest User", "className" : "directoryuserobject", "id" : "1002302", "text" : "Benutzer: Guest User (guest)", "type" : "user", "typeDisplayName" : "Benutzer", "uuid" : "71497030-ce62-11e0-b47a-0800276e2399", "value" : "guest - 1002302", "queryableName" : "user:guest" } ]Ergebnis: Die beiden Werte der Eigenschaft value (fett markiert) wurden gemäß den Variablen ${name} - ${id} geändert.
Parameter in der MetaDB
Parameter | Wert (String) |
---|---|
SearchUsers | true |
SearchGroups | true |
UserValueFormat | '${name} - ${id}' |
GroupValueFormat | '${name} - ${id}' |
/* global sc */ let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let parameters = { searchUsers: true, searchGroups: true, }; handler.read(parameters);
[ { "name" : "GRP_wf_allgemein_beobachter", "fullName" : null, "className" : "directorygroupobject", "id" : "1801719", "text" : "Gruppe: GRP_wf_allgemein_beobachter", "type" : "group", "typeDisplayName" : "Gruppe", "uuid" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "value" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "queryableName" : "group:GRP_wf_allgemein_beobachter" }, { "name" : "guest", "fullName" : "Guest User", "className" : "directoryuserobject", "id" : "1002302", "text" : "Benutzer: Guest User (guest)", "type" : "user", "typeDisplayName" : "Benutzer", "uuid" : "71497030-ce62-11e0-b47a-0800276e2399", "value" : "71497030-ce62-11e0-b47a-0800276e2399", "queryableName" : "user:guest" } ]
name - idIm obigen Beispiel soll die Eigenschaft text bei der Benutzergruppe und dem Benutzer folgendermaßen lauten.
GRP_wf_allgemein_beobachter - 1801719
guest - 1002302
/* global sc */ let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let parameters = { searchUsers: true, searchGroups: true, userTextFormat: '${name} - ${id}', groupTextFormat: '${name} - ${id}' }; handler.read(parameters);
[ { "name" : "GRP_wf_allgemein_beobachter", "fullName" : null, "className" : "directorygroupobject", "id" : "1801719", "text" : "GRP_wf_allgemein_beobachter - 1801719", "type" : "group", "typeDisplayName" : "Gruppe", "uuid" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "value" : "2f2f9b70-d40b-11eb-b6a2-02420a0a0008", "queryableName" : "group:GRP_wf_allgemein_beobachter" } { "name" : "guest", "fullName" : "Guest User", "className" : "directoryuserobject", "id" : "1002302", "text" : "guest - 1002302", "type" : "user", "typeDisplayName" : "Benutzer", "uuid" : "71497030-ce62-11e0-b47a-0800276e2399", "value" : "71497030-ce62-11e0-b47a-0800276e2399", "queryableName" : "user:guest" } ]Ergebnis: Die beiden Werte der Eigenschaft value (fett markiert) wurden gemäß den Variablen ${name} - ${id} geändert.
Parameter in der MetaDB
Parameter | Wert (String) |
---|---|
SearchUsers | true |
SearchGroups | true |
UserTextFormat | '${name} - ${id}' |
GroupTextFormat | '${name} - ${id}' |
let data = require('common/data'); let handler = data.handler('MAIN_MODULE_MANAGEMENT/customers/Standard/Data/user-group'); let query = 'emo'; let parameters = { searchUsers: true, searchGroups: true, matchStart: false, matchEnd: false }; handler.read(query, parameters);
Parameter in der MetaDB
Parameter | Wert (String) |
---|---|
SearchUsers | true |
SearchGroups | true |
matchStart | false |
matchEnd | false |