Calendar-Loop: Guida ai filtri (MECE) per _bCalendarRek_(...)
Con il Calendar-Loop puoi visualizzare dinamicamente gli appuntamenti (onOffice Appointments), ad esempio tutti i futuri appuntamenti relativi agli slot di un immobile. Per aiutarti a creare filtri in modo rapido e corretto, ecco la guida di riferimento completa e ben strutturata.
1) Guida rapida: esempio minimale
Solo periodo (obbligatorio):
... Visualizzazione degli appuntamenti ...
_eCalendarRek_
Standard tipico (futuro, non completato, non annullato):
...
_eCalendarRek_
2) Sintassi del filtro (grammatica)
_bCalendarRek_("key:value;key2:op:value2;key3:a,b,c")
-
;significa E (tutte le condizioni devono corrispondere) -
,significa O all'interno di una chiave (è sufficiente almeno un valore) -
key:valueè identico akey:=:value -
In caso di
likeutilizzi i caratteri jolly:%TERMIN-SLOT%
3) MECE: quali filtri sono disponibili?
A) Parametri obbligatori (proprio questi due)
-
startDate:YYYY-MM-DD -
endDate:YYYY-MM-DD
Suggerimento: "Solo futuro" =
startDateimpostare su "oggi".
B) Filtri API (lato server, performanti)
B1) Flag booleani (i valori sono MECE: {true,false})
-
isCancelled:true|false -
isDone:true|false -
isRecurrent:true|false
B2) Filtri partecipanti (elenchi)
-
userIds:1,2,3 -
groupIds:10,11
B3) Filtri per testo/tipo/autore (operatori SQL)
Queste chiavi supportano gli operatori:
-
subject -
notes -
type -
createdBy
Operatori SQL (elenco MECE):=, !=, <, <=, >, >=, between, like, not like, in, not in
Esempi:
notes:not like:%intern%
type:=:Visita
createdBy:=:max.mustermann
C) Filtri Propform/PHP (ulteriormente possibili, su campi dati)
Tutto ciò che è contenuto nei data campi dell'AppointmentList può essere ulteriormente filtrato, anche in modo annidato tramite notazione puntuale.
Esempi tipici:
-
estate.id:12345(Appuntamenti relativi a un immobile) -
status.value:active -
confirmationStatus:sent -
private:false
Nota: l'API filtra ciò che l'API è in grado di filtrare. Tutto il resto viene filtrato successivamente da Propform.
4) Valori consentiti (MECE) per i campi tipici
status.value
Valori consentiti:
-
active -
completed -
canceled -
participantsAvailable
Esempio:
confirmationStatus
Valori consentiti:
-
canceled -
confirmed -
confirmed and canceled -
not-set -
sent
Esempio:
Booleani
Consentito: true oppure false (consigliato: scrivere esattamente così)
5) Esempi pratici (copia/incolla)
5.1 Appuntamenti futuri di un immobile, solo slot
_DataOraAppuntamento –
_OggettoAppuntamento_eCalendarRek_
5.2 Appuntamenti futuri di un immobile fisso
...
_eCalendarRek_
5.3 Solo appuntamenti di un utente / di un gruppo
...
_eCalendarRek_
...
_eCalendarRek_
5.4 L'oggetto deve consentire più termini (OR)
...
_eCalendarRek_
5.5 Appuntamenti ricorrenti vs. appuntamenti singoli
...
_eCalendarRek_
6) Prompt copia/incolla per l'IA (per garantire agli utenti filtri puliti)
Modello di prompt (basta copiare e compilare):
:- Obbligatorio: startDate, endDate (YYYY-MM-DD)
- AND = ; OR all'interno di una chiave = ,
- Operatori: =, !=, <, <=, >, >=, between, like, not like, in, not in-
like con %...%
- Inoltre, sono consentiti filtri PHP sui campi dati (ad es. estate.id, status.value, confirmationStatus, private)
Obiettivo
:- Periodo: da [START] a [END]
- Immobile: estate.id = [ESTATE_ID] (o _Id)
- Oggetto contiene: [STRING]
- Opzionale: isCancelled/isDone/isRecurrent, userIds, groupIds, confirmationStatus, status.value
Dammi:
1) la stringa di filtro tra virgolette
2) un breve snippet di esempio con _bCalendarRek_ ... _eCalendarRek_
7) Ostacoli tipici (brevemente)
-
startDate/endDatesono obbligatori, altrimenti (a seconda dell'implementazione) si ottengono intervalli di tempo predefiniti o nessun risultato. -
Se utilizzi macro come
_Idnel filtro, gli argomenti del ciclo devono essere risolti in anticipo (propform lo fa automaticamente se hai attivato la logica di pre-risoluzione). -
conflictscomedatacampo può portare a risposte vuote a seconda della configurazione → ometterlo se necessario.