<< Fare clic per visualizzazione il sommario >> Percorso: API di piattaforma > JamioPlug > JamioPlug Spreadsheet Automation > TransformCsv |
Plug
Metodo
TransformCsv
Descrizione
Esegue delle trasformazioni definite sui campi di un CSV e restituisce un file CSV contenente i dati trasformati.
Input |
|||
Name |
Description |
Type |
Optional |
token |
Il token di sessione (per la sessione corrente nel dominio corrente potrebbe essere null o vuoto). |
String |
Y |
inputFile |
Collegamento alla risorsa contenente il file in formato CSV su cui deve essere eseguita una trasformazione di dati. Può essere un riferimento ad una risorsa di tipo Attachment, FileComponent, un allegato di processo, una risorsa 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. |
Reference |
|
inputOptions |
Definisce le opzioni di conversione da applicare ai dati riportati nel file CSV prima di eseguire la trasformazione dei dati. 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 ottengono campi numerici, date, booleani o stringhe, secondo quanto richiesto. |
Y |
|
outputFields |
Dato strutturato che definisce i campi da restituire nel CSV di output; ogni chiave è il nome del campo in output, il corrispondente valore nel dato strutturato è l'espressione che definisce la trasformazione da eseguire. Ogni riga del file CSV, su cui deve essere effettuata la trasformazione, viene gestita come contesto su cui poter eseguire delle operazioni. I complementi insistono sul contesto #this, che contiene la riga iesima oggetto di trasformazione. Ad esempio per riferirsi al valore contenuto nella colonna Importo del file CSV occorre scrivere #this[''Importo'']. E' possibile eseguire dei calcoli o delle concatenazioni sui valori del CSV. Per i valori di tipo numerico decimale e numerico a virgola mobile il separatore dei decimali da utilizzare è il punto. Sono qui riportati degli esempi. Se in outputFields è definito un campo ma non il suo valore, viene di default assegnato il valore #this[‘ColumnName’] ovvero il campo definito dalla chiave è passato all'output senza modifiche. |
Dataset |
|
outputOptions |
Definisce le opzioni di esportazione da applicare al file CSV di output. Viene ignorato il mapping sulle colonne, in quanto viene data priorità agli outputFields. Se non specificate vengono utilizzate le impostazioni di default per il formato CSV. |
Y |
|
Output |
|||
Name |
Description |
Type |
Optional |
returnValue |
Collegamento al file CSV prodotto dalla trasformazione. |
Reference |
|
Commenti
Il parametro inputOptions non è obbligatorio, ma, se non valorizzato, verranno passati al metodo eventuali valori di default, come, ad esempio, 0 per il parametro HeaderRow del tipo CsvToListConversionOptions. In questo caso, il metodo pre-elaborerà il file CSV assegnando ad ogni colonna un'intestazione secondo il template Col_{Prog}, dove {Prog} è un numero progressivo (Col_1, Col_2, etc.).
Se si desidera ottenere in un file CSV una particolare colonna, senza valorizzare il parametro inputOptions, bisogna tenere conto di questo aspetto, specificando nel parametro outputOptions, non il nome dell'intestazione della colonna del CSV passato in inputFile, ma il nuovo nome dell'intestazione secondo il template Col_{Prog}.
Ad esempio, si desidera riportare come valore del campo "email" del CSV in output, quanto riportato nel corrispondente campo "email" del CSV in input e non si valorizza il parametro inputOptions, se il campo "email" è il primo da sinistra nel CSV in input, allora il dato strutturato con cui valorizzare il parametro outputOptions è:
DataSet('Col_1',null) |
se il campo "email" è il secondo da sinistra nel CSV in input, allora il dato strutturato sarà:
DataSet('Col_2',null) |
Esempi espressioni di trasformazione
Esempio1
Assegnare al campo Ragione Sociale il valore del campo Ragione Sociale del file CSV concatenato al valore del campo email del CSV. Il parametro outputFields deve essere così valorizzato:
DataSet('Ragione Sociale','#this[''Ragione Sociale'']+'' - ''+#this[''email'']','Indirizzo') |
Esempio2
Assegnare al campo Indirizzo, i primi 5 caratteri estrarre dal campo Indirizzo del CSV. Il parametro outputFields deve essere così valorizzato:
DataSet('Indirizzo','#this[''Indirizzo''].Substring(1,5)') |
Esempio3
Assegnare al campo Importo, il valore del campo Importo aumentato di 1. Il parametro outputFields deve essere così valorizzato:
DataSet('Importo','#this[''Importo'']+1') |
Esempio4
Sostituire tutti i valori del campo CAP del CSV con il valore 70121. Il parametro outputFields deve essere così valorizzato:
DataSet('CAP','70021') |
Esempio5
Riportare come valore del campo email del CSV in output, quanto riportato nel corrispondente campo email del CSV in input. Il parametro outputFields deve essere così valorizzato:
DataSet('email',null) |
Esempio6
Riportare il campo Pagamenti del CSV in formato valuta €. Il parametro outputFields deve essere così valorizzato:
DataSet('Pagamenti','#this[''Pagamenti''].ToString(''€ #,#.00'')') |
Esempio7
Riportare la data del campo DataInizio del csv in formato inglese. Il parametro outputFields deve essere così valorizzato:
DataSet('DataInizio','#this[''DataInizio''].ToString(''dd MMMM yyyy'',T(System.Globalization.CultureInfo).CreateSpecificCulture(''en-US''))') |