Per scrivere usi INSERTORMODIFY (crea o aggiorna) e DELETE (cancella), con i record nella lista del tipo.
Come viene salvato ogni record
- Il server esegue i controlli della classe: se manca un campo obbligatorio il record viene scartato con un messaggio come «Codice non specificato».
- 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. - Scrive tutti i campi della classe, e registra la data dell'ultima modifica.
- 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.