<< Fare clic per visualizzazione il sommario >> Percorso: API di piattaforma > JamioPlug > JamioPlug Elastic Storage > MergeByCatalog |
Esegue una serie di aggiornamenti su un indice del plug ElasticStorage utilizzando i dati presenti in un catalogo. I Dataset dell'indice da aggiornare sono individuati tramite il campo identificativo o i campi utilizzati per calcolare l'identificativo. Opzionalmente, aggiunge i nuovi campi se non già presenti, e aggiorna i campi esistenti.
Metodo
PlugElasticStorage/MergeByCatalog
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
token |
Token di sessione (per la sessione corrente nel dominio corrente potrebbe essere null o vuoto). |
String |
Y |
configurationReference |
Collegamento alla risorsa di tipo configurazione del Plug Elastic Storage da utilizzare. E' possibile specificare un collegamento con valorizzata solo la proprietà Name pari al Nickname di una configurazione esistente. |
Reference |
|
catalogReference |
Collegamento al catalogo Jamio contenente i valori da aggiornare o aggiungere nel Dataset di un indice della configurazione del Plug Elastic Storage. Oltre ai valori da aggiornare/inserire nel Dataset, deve essere specificato anche il valore del campo identificativo utile a ricercare il Dataset da aggiornare. Esso può essere espresso tramite un campo denominato "_id" o "Id" o in alternativa specificando, nel parametro idFields, i valori dei campi utili a calcolare l'identificativo. |
Reference |
|
parameters |
Parametri di ricerca da applicare per individuare i Dataset da aggiornare. (Se non specificato, vengono salvati o aggiornati nell'indice tutti i Dataset del catalogo). |
Y |
|
idFields |
Lista di stringhe contenente i nomi dei campi utili a calcolare l'identificativo del Dataset. Il parametro è obbligatorio, ma viene ignorato se tra i dati del catalogo esiste un campo denominato "_id" o "Id", secondo le logiche qui riportate. Se idFields è valorizzato con {id} l'identificativo del Dataset dell'indice del Plug ElasticStorage è valorizzato con l'id della risorsa i-esima del catalogo. Gli IdFields non hanno alcuna relazione con il parametro includeFields, essi non caratterizzano i campi del Dataset ma sono di ausilio alla caratterizzazione dell'ID del dataset in elastic. |
List of string |
|
commonFields |
Dato strutturato che riporta un insieme di campi che vengono impostati come valore comune su tutti i DataSet da aggiornare o creare. Per maggiori dettagli vedi sezione commenti. |
Dataset |
|
referenceField |
Specifica in quale campo dell'indice del plug ElasticStorage deve essere riportato il collegamento alla risorsa a cui fa riferimento l'elemento i-esimo del catalogo. Se il campo è già presente nell'indice del plug ElasticStorage esso viene aggiornato, altrimenti accodato ai campi esistenti. |
String |
Y |
skipErrors |
Indica se proseguire o meno nel caso in cui una riga del catalogo presenta degli errori di conversione dei campi o riporta un numero di campi diverso da quello previsto. |
Boolean |
|
updateOnly |
Indica se deve essere eseguito solo l'aggiornamento dei record esistenti (true), oppure si devono anche accodare i record non esistenti (False) |
Boolean |
|
includeFields |
Nomi delle colonne del catalogo che devono essere aggiornate nell'indice del Plug ElasticStorage. Se non specificato sono riportate nell'indice del Plug ElasticStorage tutte le colonne. |
List of string |
Y |
Output |
|
||
Nome |
Descrizione |
Tipo |
|
returnValue |
Dato strutturato con i seguenti campi: •TotalItems: numero di righe da processare (numero totale di righe meno quelle di intestazione); •ProcessedItems: numero di righe del catalogo processate correttamente; •ScrappedItems:numero di righe del catalogo scartate per errori; •ScrapReport: file .zip contenente un file .csv che riporta tutte le righe del catalogo scartate, con la propria intestazione e i rispettivi valori. |
Dataset |
|
Commenti
Se il Dataset estratto dal catalogo contiene due o più righe con lo stesso identificativo (campo denominato "_id" o "Id" o calcolato secondo i valori contenuti in IdFields), le righe verranno aggiornate progressivamente, secondo l'ordine di visualizzazione del catalogo, o secondo il valore del parametro orders se valorizzato, fino all'ultimo Dataset col medesimo identificativo.
Se i parametri commonFields e includeFields vengono entrambi valorizzati:
•se il campo specificato in commonFields non è presente nè nell'indice e nè tra i valori di includeFields, il campo verrà aggiunto all'indice, oltre ai campi indicati nel parametro includeFields;
•se il campo specificato in commonFields è presente nell'indice ed è anche tra i valori di includeFields, nell'indice saranno aggiornati tutti i campi indicati in entrambi i parametri, riportando per quello indicato nel parametro commonFields il valore comune valorizzato in tale parametro. I valori specificati in commonFields hanno prevalenza su quelli specificati tramite includeFields;
•se il campo specificato in commonFields è presente nell'indice e ma non tra i valori di includeFields, nell'indice saranno aggiornati tutti i campi indicati in entrambi i parametri.
Le righe del catalogo vengono convertite in istruzioni per l'inserimento della configurazione del Plug Elastic Storage. Durante la conversione se:
•skipErrors è uguale a false, al primo controllo fallito la procedura deve essere interrotta e deve essere restituita un'eccezione.
•skipErrors è uguale a true, le righe che non si è riusciti a convertire vengono accodate allo ScrapReport. Alle righe dello ScrapReport viene aggiunta una cella contente informazioni relative all'errore.
Il metodo si comporta come segue:
Restituisce |
Condizione |
Errore |
Se il Dataset estratto dal catalogo indicato nel parametro catalogReference contiene un campo che si chiama "_id" e un campo che si chiama "Id" |
Errore |
Se il Dataset estratto dal catalogo indicato nel parametro catalogReference contiene un campo che si chiama "_id" o "Id", ma di tipo diverso da testo breve o numerico intero. |
Errore |
Se il Dataset estratto dal catalogo indicato nel parametro catalogReference non contiene un campo che si chiama "_id" o "Id" e idFields non è valorizzato. |
Errore |
Se i campi di idFields non esistono nel Dataset estratto dal catalogo, indicato nel parametro catalogReference |
Errore |
Se i campi di idFields sono diversi da testo breve e numerico intero. |
Errore |
Se i campi del Dataset estratto dal catalogo, indicato nel parametro catalogReference, non sono del tipo ammesso (testo breve, testo lungo, numerico intero, numerico a virgola mobile, numerico decimale, data e data/ora, booleano, collegamento). |
Errore |
Se il Dataset da aggiornare non è presente nell'indice. |
Errore |
Se il campo identificativo generato con la concatenazione dei campi della lista di idFields supera il limite di 150 caratteri. |
Errore |
Se un filtro applicato sul catalogo non restituisce alcun Dataset |
Errore |
Se il nome del campo referenceField è uguale al nome di una colonna del catalogo riportato in catalogReference. |
Errore |
Se il nome del campo referenceField è uguale al nome di un campo di CommonFields. |
Errore |
Se includeFields riporta il nome di una colonna non presente nel catalogo riportato in catalogReference. |
I Dataset esistenti nell'indice e quelli non estratti dal catalogo, indicato nel parametro catalogReference, non vengono alterati.
Autorizzazioni
Per eseguire il metodo è necessario possedere il permesso di Utilizzo sull'indice del Plug Elastic Storage.