Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core information center entwickeln
let searchUtils = require('/agorum/roi/customers/agorum.composite/js/aguila/search/search-utils');
Der Benutzer kann in der Home-Bar (kleines Zahnrad neben der Sucheingabe) einstellen, wie sich die Standardsuche öffnet. Verwenden Sie Funktion showSearchWindow, wenn sich die Suche programmtechnisch öffnen soll.
Beispiel
let searchUtils = require('/agorum/roi/customers/agorum.composite/js/aguila/search/search-utils'); let settings = searchUtils.loadSearchWindowSettings(); searchUtils.showSearchWindow({ type: 'agorum.composite.acic', query: 'optionaler Suchstring', settingName: 'ac_all', }, settings, 'Titel der Suche');
Sie erstellen mithilfe der Bibliothek search-utils einen CSV-Export auf Basis eines Suchergebnisses.
let searchUtils = require('/agorum/roi/customers/agorum.composite/js/aguila/search/search-utils'); searchUtils.exportSearch({ query: 'nameextension:pdf W*', uuid: true, resolveHeader: true });
Mögliches Ergebnis
Name;Beschreibung;Ersteller;Erstelldatum;Dateigröße;Zuletzt geändert durch;Letzte Änderung;uuid "Willkommen.pdf";;"roi";"2020-09-03T13:50:23.698Z";"185688";"roi";"2020-09-03T13:50:23.899Z";"6a233b20-edec-11ea-9888-02420a0a0012"
Rückgabewert
Das System versucht, aus den folgenden Parametern Filter oder Einstellungen zu laden. Ist dies nicht möglich, führt es stattdessen die mitgegebene Suche aus.
Hinweis: Sind weder settingName, settings oder filter angegeben, so muss eine query oder baseQuery zur Verfügung stehen.
settingName
Definiert den Namen der zu ladenden Einstellung (setting) in der Suche.
Geben Sie den internen Namen des Filters mit, der laden soll, etwa für den Filter Alles der Name ac_all.
Setzt eine eigene Liste von Filtern.
Das System lädt im Standard alle zur Verfügung stehenden Filter.
filter
Definiert gewählte Filter-Elemente im Filterbereich.
Beschreibung der Filter siehe agorum.composite.search.filter
filterSelection
Gibt eine Selektion des Filters mit.
Die Selektion schränkt etwa im Filter Alles auf Dokumententypen oder das Änderungsdatum ein.
query
Gibt eine normale Solr-Suche mit.
Diese Suche erscheint im Suchfeld.
baseQuery
Gibt eine normale Solr-Suche mit.
Alle folgenden Parameter sind optional.
sort
Definiert die Sortierung der Suche und somit der Ausgabedatei.
Beispiel
// optional sort: [{ property: 'name', direction: 'ASC' }],
sortConfig
Definiert eine bereits existierende Sort-Konfiguration.
Beispiel für Einstellungen in der Suche
let baseFilter = require('/agorum/roi/customers/agorum.composite/js/aguila/acic/settings/base-filter'); // ... sortConfig: baseFilter.defaultSortConfig(),
sortConfigName
Definiert eine bereits existierenden Sort-Konfiguration anhand des Namens.
Setzen Sie zuvor entweder mit settingName eine Konfiguration in der Suche oder belegen Sie sortConfig, um den Parameter sortConfigName verwenden zu können.
Beispiel
sortConfigName: 'sortconfig_name_asc',
Die ausgegebenen Daten orientieren sich über den definierten Header. Um Daten zusammenzustellen, existieren mehrere Wege.
Sie können eine Listenkonfiguration in der Suche wählen. Anhand dieser erstellt das System den Header.
Definiert den Namen einer bestehenden Listenkonfiguration im agorum core explorer.
Beispiel
istConfig: 'agorum.composite.asa.list.export.Default',
Die folgenden Einstellungen steuern den Aufbau der Ausgabedatei. Das System fasst diese unter dem Parameter output zusammen.
Alle folgenden Parameter sind optional.
Definiert die Ausgabedatei (agorum core-Objekt) oder den Namen der Ausgabedatei.
Das System:
Definiert einen Header.
resolveHeader
Definiert, ob das System den Header auflöst.
rowHandler
siehe Handler
afterQueryHandler
siehe Handler
encoding
Definiert die Zeichenkodierung der Datei (Standard: UTF-8).
delimitier
Definiert die Trennzeichen für die CSV-Datei (Standard: ;).
exportMax
Grenzt die erhaltenen Einträge auf eine bestimmte Anzahl ein.
Verwenden Sie diesen Parameter zu Testzwecken, um etwa 1000 Objekte schnell einzufügen und eine Übersicht zu erhalten, ob die Handler funktionieren und die Daten vollständig aufbereitet sind.
uuid
Wert | Beschreibung |
---|---|
true | Fügt die UUID automatisch dem Header hinzu. |
false (Standard) | Fügt die UUID NICHT automatisch dem Header hinzu. |
metadataCollection
Definiert eine metadata collection, die zur Generierung des Headers und der zu verwendenden Daten dient.
Die folgenden Parameter finden Sie in der Administration > MetaDB unter:
MAIN_MODULE_MANAGEMENT/customers/agorum.composite.acic/export
Parameter | Beschreibung |
---|---|
encoding | ISO-8859-15 (oder UTF-8, oder andere encodings) |
delimitier | ; (oder , oder jedes beliebige andere Zeichen) |
exportMax | 1000 (oder jede beliebige andere Zahl) |
Beispiel 1 mit einfachen Header-Angaben
output: { exportFile: 'logfile_name.csv', header: 'name;createdate;customHeader', resolveHeader: true, rowHandler: '/agorum/roi/customers/test/js/row-handler', afterQueryHandler: '/agorum/roi/customers/test/js/after-query', beforeQueryHandler: '/agorum/roi/customers/test/js/before-query', encoding: 'UTF-8', delimitier: ';', uuid: true, exportMax: 500 // max items, to export }
Beispiel 2 mit detaillierteren Header-Angaben
output: { exportFile: 'logfile_name.csv', header: [ { name: 'name', displayName: 'Name' }, { name: 'createdate', displayName: 'Erstelldatum' }, { name: 'customHeader', displayName: 'Eigener Header' } ], resolveHeader: true, rowHandler: '/agorum/roi/customers/test/js/row', afterQueryHandler: '/agorum/roi/customers/test/js/after-query', beforeQueryHandler: '/agorum/roi/customers/test/js/before-query', encoding: 'UTF-8', delimitier: ';', exportMax: 500 // max items, to export }
Beispiel 3 mit der Angabe einer metadata collection
output: { resolveHeader: true, metadataCollection: 'agorum_demo_test_collection', encoding: 'UTF-8', delimitier: ';', exportMax: 500 // max items, to export }
Über den Parameter Handler geben Sie Skripte mit, um sich in den Export einzuhängen und ihn zur Laufzeit zu manipulieren.
Beispiel
Das folgende Beispiel holt das Objekt anhand der UUID und setzt die zwei neuen Spalten newCol und identifier.
let objects = require('common/objects'); let metadata = require('common/metadata'); function rowHandler(row) { // console.log('rowHandler', row); let object = objects.tryFind(row.uuid); if (object) { let md = metadata().load(object, 'identifier').data(); row.newCol = 'created by handler: ' + row.name; row.identifier = md.identifier; } return row; } module.exports = { rowHandler: rowHandler };
beforeQuery
Dieser Handler erhält folgende Parameter in data mit und kann diese verändern:
Wie im rowHandler können die Informationen komplett verändert oder gelöscht werden, indem null zurückgegeben wird. Dann greift bei header und exportFile das Standardverhalten.
Beispiel
Das folgende Beispiel ergänzt den Header um die zwei Felder newCol und indentifier mit einem optionalen Anzeigenamen:
function beforeQuery(data) { let header = data.header; header.push({ name: 'area', displayName: 'Area' }); header.push({ name: 'identifier', displayName: 'Identifier' }); return data; } module.exports = { beforeQuery: beforeQuery };
afterQuery
Beispiel
function afterQuery(data) { // console.log('data', data.query); // modify the query data.query += ' name:ac*'; return data; } module.exports = { afterQuery: afterQuery };
Kombinieren Sie verschiedene Einstellungen, können einige Parameter verpflichtend werden. Fehlen diese, so meldet die Bibliothek einen Fehler.
Beispiel mit allen Parametern
searchUtils.exportSearch({ settingName: 'ac_all', // settings: ['xxx'], // fill with correct settings // filter: ['xxx'], // filter with correct settings // filterSelection: ['xxx'], // fill with correct filterSelection query: 'AB*', // baseQuery: 'nameextension:pdf', /** sort: [{ // optional property: 'name', direction: 'ASC' }], /**/ /**/ sortConfig: baseFilter.defaultSortConfig(), sortConfigName: 'sortconfig_name_asc', /**/ listConfig: 'ExportStandard', output: { exportFile: 'logfile_name.csv', header: 'name;createdate;customHeader', // optional csv header, if not defined, use from listConfig, or none resolveHeader: true, // rowHandler: '/agorum/roi/customers/test/js/row', // afterQueryHandler: '/agorum/roi/customers/test/js/after-query', // beforeQueryHandler: '/agorum/roi/customers/test/js/before-query', encoding: 'UTF-8', delimitier: ';', // renamed from seperator exportMax: 500 // max items, to export } });
Beispiel zur Verwendung einer Konfiguration in der Suche
searchUtils.exportSearch({ settingName: 'ac_all', query: 'test', sortConfigName: 'sortconfig_name_asc', output: { exportFile: 'logfile_name.csv', // resolve names, if defined in metadata.yml resolveHeader: true, // optional js handler // rowHandler: '/agorum/roi/customers/test/js/row', // afterQueryHandler: '/agorum/roi/customers/test/js/after-query', // beforeQueryHandler: '/agorum/roi/customers/test/js/before-query', encoding: 'UTF-8', delimitier: ';', exportMax: 100 // max items, to export } });
Beispiel mit diversen Attributen und Metadaten
searchUtils.exportSearch({ query: 'inpath:9999 allfields:ag_packagename', sort: [{ property: 'name', direction: 'ASC' }], output: { resolveHeader: true, header: [ { name: 'name', displayName: 'Name' }, { name: 'id' }, // direktes Metadaten Attribut { name: '~~area[0]', displayName: 'Area' }, // metadatum { name: 'ag_packageName' } ] } });
Beispiel eines Exports in eigenes Datei-Objekt
let objects = require('common/objects'); // Datei suchen, ob bereits vorhanden let file = objects.tryFind('/agorum/roi/Files/Demo/test-export-file.csv'); if (!file) { // Datei ist noch nicht vorhanden, anlegen file = objects.create('file', { name: 'test-export-file.csv', target: objects.find('/agorum/roi/Files/Demo') }); } searchUtils.exportSearch({ query: 'inpath:9999 allfields:ag_packagename', sort: [{ property: 'name', direction: 'ASC' }], output: { exportFile: file, resolveHeader: true, header: [ { name: 'name', displayName: 'Name' }, { name: 'id' }, // direktes Metadaten Attribut { name: '~~area[0]', displayName: 'Area' }, // metadatum { name: 'ag_packageName' } ] } });