Skip to main content
Skip table of contents

Wat is een zoekdefinitie?

Concept

Een zoekdefinitie is een verzameling parameters die gestalte geven aan een custom zoekopdracht. Zoekdefinities vinden momenteel enkel hun toepassing binnen de context van bulktaken of bulkacties. Het is mogelijk om een zoekdefinitie als configuratie-item aan te maken en te beheren via Skryv Studio. Uiteindelijk resulteert dit in JSON-bestand met extensie .searchdef.

Context

Vanuit de bulkactie functionaliteit in de backoffice kan een gebruiker een bulkworkflow opstarten. De opgestarte bulkworkflow krijgt een lijst met dossiers mee waarin de gebruiker vervolgens via een selectietaak en op basis van de ingestelde zoekdefinitie specifieke dossiers kan zoeken en selecteren. Daarna kan de gebruiker voor de geselecteerde dossiers een specifieke taak of handeling in bulk afwerken. De meest voorkomende use case is het verlenen van goedkeuring in dossiers.

searchdef.png

Zoekdefinitie als input voor een selectietaak binnen een bulkworkflow.

Klik hier voor meer info over het opzetten en configureren van bulktaken of -acties.

Opbouw

Elke zoekdefinitie kent een gelijkaardige opbouw. Onderstaande elementen komen daar typisch in voor. Niettemin kan de opbouw van zoekdefinities lichtjes variëren.

Onderdeel

Beschrijving

Key en label

  • “key”

  • “label”

Unieke referentie en naam van de zoekdefinitie.

Functionaliteit resultatenlijst

  • "allowViewConfiguration"

  • "allowViewSelection"

  • "allowSelectableItems"

Specifiek gedrag van de resultatenlijst die de gebruiker krijgt. Zo kan je instellen of de gebruiker een zoekvenster mag zien en gebruiken, of hij custom weergaves in de resultatenlijst mag definiëren, of elk item in de lijst selecteerbaar moet zijn via een selectievakje, enzovoort.

Gegevensbron

“datasourceType”

Definieer op welke data de zoekopdracht van toepassing is en waar deze data precies te vinden is. In principe is dit het ‘dossiers’ endpoint van de elasticSearch API.

Filters

“hiddenFilters” (lijst)

Bepaal filterregels om de resultaten te beperken. Deze criteria blijven verborgen voor de backoffice gebruiker. Hij of zij kan ze dan ook niet uitschakelen.

Nota: filters zijn optioneel, vandaar dat ze niet voorkomen in het voorbeeld onderaan de pagina.

Kolommen

“columnDefinitions” (lijst)

Bepaal welke kolommen beschikbaar zijn in de resultatenlijst.

Weergaves

“views” (lijst)

Leg vast welke weergaves je ter beschikking wil stellen aan de backoffice gebruiker. Daarbij kan je ook een default weergave definiëren.

Voor een gedetailleerde oplijsting van de syntax en alle te gebruiken parameters (met hun betekenis) kan je terecht op de pagina zoekdefinitie eigenschappen.

Formaat

  • Elke zoekdefinitie wordt opgeslagen als een JSON-bestand met naamextensie .searchdef. Een eerste voorbeeld van een dergelijk JSON-bestand vind je hieronder terug. Nog andere voorbeelden vind je op de pagina zoekdefinities voorbeelden.

  • Binnen Studio is het enkel mogelijk om dit bestand te bewerken in een JSON-editor. Instructies vind je terug op de pagina zoekdefinitie editor.

  • Alle syntax info kan je terugvinden onder de sectie zoekdefinitie eigenschappen.

Onderstaand voorbeeld toont een zoekdefinitie voor bulk-goedkeuring, met drie enkelvoudige kolommen (dossiernummer, dossiertype & naam vereniging) en één samengestelde kolom (aanvrager op basis van combinatie voornaam + naam).

CODE
{
 "key": "bulkGoedkeuringCbs",
 "label": "Selecteer dossiers voor goedkeuring door CBS",
 "allowViewConfiguration": false,
 "allowViewSelection": true,
 "allowSelectableItems": true,
 "datasourceType": "es/dossiers",
 "columnDefinitions": [
 {
 "heading": "Dossiernummer",
 "select": ["dossier.label", "dossier.id"],
 "field": "dossier.label"
 },
 {
 "heading": "Dossiertype",
 "key": "dossier.type",
 "field": "dossier.dossierDefinition.label"
 },
 {
 "heading": "Naam vereniging",
 "key": "vereniging",
 "field": "dossier",
 "content": "[lookup('dossier.dossierDefinition.key', item) === 'subsidieSportvereniging' ? lookup('document.aanvraagformulierSubsidieSportvereniging.naamVereniging', item) : lookup('document.aanvraagSubsidieStraatFeestWijkComite.naamComite', item)]"
 },
 {
 "heading": "Aanvrager",
 "key": "aanvrager",
 "type": "multi-field",
 "fields": [
 {
 "type": "search/text",
 "field": {
 "path": "document.aanvraagformulierSubsidieSportvereniging.hoofdaanvrager.voornaam",
 "options": { "nesting": "document" }
 }
 },
 {
 "type": "search/text",
 "field": {
 "path": "document.aanvraagformulierSubsidieSportvereniging.hoofdaanvrager.naam",
 "options": { "nesting": "document" }
 }
 }
 ]
 }
 ],
 "views": [
 {
 "name": "Default view",
 "searchTerm": "",
 "columns": ["dossier.label", "dossier.type", "vereniging", "aanvrager"],
 "filters": [],
 "sort": {
 "criterion": "dossier.label"
 }
 }
 ]
}

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.