Ga naar inhoud

Zoekopdrachten

In de meest algemene vorm bestaat een zoekopdracht die je in Yesplan kan opschrijven uit 3 onderdelen met als vorm:

scope:keyword:word

Een paar voorbeelden:

  • event:name:Othello (Zoek alle evenementen met ‘Othello’ in de naam)
  • resource:role:geluidstechnicus (Zoek alle resources met rol geluidstechnicus)

De scope van een zoekopdracht bepaalt binnen welk soort element er gezocht wordt. Indien je enkel op zoek bent naar evenementen dan gebruik je event als scope, voor resources gebruik je resource, enzovoort. Het overzicht van scopes toont een lijst van alle scopes die door Yesplan ondersteund worden. Merk op dat een scope steeds een Engelstalige term is, ook al staat Yesplan ingesteld op de Nederlandse taal.

Het keyword bepaalt op welke eigenschap van een element er gezocht wordt. Enkele voorbeelden hiervan zijn name, location, date, label, enzovoort. Het overzicht van keywords toont een lijst van alle geldige keywords die je kan gebruiken in de Yesplan zoektaal, alsook de scope waarin ze van toepassing zijn. Merk ook op dat een keyword steeds een Engelstalige term is, ook al staat Yesplan ingesteld op de Nederlandse taal.

Het word is het laatste onderdeel van een zoekopdracht. Dit beschrijft de tekstuele waarde waarop je zoekt binnen de eigenschap die je hebt aangegeven aan de hand van het keyword. Zo zal de zoekopdracht resource:role:geluid zoeken naar alle resources waarvan een rol de naam ‘geluid’ bevat. Merk op dat het word dat opgegeven wordt in de zoekopdracht (bijvoorbeeld ‘geluid’) slechts een onderdeel moet zijn van de effectieve waarde in Yesplan. Zo zal de voorgaande zoekopdracht ook alle resources met een rol ‘geluidstechnicus’ terugvinden.

Merk op dat het word hoofdletterongevoelig is; ‘jan’ geeft dus hetzelfde resultaat als ‘Jan’.

Eenvoudige zoekopdrachten§

We lichten bovenstaande concepten verder toe aan de hand van enkele voorbeelden.

Beschouw de onderstaande zoekopdracht:

event:name:othello

Deze zoekopdracht heeft als scope event, als keyword name en als word othello.

Het resultaat van deze zoekopdracht zal een lijst zijn van alle evenementen, waarvan de naam ‘othello’ bevat. Het word moet dus niet exact overeenkomen met de waarde van de eigenschap, maar kan een onderdeel van de waarde zijn. In het onderstaande voorbeeld zie je dat de evenementen met naam “Othello”, “Othello 1”, “Othello 2” en “Othello 3” als resultaat getoond worden. Merk op dat deze regel geldt voor de meeste keywords waarbij de gezochte eigenschap een naam of een stukje tekst is, zoals name. Echter, bij keywords waarbij de gezochte eigenschap een een datum of een getal is, zal de overeenkomst exact moeten zijn.

Merk op dat een word geen spaties mag bevatten. Als een zoekterm toch spaties bevat, dan wordt dit mogelijk door dubbele aanhalingstekens ("…") rond het word te plaatsen, bijvoorbeeld:

group:name:"The Film Festival"

Het resultaat van deze zoekopdracht zal bijvoorbeeld de evenementgroep met als naam ‘The Film Festival’ bevatten.

Naast spaties mag een word volgende tekens niet bevatten: * # : ( ). Deze maken immers deel uit van de syntaxis van de zoektaal, zoals verderop duidelijk zal worden. Indien men één van deze tekens toch wil opnemen in een word, dan moet men eveneens dubbele aanhalingstekens gebruiken.

Indien het soort element dat je wilt opzoeken niet van belang is, dan kan je de scope van een zoekopdracht weglaten in het algemene zoekvenster. Stel dat we bijvoorbeeld naar alle elementen binnen Yesplan willen zoeken die een label ‘verhuur’ hebben. Dit kan aan de hand van volgende zoekopdracht:

label:verhuur

Het resultaat is een lijst van verschillende soorten elementen, bijvoorbeeld een evenement, een resource en een contact. Je vindt een volledig overzicht van keywords die dit toelaten onder keywords met standaardscopes.

