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 je zoekt:

  • Indien je enkel op zoek bent naar evenementen dan gebruik je event als scope, voor resources gebruik je resource enz.
  • Het overzicht van scopes toont een lijst van alle scopes die Yesplan ondersteunt.
  • Een scope is steeds een Engelstalige term, ook al staat Yesplan ingesteld in een andere taal.

Het keyword bepaalt op welke eigenschap van een element je zoekt:

  • Enkele voorbeelden hiervan zijn name, location, date, label enz.
  • Het overzicht van keywords toont een lijst van alle geldige keywords die je kan gebruiken in de Yesplan zoektaal en de scope waarin ze van toepassing zijn.
  • Een keyword is steeds een Engelstalige term, ook al staat Yesplan ingesteld in een andere 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.
  • Het word dat je opgeeft in de zoekopdracht (bijvoorbeeld ‘geluid’) moet slechts een onderdeel zijn van de effectieve waarde in Yesplan. Zo zal de voorgaande zoekopdracht ook alle resources met een rol ‘geluidstechnicus’ terugvinden.
  • Het word is hoofdletterongevoelig: ‘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 verschijnen. 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 datum of een getal is, zal de overeenkomst exact moeten zijn.

Een word mag geen spaties bevatten. Als je toch spaties wilt toevoegen, kan dat 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.

Ten slotte 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.

Tip

Als je een evenement wilt vinden via de Yesplan ID, moet je steeds het keyword gebruiken:

id:3046435073-1631780039

Onderstaande zoekopdracht zal geen resultaten opleveren:

3046435073-1631780039

Afwezigheid van waardes§

Een speciaal geval 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:""

Je kan de afwezigheid van een waarde enkel aftoetsen 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, die je noteert 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:*

Wanneer je een joker gebruikt als word, verschijnen er enkel resultaten 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 verschijnen.

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:*

Je kan de joker ook als keyword gebruiken. 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.

Exacte datum§

Bij datums kan je zoeken naar een exacte overeenkomst met een bepaalde datum. Een datum geef je op 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.
  • Het datumformaat in de systeeminstellingen heeft geen invloed op het datumformaat in de zoektaal. Je moet in de zoektaal altijd het formaat dd-mm-jjjj gebruiken, bijvoorbeeld ‘28-03-2013’ voor 28 maart 2013, zelfs als in de systeeminstellingen bijv. het formaat “Maand Dag Jaar” geselecteerd is.

Periode§

De zoektaal biedt ook de mogelijkheid om een periode te gebruiken als word:

  • Noteer een periode door middel van twee datums, gescheiden door TO.
  • Het is noodzakelijk 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

Je kan bovendien zoeken binnen een periode op of na een bepaalde datum met het keyword dateafter. Op die manier kunnen we bijvoorbeeld alle evenementen opvragen op of na 15 maart:

event:dateafter:15-03-2013

Dynamische datums§

Naast het zoeken op een specifieke datum, of naar een specifieke periode, biedt de zoektaal ook nog een aantal dynamische datums aan.

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 vind je in de tabel hieronder:

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.

Opmerking

Bij de #nextX… en #previousX… keywords moet je de X vervangen 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 hun customdatavelden. Hiervoor moet je het keyword van het customdataveld gebruiken 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

  • Als je in een infovenster het keyword van customdatavelden makkelijk wilt achterhalen, druk dan de toetsen Ctrl+Alt (Windows) of Ctrl+Option (macOS) in. Het label van het veld verandert dan in het keyword.
  • Als je het keyword wilt 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.

Je kan dan alle resourceboekingen waarbij dit customdataveld de waarde ‘Jan Janssens’ heeft opvragen 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 je de waarde in het Engels opgeven. 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: Toon alle Yesplan evenementen die gekoppeld zijn met de integratie.
  • event:publicatieknop-keyword:"": Geef alle Yesplan evenementen weer die niet gekoppeld zijn met een integratie.
  • event:publicatieknop-keyword:error: Zoek 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.

Deze exacte overeenkomst geldt niet 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 dat als standaard gemarkeerd is, het standaardadres. Je kan adrestypes beheren in 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. Je vormt deze varianten 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 ! ? ; enz.) worden verwijderd, en hoofdletters worden omgezet naar kleine letters. Een beheerder kan het keyword ook terugvinden in “Systeeminstellingen” > “Contacten” > “Adrestypes”.

Bijvoorbeeld, voor het adrestype ‘Siège Social’ zijn de keywords siegesocial_address, siegesocial_zip enz.

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.