Ogni chiamata, tranne ImportMulti, invia un oggetto WebServiceRequest. Contiene l'operazione, il tipo di dato, i parametri di lettura e, per le scritture, la lista dei record.
I campi di WebServiceRequest
| Campo | Tipo | Obbligatorio | A cosa serve |
|---|
DataOperation | Intero (enumerazione) | Sì | L'operazione: 0 INSERTORMODIFY, 1 DELETE, 2 TRUNCATETABLE, 3 QUERY, 4 DELETEALLIMPORTCORRISPONDENZE, 5 DELETEIMPORTCORRISPONDENZEBYTABLE. |
TypeObject | Intero (DataType) | Sì | Il tipo di dato su cui operare. Decide anche quale lista viene letta o restituita. |
GuidPC | Testo | Sì per QUERY e conferme | Identificativo stabile del programma o della postazione che chiama, scelto da te (per esempio magazzino-milano o un GUID). Serve alla sincronizzazione incrementale: ogni postazione ha le sue conferme. Usa sempre lo stesso valore. |
SQLFilter | Testo | No | Solo per QUERY: condizione SQL aggiunta alla lettura. Vedi leggere i dati. |
QueryParameter | QueryParameter | No | Solo per QUERY: paginazione, conteggio, filtri per evento e deposito, gestione delle conferme. |
AllInsert | Vero/falso | No | Solo per INSERTORMODIFY: con true i record vengono aggiunti senza cercare se esistono già. È più veloce per caricare un archivio vuoto; usalo solo lì, perché se un record esiste già la scrittura non va a buon fine. |
ObjectList<Classe> | Elenco | Sì per scritture e cancellazioni | I record da scrivere o cancellare, nella lista del tipo: ObjectListBrand per BRAND, ObjectListProduct per PRODUCT e così via. La lista di ogni tipo è indicata nella sua pagina e nell'elenco dei tipi di dato. Le altre liste vanno lasciate vuote o omesse. |
Le operazioni
| Valore | Nome | Usa | Effetto |
|---|
| 0 | INSERTORMODIFY | la lista del tipo | Per ogni record: cerca per campi chiave, aggiorna se esiste, crea se non esiste. Dettagli |
| 1 | DELETE | la lista del tipo, con i soli campi chiave | Cancella i record con quella chiave. |
| 2 | TRUNCATETABLE | solo TypeObject | Svuota l'archivio del tipo. Non si annulla. |
| 3 | QUERY | SQLFilter, QueryParameter | Legge i record. Dettagli |
| 4 | DELETEALLIMPORTCORRISPONDENZE | GuidPC | Azzera tutte le conferme di ricezione della postazione. |
| 5 | DELETEIMPORTCORRISPONDENZEBYTABLE | GuidPC, TypeObject | Azzera le conferme della postazione per quel tipo. |
Una richiesta per tipo
Una richiesta lavora su un solo tipo di dato. Per inviare articoli e prezzi fai due chiamate, prima gli articoli e poi i prezzi; per leggere più tipi in una volta c'è ImportMulti. Nelle scritture puoi mettere molti record nella stessa lista: blocchi da qualche centinaio di record sono un buon compromesso tra numero di chiamate e dimensione del corpo (per le immagini, blocchi più piccoli).
L'ordine degli archivi
Il server non rifiuta un articolo che usa un codice di categoria inesistente, ma il dato resta scollegato. Invia quindi prima gli archivi di base e poi quelli che li usano:
- tabelle: Codici IVA, Unità di misura, Marchi, Categorie merceologiche, Sottocategorie merceologiche, Reparti, Settori, Listini, Depositi, Varianti, Valori delle varianti, Pagamenti;
- anagrafiche: Clienti e fornitori, Destinazioni diverse;
- articoli: Articoli;
- dati degli articoli: Prezzi degli articoli, Immagini degli articoli, File degli articoli, Giacenze;
- documenti: Documenti.