<< Fare clic per visualizzazione il sommario >> Percorso: API di piattaforma > JamioPlug > JamioPlug Elastic Storage > MergeFromCatalogWithFilter |
Esegue una serie di aggiornamenti su un indice del plug Elastic Storage utilizzando i dati presenti in un catalogo: per ogni item del catalogo viene eseguito un aggiornamento dei dataset che corrispondono ai campi del catalogo specificati.
Le righe del catalogo, che non possono essere utilizzate per aggiornare i Dataset, vengono restituite opzionalmente in un file CSV di scarto.
Metodo
PlugElasticStorage/MergeFromCatalogWithFilter
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
token |
Il 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 con cui aggiornare il Dataset di un indice della configurazione del Plug Elastic Storage. Una descrizione generale della gestione dei diversi tipi di dati in un indice del plug Elastic Storage è consultabile qui |
Reference |
|
parameters |
Parametri di ricerca da applicare al catalogo per individuare le righe da utilizzare per l'aggiornamento dei dataset dell'indice del Plug Elastic Storage. Se non specificato, vengono usate tutte le risorse del catalogo. |
Y |
|
filter |
Criteri di filtro, per filtrare i Dataset dell'indice del Plug Elastic Storage da aggiornare con ogni riga del catalogo. Per applicare un filtro è necessario utilizzare la funzione CatalogFilter, in cui: •il soggetto del filtro è il nome della colonna nell'indice del Plug Elastic Storage. •il predicato del filtro è uno di quelli validi per i cataloghi di Elastic Storage. •il complemento del filtro, se presente, deve essere specificato con una espressione. L'espressione deve essere riportata tra apici e può essere un valore costante oppure un valore disponibile nel catalogo. Sono qui riportati degli esempi. Il filtro può essere applicato anche su campi non di primo livello, purchè l'espressione di filtro sia coerente col dato. |
|
|
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 vedi sezione commenti. |
Dataset |
Y |
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. I campi devono essere di primo livello, non annidati. 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 di errori di conversione dei dati contenuti nel file CSV o dovuti ai valori dell'identificativo. Se True, le righe vengono scartate e aggiunte allo ScrapReport del returnValue del metodo con i relativi messaggi d'errore. Se False, il Job viene interrotto. |
Boolean |
Y |
includeFields |
Lista dei nomi delle colonne del catalogo che devono essere aggiornate nell'indice del Plug Elastic Storage. Se non specificato, vengono 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 |
|||
Name |
Description |
Type |
Optional |
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 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'aggiornamento dei dati nell'indice del Plug Elastic Storage. Durante la conversione se:
•skipErrors è uguale a false, al primo controllo fallito la procedura viene interrotta e viene restituita un'eccezione.
•skipErrors è uguale a true, la procedura viene eseguita per tutte le righe del catalogo e nel Report restituito vengono segnati i codici e i messaggi di errore in corrispondenza delle righe che li hanno generati.
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 predicato del filtro non è uno di quelli validi per i cataloghi di Elastic Storage. |
Errore |
Se configurationReference è una risorsa inesistente. |
Errore |
Se soggetto o complemento del filtro non sono descritti con sintassi corretta. |
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. |
Autorizzazioni
Per eseguire il metodo è necessario possedere il permesso di Utilizzo sull'indice del Plug Elastic Storage.
Esempi complementi espressioni
Ogni riga del catalogo può essere utilizzata come contesto su cui poter eseguire delle operazioni.
Il contesto del complemento è denominato #data e contiene la riga iesima oggetto di verifica. Ad esempio, per riferirsi al valore contenuto nella colonna Importo del catalogo occorre scrivere #data[''Importo'']. E' possibile eseguire dei calcoli o delle concatenazioni sui valori del catalogo. Per i valori di tipo numerico decimale e numerico a virgola mobile, il separatore dei decimali da utilizzare è il punto.
Esempio1
Sulla colonna “Nro Civico” di tipo testo dell'indice del Plug Elastic Storage, si vuole creare un filtro sui Dataset con valore '50'
CatalogFilter('Nro Civico','EqualsTo',false,'50') |
Esempio2
Sulla colonna 'Importo totale' di tipo numerico decimale dell'indice del Plug Elastic Storage, si vuole creare un filtro sui Dataset con valore pari a quello del campo 'Importo' del catalogo
CatalogFilter('Importo totale','EqualsTo',false,'#data[''Importo'']') |
Esempio3
Sulla colonna 'Contatto' di tipo testo dell'indice del Plug Elastic Storage, si vuole creare un filtro sui Dataset con valore pari a quello dei valori concatenati del campo 'Surname', spazio, campo 'Name' del catalogo
CatalogFilter(‘Contatto’, ‘EqualsTo’,false,'#data[''Surname''] + '' '' + #data[''Name'']') |
Esempio4
Sulla colonna 'Importo totale' di tipo numerico decimale dell'indice del Plug Elastic Storage, si vuole creare un filtro sui Dataset con valore pari a quello di un calcolo aritmetico su due campi del catalogo
CatalogFilter('Importo totale', ‘EqualsTo’,false,'(#data[''Value''] + #data[''RealValue'']) / 2') |