Auto fields
Gli auto fields sono campi speciali compilati automaticamente secondo una formula. Puoi usarli per calcolare valori automaticamente in base ad altri campi. È una delle funzionalità più potenti di Bobuild.
Quando un campo è impostato su auto, sarà in sola lettura e quindi non modificabile direttamente dagli utenti. Le azioni create/update dei Task che assegnano a un campo automatico (o alla chiave primaria) vengono ignorate a runtime — App Health avvisa se un Task le punta ancora. I campi automatici restano visualizzati nei Widget dove li vuoi vedere e disponibili ovunque imposti condizioni.
Se ti serve solo un calcolo mentre l'utente compila un form (ad esempio il totale riga da prezzo × quantità), usa invece una Live formula nel form — viene eseguita nel browser mentre digita e non richiede un auto field.
Come creare un auto field
Qualsiasi campo può essere impostato su auto, quindi il primo passo è crearlo come faresti con qualsiasi altro campo. Poi vai nelle impostazioni del campo e apri la sezione "Automatic Value":
Ora clicca su "Enable Automatic Value" e verrà creata la tua prima regola:
Ta-dah! Ora sei pronto a configurare la tua formula.
Formula
Ci sono diversi tipi di formule che puoi usare.
Queste formule sono disponibili per qualsiasi campo:
- Set to a given value: è la formula più semplice. Usala per impostare un valore fisso per il campo. È soprattutto utile quando definisci più regole condizionali per lo stesso auto field (vedi sotto)
- Set to a field value: copia il valore da un altro campo dello stesso tipo. Il campo sorgente può appartenere allo stesso oggetto o a un oggetto collegato
Queste formule sono disponibili per i campi testuali:
- Set to a text expression: valuta l'espressione fornita e imposta il campo sulla stringa risultante (vedi sotto)
- Set to the concatenated values of a field: prende tutti i valori di un campo di un oggetto collegato e li concatena in un'unica stringa usando il separatore specificato. Ad esempio, puoi usarla per ottenere i nomi di tutti gli articoli in un ordine. Puoi opzionalmente Order by un campo dell'oggetto correlato (ascendente o discendente) così l'elenco concatenato è stabile e leggibile.
- Set to the {first, last} value of a field: prende il primo (o l'ultimo) valore di un campo da un gruppo di record collegati. Ad esempio, puoi usarla per ottenere il nome del primo articolo in un ordine
Queste formule sono disponibili per i campi numerici:
- Set to a numeric expression: valuta l'espressione fornita e imposta il campo sul numero risultante (vedi sotto)
- Set to the count of records of type: conta i record collegati del tipo specificato e imposta il campo sul numero risultante. Ad esempio, puoi usarla per contare il numero di articoli in un ordine
- Set to the {sum, average, minimum value, maximum value} of a field: calcola la funzione richiesta su un gruppo di record collegati. Ad esempio, puoi usarla per calcolare il prezzo totale di un ordine
Queste formule sono disponibili per i campi data/ora:
- Set to a date expression: valuta l'espressione fornita e imposta il campo sulla data/ora risultante (vedi sotto)
Combinare più regole
Quando un auto field ha più regole condizionali, scegli come combinare i risultati sotto Set this field:
- to the last rule that matches — comportamento classico: una regola vincente
- to the aggregated values of all the matching rules — unisce i contributi di ogni regola corrispondente
- to the aggregated unique values of all the matching rules — come sopra, ma i valori duplicati vengono scartati
Aggregate unique è utile per testo in stile tag costruito da più sorgenti opzionali dove la stessa etichetta non deve comparire due volte.
Tutte le formule che lavorano su record collegati possono essere usate anche su record non collegati, specificando criteri di filtro personalizzati.
Ad esempio, supponi di avere un oggetto chiamato Event e vuoi contare il numero di eventi che si svolgono nello stesso giorno: puoi creare un auto field chiamato events_count e impostare la formula su "Set to the count of records of type Event where start_date is equal to {start_date}".
Espressioni numeriche
I campi numerici supportano espressioni numeriche. Queste espressioni servono per eseguire calcoli semplici sui valori di altri campi e ottenere il totale risultante. Qualsiasi altro campo numerico può essere usato nell'espressione, così come qualsiasi campo non numerico se trasformato con una funzione placeholder.
| Espressione | Descrizione |
|---|---|
{amount} + {tax} | Somma di due campi |
({price1} + {price2}) / 2 | Media di due campi |
({end_date:to_seconds}-{start_date:to_seconds})/86400 | Numero di giorni tra due campi data |
Espressioni testuali
I campi testuali possono essere popolati con espressioni testuali che consentono un'ampia gamma di operazioni usando le funzioni placeholder.
| Espressione | Risultato di esempio | Descrizione |
|---|---|---|
P{id} | P42 | Concatenazione della lettera "P" con l'ID del record |
P{id:lpad(5, '0')} | P00042 | Concatenazione della lettera "P" con l'ID del record, con padding |
{name} {lastname} | John Smith | Nome completo di una persona |
{name:upper} {lastname:upper} | JOHN SMITH | Nome completo di una persona, in maiuscolo |
Espressioni data/ora
I campi data/ora possono essere popolati con espressioni che usano le funzioni placeholder.
| Espressione | Descrizione |
|---|---|
{start_date:sub_days(3)} | Calcola una data prima dell'inizio di un evento, utile per inviare un promemoria o impostare una scadenza |
{birth_date:add_years(18)} | Calcola la data in cui una persona raggiunge la maggiore età (da usare altrove nell'app per eseguire un'azione basata su un controllo dell'età) |
Regole condizionali
Come puoi vedere, la regola ha una sezione "When" che ti permette di definire una condizione. Se non imposti alcuna condizione, la formula verrà sempre applicata. Se imposti una condizione, la formula verrà applicata solo quando la condizione è soddisfatta. Con il pulsante più a destra puoi aggiungere quante regole vuoi. Nota che le regole vengono valutate nell'ordine in cui sono elencate.
Supponi di voler applicare uno sconto ai tuoi clienti in base all'età. Puoi creare un auto field chiamato discount e impostare due regole condizionali così:

Se nessuna regola auto corrisponde a un record, il campo verrà popolato con il valore impostato come valore predefinito:

Prestazioni e ricalcolo
Su app grandi, i campi automatici si ricalcolano quando cambiano i dati sorgente. Per import pesanti o job batch puoi disabilitare temporaneamente i campi automatici in Settings → Advanced, poi riabilitarli e monitorare il Recalculation Log (progresso, ETA, stop) finché i valori non sono di nuovo coerenti.
Recipe correlate
- Somma prezzi di record collegati — totale ordine dalle righe
- Menu a tendina di opzioni con prezzi — Reference al catalogo + copia del prezzo sulla riga
- Totale riga con una live formula — quantità × prezzo istantaneo su un form
- Fasce di sconto — regole percentuali condizionali
- Conta figli aperti — conteggio filtrato di record collegati
- Contatori sequenziali senza buchi — quando i codici basati su
{id}lascerebbero buchi