Universal Web Platform · ImportMulti

ImportMulti: più tipi di dato in una chiamata, con le conferme

ImportMulti è il protocollo per leggere più tipi di dato in una sola chiamata e, nella stessa chiamata, confermare i record ricevuti al giro precedente. Riduce di molto il numero di chiamate di una sincronizzazione completa. È di sola lettura: per scrivere si usa il protocollo normale.

Indirizzo
POST https://<tuo-dominio>/webservice.aspx?Key=<chiave>&serialize=json&operationmulti=importmulti

Trasporto, compressione e formato sono gli stessi del protocollo normale; cambia l'oggetto inviato.

WebServiceMultiRequest

CampoTipoObbligatorioA cosa serve
ProtocolVersionInteroSìVersione del protocollo: deve essere 1.
GuidPCTestoSìIdentificativo della postazione, da 1 a 256 caratteri. Vale per tutte le letture e tutte le conferme.
RequestsElenco di WebServiceMultiItemRequestSìLe letture: una per tipo di dato.
ReceivedRecordsElenco di WebServiceMultiReceiptNoLe conferme dei record ricevuti al giro precedente.

WebServiceMultiItemRequest

CampoTipoA cosa serve
TypeObjectDataTypeIl tipo da leggere.
QueryParameterQueryParameterParametri della lettura. Counting viene ignorato; LimitRecord a 0 diventa 1000 (20 per immagini e file); senza IgnoreImportRecord la lettura parte sempre dal primo record. SQLFilter qui non è disponibile.

WebServiceMultiReceipt

CampoTipoA cosa serve
TypeObjectDataTypeIl tipo del record confermato.
KeyTestoLa chiave del record, al massimo 4096 caratteri, composta come per le conferme.

I limiti

LimiteValore
Tipi per richiestaal massimo 64, senza ripetizioni
Record per tipoal massimo 1000
Record per tipo con fileal massimo 20 per PRODUCTIMAGE, PRODUCTFILE, DHMANIMALIIMAGE, DHMANIMALIFILE, DHMUSERFILEALLEGATI
Record richiesti in totaleal massimo 10.000 (somma dei LimitRecord)
Conferme per richiestaal massimo 10.000

Permessi e ordine di esecuzione

  1. Il server controlla l'intera richiesta prima di fare qualsiasi cosa: limiti, permesso di lettura su ogni tipo, permesso di scrittura su RECEVEIDCLASS e di lettura sul tipo di ogni conferma.
  2. Registra tutte le conferme in una sola transazione. Se anche una sola non riesce, non esegue nessuna lettura e risponde ALERT: così non perdi record.
  3. Esegue le letture nell'ordine richiesto e mette ogni risposta in Responses.

WebServiceMultiResponse

CampoTipoA cosa serve
ProtocolVersionInteroVersione del protocollo.
StatusTestoOK; WARNING se una lettura ha avuto problemi; ALERT se le conferme non sono state registrate; FAILED se la richiesta non è valida; keyinvalid o ko per chiave e errori generali.
ResponseStringTestoMessaggio del server.
LastSQLExecuteTestoUltima istruzione eseguita.
ErrorListElenco di WebServiceErrorErrori della richiesta nel suo insieme.
ResponsesElenco di WebServiceResponseUna risposta per ogni lettura, nello stesso ordine, con i record nella lista del tipo.
ReceiptResponseWebServiceResponseEsito della registrazione delle conferme.

Il ciclo completo

JSON · articoli, prezzi, giacenze e immagini con le conferme del giro prima
{
  "ProtocolVersion": 1,
  "GuidPC": "app-magazzino-01",
  "Requests": [
    { "TypeObject": 19, "QueryParameter": { "LimitRecord": 500 } },
    { "TypeObject": 20, "QueryParameter": { "LimitRecord": 1000 } },
    { "TypeObject": 32, "QueryParameter": { "LimitRecord": 1000 } },
    { "TypeObject": 21, "QueryParameter": { "LimitRecord": 20 } }
  ],
  "ReceivedRecords": [
    { "TypeObject": 19, "Key": "A0001" },
    { "TypeObject": 20, "Key": "A0001|1" }
  ]
}
  1. Primo giro: ReceivedRecords vuoto.
  2. Salvi i record ricevuti e prepari le loro chiavi.
  3. Giro successivo: le stesse Requests con le conferme in ReceivedRecords.
  4. Ti fermi quando tutte le Responses tornano vuote, e mandi un'ultima chiamata con le sole conferme rimaste e Requests vuoto.