<< Fare clic per visualizzazione il sommario >> Percorso: API di piattaforma > JamioPlug > JamioPlug Elastic Storage > MergeByCsv |
Esegue una serie di aggiornamenti su un indice del plug ElasticStorage utilizzando i dati presenti in un CSV. I Dataset dell'indice da aggiornare sono individuati tramite il campo identificativo o i campi utilizzati per calcolare l'identificativo.
Le righe del CSV che non possono essere salvate vengono restituite opzionalmente in un file CSV di scarto.
Metodo
PlugElasticStorage/MergeByCsv
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
|
|
inputFile |
Collegamento alla risorsa contenente il file con estensione CSV. Può essere un riferimento ad un Attachment, un FileComponent, un allegato di processo, un Document o un'altra risorsa contenente attachments. Se la risorsa è di tipo Document e contiene più componenti file viene utilizzato: •il componente principale se è di tipo File e contiene un CSV; •in assenza di componente principale, deve esserci un solo componente di tipo File che contiene un CSV. Se la risorsa contiene una lista di attachments, deve esserci un solo file di tipo CSV. Tra i campi del file CSV è possibile specificare un campo identificativo, secondo le logiche qui riportate. |
Reference |
|
options |
Definisce le opzioni di conversione da applicare ai dati riportati nel file CSV prima del salvataggio nella configurazione del plug Elastic Storage. Se per una colonna del CSV non viene specificato il ColumnType tramite CsvToListConversionOptions, qualunque contenuto del campo viene interpretato come una stringa, mentre specificando il ColumnType si hanno nella configurazione del Plug Elastic Storage campi numerici, date, booleani o stringhe, secondo quanto richiesto. |
Y |
|
idFields |
Lista dei nomi dei campi del CSV con cui deve essere calcolato l'identificativo del DataSet che sarà estrapolato dal CSV nella configurazione del plug ElasticStorage. Il parametro viene ignorato se tra le intestazioni ne esiste una denominata "_id" o "Id", secondo le logiche qui riportate. |
List of String |
Y |
commonFields |
Dato strutturato che riporta un insieme di campi comuni, il cui valore deve essere riportato nelle righe del CSV. Se il campo specificato in CommonFields non è presente nelle righe del CSV, esso viene accodato, altrimenti viene sovrascritto. Se il campo specificato in CommonFields è presente nelle righe del CSV ed ha un formato diverso da quello specificato nel ColumnTypes, viene sovrascritto sia nel valore che nel formato. Ad esempio, se il campo "Importo" nel ColumnTypes è definito come intero, ma in CommonFields è definito come stringa, allora verrà riportato nella configurazione di Elastic Storage come stringa. |
Dataset |
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. Se True, nel caso di errori, verrà generato nel returnValue uno ScrapReport contenente i valori scartati e i relativi messaggi d'errore. |
Boolean |
Y |
updateOnly |
Indica se deve essere eseguito solo l'aggiornamento dei record esistenti, oppure si devono accodare anche i record non esistenti |
Boolean |
Y |
Output |
|||
Name |
Description |
Type |
Optional |
returnValue |
Dato strutturato con i seguenti campi: •TotalItems: numero di righe da convertire (numero totale di righe meno quelle di intestazione); •ProcessedItems: numero di righe convertite correttamente; •ScrappedItems: numero di righe processate con errore e/o non processate per interruzione del Job; •ScrapReport: file CSV con la stessa struttura del file passato in input, contenente le righe scartate, con i rispettivi errori, e quelle non elaborate in caso di interruzione del Job; •JobStatus: enumerativo che indica lo stato finale del job (Completed o Canceled). |
Dataset |
|
Commenti
Tra le opzioni di conversione elencate in CsvToListConversionOptions, vengono gestite nella configurazione del Plug Elastic Storage solo le seguenti:
•Delimiter
•QuotedFields
•ListOfDataset (è sempre assunto pari a true)
•HeaderRow
•ColumnHeader
•ColumnTypes
•ColumnFormats
•CultureInfo
mentre vengono ignorate:
•IgnoreLineBreaks
•ListOfDataset se valorizzato come false
E' opportuno specificare sempre nelle opzioni di conversione del CSV il parametro cultureInfo, per evitare errori di conversione dovuti ad una diversa interpretazione del formato di numeri e date per una regione o paese.
Le righe del CSV 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 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 del CSV contenute nello ScrapReport vengono aggiunte due celle contenenti il codice di errore e il messaggio.
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 la proprietà ColumnTypes delle opzioni di conversione contiene campi non esistenti |
Errore |
Se nel DataSet estratto dal CSV, dopo l'applicazione delle opzioni di conversione, sono presenti entrambe le colonne di nome "Id" e "_id" |
Errore |
Se il DataSet estratto dal CSV, dopo l'applicazione delle opzioni di conversione, contiene un campo che si chiama "_id" o "Id" e questo è di tipo diverso da testo breve e numerico intero. |
Errore |
Se la proprietà IdFields non è valorizzata e il DataSet estratto dal CSV, dopo l'applicazione delle opzioni di conversione, non contiene un campo che si chiama "_id" o "Id" |
Errore |
Se è valorizzato IdFields con un elemento diverso da testo breve e numerico intero e nelle intestazioni del DataSet estratto dal CSV, dopo l'applicazione delle opzioni di conversione, non è presente una colonna di nome "Id" o "_id” |
Errore |
Se inputFile contiene una Reference ad una risorsa non contenente alcun file di tipo CSV |
Errore |
Se inputFile contiene una Reference ad una risorsa contenente più di un file di tipo CSV |
Errore |
Se configurationReference è una risorsa inesistente |
Errore |
Se il CSV contiene un numero di colonne differente da riga a riga |
Errore |
Se il Job è in stato faulted. |
Autorizzazioni
Per eseguire il metodo è necessario possedere il permesso di Utilizzo sull'indice del Plug Elastic Storage.