<< Fare clic per visualizzazione il sommario >> Percorso: API di piattaforma > JamioPlug > JamioPlug Elastic Storage > MergeFromCatalog |
Esegue una serie di aggiornamenti su un indice del plug Elastic Storage 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/MergeFromCatalog
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 del Plug Elastic Storage. Una descrizione generale della gestione dei diversi tipi di dati in un indice del plug Elastic Storage è consultabile qui 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 delle colonne del catalogo utili a calcolare l'identificativo del Dataset. I nomi devono riferirsi a campi di primo livello, non annidati. Il parametro è obbligatorio, ma viene ignorato se tra le colonne del catalogo esiste una denominata "_id" o "Id", secondo le logiche qui riportate. Se idFields è valorizzato con {id} l'identificativo del Dataset dell'indice del Plug Elastic Storage è 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'identificativo del Dataset nell'indice. |
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. I campi devono essere di primo livello, non annidati. Per maggiori dettagli vedere la sezione commenti. |
Dataset |
|
referenceField |
Specifica in quale campo dell'indice del plug Elastic Storage deve essere riportato il collegamento alla risorsa a cui fa riferimento l'elemento i-esimo del catalogo. Il campo deve essere di primo livello, non annidato. Se il campo è già presente nell'indice del plug Elastic Storage esso viene aggiornato, altrimenti accodato ai campi esistenti. |
String |
Y |
skipErrors |
Indica se proseguire o meno nel caso in cui una riga del catalogo presenti degli errori di conversione dei campi o riporti un numero di campi diverso da quello previsto. Se True, nel caso di errori, verrà generato nel returnValue uno ScrapReport contenente i valori scartati e i relativi messaggi d'errore. |
Boolean |
|
updateOnly |
Indica se deve essere eseguito solo l'aggiornamento dei record esistenti (true), oppure si devono anche accodare i record non esistenti (False). Il valore di default è False. |
Boolean |
Y |
includeFields |
Lista dei nomi delle colonne del catalogo che devono essere aggiornate nell'indice del Plug Elastic Storage. Se non specificato sono riportate nell'indice del Plug Elastic Storage tutte le colonne. I nomi dei campi da includere devono corrispondere a dati di primo livello, non annidati. |
List of string |
Y |
Output |
|
||
Nome |
Descrizione |
Tipo |
|
returnValue |
Dato strutturato con i seguenti campi: •TotalItems: numero totale di CatalogItem da processare; •ProcessedItems: numero di CatalogItem processati correttamente; •ScrappedItems:numero di CatalogItem processati con errore e/o non processati per interruzione del Job; •ScrapReport: file .zip contenente un file .csv che riporta solo i CatalogItem processati con errore; •JobStatus: enumerativo che indica lo stato finale del job (Completed o Canceled). |
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, 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.
Se il job viene sospeso, il processo resta nello stato idle in attesa di ripresa o interruzione.
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 o si riferiscono a campi non di primo livello. |
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. |
Errore |
Se il Job è in stato faulted. |
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.