Universal Web Platform · Scrivere i dati

Scrivere i dati: INSERTORMODIFY, DELETE e TRUNCATETABLE

Per scrivere usi INSERTORMODIFY (crea o aggiorna) e DELETE (cancella), con i record nella lista del tipo.

Come viene salvato ogni record

  1. Il server esegue i controlli della classe: se manca un campo obbligatorio il record viene scartato con un messaggio come «Codice non specificato».
  2. Cerca il record con i campi chiave: se lo trova lo aggiorna, altrimenti lo crea. Con AllInsert a true salta la ricerca e crea sempre.
  3. Scrive tutti i campi della classe, e registra la data dell'ultima modifica.
  4. Per immagini e file salva il contenuto nella cartella del sito e registra il percorso.
INSERTORMODIFY riscrive il record intero. Un campo che non invii prende il valore predefinito e cancella quello salvato; un'immagine non inviata viene tolta dal record. Per cambiare solo alcuni campi leggi prima il record con QUERY, modificalo e rinvialo completo.

Errori riga per riga

I record della lista vengono salvati uno dopo l'altro nella stessa transazione. Un record che non supera i controlli non ferma gli altri: finisce in ErrorList con ElementNumber uguale alla sua posizione nella lista (da 0) e SourceError nella forma «Riga n° 3: Codice non specificato» (numerata da 1), e lo Status della risposta diventa ALERT.

Dopo ogni scrittura controlla quindi lo stato: se non è OK rinvia solo i record elencati, dopo averli corretti.

Codici e numerazioni

Il server non assegna codici: ogni record arriva con la sua chiave completa, decisa da chi scrive. Per i documenti questo significa tipo, esercizio, serie, registro, numero e controparte; per i prezzi il progressivo dell'articolo; per le immagini l'indice.

Cancellare

Con DELETE invii nella lista del tipo oggetti con i soli campi chiave valorizzati. Un record che non esiste non genera errore. Per cancellare tutto un archivio c'è TRUNCATETABLE, che non chiede la lista e non si può annullare.

JSON · cancellare una sottocategoria
{
  "DataOperation": 1,
  "TypeObject": 3,
  "GuidPC": "gestionale-01",
  "ObjectListSottoCategoriaMerceologica": [
    { "CodiceCategoria": "ABB", "Codice": "MAGLIE" }
  ]
}

Prima pubblicazione di un archivio grande

Per caricare la prima volta decine di migliaia di record: svuota l'archivio con TRUNCATETABLE, poi invia blocchi con AllInsert a true. Dopo una pubblicazione completa del catalogo chiama la ricostruzione dopo l'esportazione.