Overview

Callbacks + Events

Hook applicativi, callback lifecycle ed eventi custom tra componenti.

Screenshot reference (manuale utente)

  • manual__callback__01.png: configurazione callback/eventi nel metadata editor.

Metadati tabella (lifecycle callback)

Descrizione:

questi metadati orchestrano gli hook principali del ciclo dati della route.

  • md_before_save: callback eseguita prima della sync (insert/update/delete), utile per validazioni e trasformazioni payload.
  • md_after_save: callback post-sync, utile per notifiche UI, refresh dipendenti, side effects.
  • md_after_load: callback dopo il caricamento dati, utile per inizializzazioni runtime e post-processing record.
  • md_conditional_update_rule: regola condizionale che abilita/blocca update sul record corrente.
  • md_conditional_delete_rule: regola condizionale che abilita/blocca delete sul record corrente.

Snippet (esempio tabella):

  • md_after_load = "utility.onAfterLoad"
  • md_before_save = "utility.beforeSaveGuard"
  • md_after_save = "utility.afterSaveNotify"
  • md_conditional_update_rule = "record.status !== 'LOCKED'"
  • md_conditional_delete_rule = "record.canDelete === true"

Metadati colonna (eventi field-level)

Descrizione:

questi metadati gestiscono comportamento reattivo e validazione puntuale sui singoli campi.

  • mc_selection_changing_custom_function: hook prima del cambio valore (pre-change).
  • mc_selection_changed_custom_function: hook dopo il cambio valore (post-change).
  • mc_default_value_callback: calcolo valore di default dinamico.
  • mc_suggest_value_callback: callback per suggerimento/auto-popolamento valore.
  • mc_validation_custom_callback: validazione custom business sul campo.
  • mc_logic_converter_read_callback: conversione valore in lettura (rendering/model mapping).
  • mc_logic_converter_write_callback: conversione valore in scrittura (prima del save).
  • mc_value_change_trigger_event: evento UI che scatena il cambio valore (keyup, change, ecc.).

Snippet (esempio colonna):

  • mc_default_value_callback = "utility.defaultProvince"
  • mc_selection_changing_custom_function = "utility.beforeProvinceChange"
  • mc_selection_changed_custom_function = "utility.afterProvinceChange"
  • mc_validation_custom_callback = "utility.validateProvince"
  • mc_value_change_trigger_event = "change"

Flusso tipico eventi

1. Caricamento record: md_after_load.

2. Interazioni utente sui campi: mc_selection_changing_custom_function -> mc_selection_changed_custom_function.

3. Salvataggio: md_before_save.

4. Persistenza completata: md_after_save.

Note operative

  • Mantenere callback idempotenti e con gestione errori esplicita.
  • Evitare logica pesante nei callback di campo ad alta frequenza (keyup).
  • Usare callback tabella per orchestrazione generale e callback colonna per logica puntuale.

Risultato:

  • comportamento prevedibile tra load/edit/save;
  • separazione chiara tra regole globali (tabella) e regole locali (colonna).

Screenshot

callbacks-events / main
callbacks-events / main