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 jeresource
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.