Tenslotte is het ook mogelijk om ook het keyword weg te laten in een zoekopdracht en enkel een word op te geven. In dat geval zal de zoektaal álle elementen in Yesplan zoeken waarvan de naam het word bevat.

Bijvoorbeeld:

othe

Het resultaat van deze zoekopdracht zal de evenementen “Othello”, “Othello 1”, “Othello 2”, “Othello 3”, alsook de evenementgroep “Othello productie” tonen.

Afwezigheid van waardes§

Een speciaal geval dat ondersteund wordt binnen de zoektaal is een leeg word met aanhalingstekens eromheen (""). Als je dit gebruikt zal de afwezigheid van een waarde voor het keyword afgetoetst worden. Zo zal onderstaande zoekopdracht alle personen opvragen die geen label hebben.

person:label:""

De afwezigheid van een waarde wordt enkel afgetoetst daar waar het keyword van toepassing is. Bij resources is bijvoorbeeld het keyword team enkel van toepassing op resources van het type “Persoon”, omdat enkel zulke resources deel kunnen uitmaken van een team. De onderstaande zoekopdracht vraagt alle resources op waarbij het team keyword van toepassing is maar er geen waarde is. Het resultaat is alle resources van het type “Persoon” die geen deel uitmaken van een team. Resources van andere types komen niet voor in het resultaat.

resource:team:""

Indien je een overzicht wenst van evenementen zonder locatie, kan je de volgende zoekopdracht gebruiken:

event:location:""

Hou er wel rekening mee dat evenementgroepen zich wat anders gedragen:

group:location:""
group:location:theaterzaal

Voor de eerste zoekopdracht zullen enkel evenementgroepen verschijnen waarvan geen van de evenementen een locatie heeft. Voor de tweede zoekopdracht zullen enkel evenementgroepen verschijnen waarvan minstens één evenement plaatsvindt in de Theaterzaal.

Gebruik van een joker§

Om aan te geven dat het er niet toe doet wat de waarde is van een bepaalde eigenschap, kan je de zogenaamde joker (wildcard) gebruiken. Deze joker wordt neergeschreven als een asterisk-symbool (*). De joker werkt als het omgekeerde van een leeg word ("") en toetst de aanwezigheid van een waarde af.

Onderstaande zoekopdracht haalt alle resources op van om het even welk type:

resource:type:*

Merk op dat wanneer je een joker gebruikt als word, er enkel resultaten worden teruggegeven waarvoor er voor het gebruikte keyword een waarde is.

Beschouw bijvoorbeeld onderstaande zoekopdracht:

person:label:*

Deze zoekopdracht zal alle personen opvragen die een label hebben; personen zonder label zullen niet getoond worden.

Wanneer een keyword niet van toepassing is, kan er ook geen waarde zijn. Onderstaande zoekopdracht vraagt alle resources op die deel uitmaken van een team. Dit zullen steeds resources van het type “Persoon” zijn: het team keyword is enkel van toepassing op zulke resources omdat enkel deze deel kunnen uitmaken van een team.

resource:team:*

De joker kan ook als keyword aangewend worden. Zo zal onderstaande zoekopdracht alle contacten opvragen waarvan om het even welke eigenschap de waarde ‘jan’ bevat.

contact:*:jan

Gebruik van datums en periodes§

De zoektaal biedt uitgebreide functionaliteit aan om vragen te stellen waarbij de gezochte eigenschap een bepaalde datum is, of in een bepaalde periode valt.

Bij datums kan er gezocht worden naar een exacte overeenkomst met een bepaalde datum. Een datum wordt opgegeven in het formaat dd-mm-jjjj (dag, maand, jaar). Zo zal onderstaande zoekopdracht alle evenementen opvragen die plaats vinden op 28 maart 2013:

event:date:28-03-2013

Opmerking

Bij keywords waarbij de gezochte eigenschap een datum is, gelden er dus andere regels voor het vinden van een overeenkomst dan bij tekstuele eigenschappen. Bij tekstuele eigenschappen geldt dat er een overeenkomst is als de waarde van de eigenschap het opgegeven word bevat. Bij datums zal de overeenkomst exact zijn.

