Overview

Import

Abilita l'importazione dati da file Excel (.xls, .xlsx) nella route corrente della tabella metadata.

Quando attivo, nel List Grid compare un pulsante in toolbar (Import XLS/XLSX) che apre il file picker e invia il file al metodo di import già disponibile lato backend.

Metadato tabella

Il toggle principale e:

  • md_importable

Significato: mostra/nasconde il pulsante di import nella toolbar del List Grid.

Valori: true | false.

Default: false (se assente).

Extra props (md_props_bag)

Le opzioni di import si configurano in extraProps.import (derivate da md_props_bag).

Snippet 1JSON
{
  "import": {
    "enabled": true,
    "skipsettings": false,
    "allowedExtensions": ["xls", "xlsx"],
    "import_type": "I",
    "commit_level": "R",

Note operative

  • Il pulsante e visibile se md_importable = true.
  • Il file e validato lato client per estensione (xls, xlsx) prima dell'upload.
  • L'import viene eseguito sulla route corrente (md_route_name) del datasource attivo.
  • skipsettings:

- false (default): apre il dialog intermedio per scegliere opzioni import prima dell'upload.

- true: salta il dialog e avvia upload/import diretto usando le opzioni già definite in md_props_bag.import.

  • Default consigliati nel suggest:

- use_column_captions = "C" (use column captions).

- use_descriptive_fkey = true.

UI e progress

  • Dopo la conferma import, si apre un dialog di progress con percentuale realtime.
  • Azioni disponibili:

- Continua in background: chiude il dialog e crea una notifica di progress.

- Annulla import (rollback): annulla e fa rollback.

- Stop e commit parziale: interrompe e conferma quanto fatto.

  • A fine import viene creata una notifica riassuntiva (stesso testo del toast); click porta alla route dell'import senza refresh se si e già sulla stessa pagina.

Comportamento PK esistente (import solo insert)

Se import_type = "I" e la PK del record esiste già:

  • l'insert viene saltato;
  • il record viene conteggiato nel riepilogo come “inserimenti saltati (PK esistente)”.