TransformCsv

<< Fare clic per visualizzazione il sommario >>

Percorso:  API di piattaforma > JamioPlug > JamioPlug Spreadsheet Automation >

TransformCsv

Plug

PlugSpreadsheetAutomation

 

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.

CsvToListConversionOptions

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.

CsvExportOptions

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''))')