De zoektaal biedt ook de mogelijkheid om een periode te gebruiken als word. Een periode wordt genoteerd door middel van twee datums die gescheiden worden door TO. Merk op dat het noodzakelijk is om de datums te scheiden van TO met een spatie. Hierbij geldt dat er een overeenkomst is, als de datum binnen de opgegeven periode valt. Zo kunnen we bijvoorbeeld alle evenementen opvragen van 15 maart tot en met 30 maart 2013 door middel van onderstaande zoekopdracht:

event:date:15-03-2013 TO 30-03-2013

Naast het zoeken op een specifieke datum, of naar een specifieke periode, biedt de zoektaal ook nog een aantal speciale words aan die gebruikt kunnen worden om te selecteren op datum.

Bijvoorbeeld:

event:date:#today

Deze zoekopdracht maakt gebruik van het word #today om de vraag te beperken tot alle evenementen die vandaag plaatsvinden. Gelijkaardige speciale words zijn:

Word Beschrijving
#tomorrow de datum komt overeen met morgen
#yesterday de datum komt overeen met gisteren
#thisweek de datum valt tijdens de huidige kalenderweek; dit is de week die start op de meest recente maandag en loopt tot en met de volgende zondag
#previousweek de datum valt in de voorbije kalenderweek; dit is de week die eindigt voor de meest recente maandag
#nextweek de datum valt in de volgende kalenderweek; dit is de week die begint na de volgende zondag
#thismonth de datum valt in de huidige kalendermaand
#previousmonth de datum valt in de vorige kalendermaand
#nextmonth de datum valt in de volgende kalendermaand
#thisyear de datum valt binnen het huidige kalenderjaar
#previousyear de datum valt binnen het voorbije kalenderjaar
#nextyear de datum valt binnen het volgende kalenderjaar
#nextXdays de datum valt in de X aantal kalenderdagen volgend op vandaag; #next1days is hetzelfde als #tomorrow
#previousXdays de datum valt in de X aantal kalenderdagen voorafgaand aan vandaag; #previous1days is hetzelfde als #yesterday
#nextXweeks de datum valt in de X aantal kalenderweken volgend op de kalenderweek van vandaag; #next1weeks is hetzelfde als #nextweek
#previousXweeks de datum valt in de X aantal kalenderweken voorafgaand aan de kalenderweek van vandaag; #previous1weeks is hetzelfde als #previousweek
#nextXmonths de datum valt in de X aantal kalendermaanden volgend op de kalendermaand van vandaag; #next1months is hetzelfde als #nextmonth
#previousXmonths de datum valt in de X aantal kalendermaanden voorafgaand aan de kalendermaand van vandaag; #previous1months is hetzelfde als #previousmonth
#nextXyears de datum valt in de X aantal kalenderjaren volgend op het kalenderjaar van vandaag; #next1years is hetzelfde als #nextyear
#previousXyears de datum valt in de X aantal kalenderjaren voorafgaand aan het kalenderjaar van vandaag; #previous1years is hetzelfde als #previousyear

Merk op dat bij de #nextX… en #previousX… keywords de X dient vervangen te worden door een cijfer; event:date:#nextXdays zal niet werken, event:date:#next7days wel.

Bevragen van custom data§

We kunnen met de zoektaal ook Yesplan elementen zoeken op basis van de waarde van customdatavelden. Hiervoor moet het keyword van het customdataveld gebruikt worden als keyword in de zoekopdracht. Je kan in Yesplan keywords van customdatavelden automatisch laten genereren of zelf instellen.

Tip

Zie de sectie Keyword voor meer informatie over het automatisch of manueel instellen van keywords in de systeeminstellingen.

In onderstaand voorbeeld zie je een customdataveld met het label “Manager”, dat automatisch het keyword production_info_manager krijgt.

Je kan dan vervolgens alle resources opvragen waarvan de “Manager” “Sarah Peeters” is met de volgende zoekopdracht:

resource:production_info_manager:"Sarah Peeters"

Tip

Wil je in een infovenster het keyword van customdatavelden makkelijk achterhalen? Druk dan de toetsen CTRL-ALT (Windows) of CTRL-Option (macOS) in: het label van het veld verandert in het keyword. Wil je het keyword kopiëren? Klik het label dan aan terwijl je diezelfde toetsen ingedrukt houdt.

Onderstaande afbeelding toont de definitie van een customdataveld met het label “Operator” waaraan de beheerder zelf het keyword operator heeft toegekend.

Alle resourceboekingen waarbij dit customdataveld de waarde “Jan Janssens” heeft kunnen dan opgevraagd worden met de volgende zoekopdracht:

resourcebooking:operator:"Jan Janssens"

Opmerking

Als je zelf een keyword instelt voor een customdataveld, kan je het automatisch genereerde keyword niet gebruiken in de zoektaal voor dat veld:

  • De zoekopdracht resourcebooking:production_info_operator:"Jan Janssens" zal niet meer werken als voor dat veld het keyword “operator” toegekend is.
  • Je kan dan wel resourcebooking:operator:"Jan Janssens" gebruiken.

Bij het zoeken naar een Ja/Nee-veld moet de waarde in het Engels opgegeven worden. Gebruik dus de waarden yes, no, true of false. Als je bijvoorbeeld een customdataveld wilt bevragen om beschadigde resources op te zoeken, dan kan je de volgende zoekopdracht gebruiken:

resource:properties_state_damaged:yes

Je kan ten slotte ook zoeken naar de publicatiestatus van een evenement in de ticketing-integratie:

  • event:publicatieknop-keyword:active toont alle Yesplan evenementen die gekoppeld zijn met de integratie
  • event:publicatieknop-keyword:"" geeft alle Yesplan evenementen weer die niet gekoppeld zijn met een integratie
  • event:publicatieknop-keyword:error zoekt alle Yesplan evenementen waarbij zich een fout voordeed bij het koppelen met de integratie.

Bevragen van numerieke velden§

Bij keywords waarbij de gezochte eigenschap een getal is, gelden er andere regels voor het vinden van een overeenkomst dan bij tekstuele eigenschappen.

Bij tekstuele eigenschappen geldt dat er een overeenkomst is als de waarde van de eigenschap het opgegeven word bevat. Bijvoorbeeld, de zoekopdracht event:name:othello zal een evenement genaamd “Othello” vinden alsook een evenement genaamd “Othello 2”.

Bij getallen geldt dat er een overeenkomst is als de waarde exact overeenkomt. Bijvoorbeeld, wanneer vrije_plaatsen het keyword is van een numeriek customdataveld, dan zal het resultaat van de zoekopdracht event:vrije_plaatsen:23 enkel die evenementen vinden waarbij de waarde van het customdataveld exact ‘23’ is, maar niet de evenementen waarbij de waarde van het customdataveld ‘123’ of ‘234’ is.

Merk op dat deze exacte overeenkomst niet geldt voor gewone invulvelden waar je (al dan niet altijd) een getal invult. Een numeriek invulveld is een specifiek type customdataveld.

Bevragen van adressen van contacten§

Een contact kan een of meerdere adressen hebben. Elk van deze adressen zijn van een bepaald adrestype. Er is per contact steeds één adres die als “standaard” gemarkeerd wordt, het standaardadres. Adrestypes worden beheerd via de systeeminstellingen.

De keywords address, street, zip, city, country en countrycode bevragen steeds het standaardadres. De zoektaal voorziet echter ook keywords voor al de verschillende types van adressen die bij een contact kunnen voorkomen. Deze varianten worden gevormd door het standaard keyword, voorafgegaan door de naam van het adrestype en een _ (underscore).

Bijvoorbeeld, voor het adrestype “Facturatie” zijn de varianten de keywords facturatie_address, facturatie_street, facturatie_zip, facturatie_city, facturatie_country en facturatie_countrycode.

Merk op, bij het samenstellen van het keyword gelden dezelfde regels als bij de automatische toekenning van keywords voor customdatavelden: spaties en speciale karakters (zoals ! ? ; enzovoort) worden verwijderd, en hoofdletters worden omgezet naar kleine letters. (Een beheerder kan het keyword ook terugvinden bij de systeeminstellingen, onder het tabblad “Contacten” bij het onderdeel “Adrestypes”.)

Bijvoorbeeld, voor het adrestype “Siège Social” zijn de keywords siegesocial_address, siegesocial_zip, enzovoort.

De varianten van de keywords bevragen steeds het adres van een bepaald adrestype, ongeacht of dit adres gemarkeerd is als het standaardadres.

Bijvoorbeeld, met de zoekopdracht contact:city:Gent zoek je alle contacten waarvan de woonplaats van het standaardadres “Gent” bevat. Met de zoekopdracht contact:facturatie_city:Gent zoek je alle contacten waarvan de woonplaats van het adres van het type “facturatie” het woord “Gent” bevat.