Il Text Link è un adapter che consente di leggere e acquisire dati da file di testo. Fornisce un accesso diretto a file strutturati e semi strutturati ed un accesso mediato a file non strutturati attraverso l'apposito componente tecnologico File Normalizer.
Gli aspetti definitori propri del Text Link sono disponibili nei seguenti tab:
✓Source, definisce gli estremi per identificare il file di input;
✓Settings, contiene le informazioni sul formato del file di input e sulla sua codifica.
Nel riquadro File List del tab Source è possibile specificare il file di testo sorgente indicandone:
✓ il percorso assoluto, manualmente o sfogliando il file system attraverso il tasto Select ;
✓ il percorso relativo, associando una Connection di tipo Directory al Text Link stesso.
Il pulsante , accanto alla casella di testo che espone il percorso del file sorgente, apre direttamente il file stesso.
La compilazione del campo Directory può essere effettuata anche trascinandovi (drag & drop) un oggetto relativo ad una Connection di tipo Directory dall'albero di navigazione del Package.
Il Text Link supporta anche il caricamento di più file contemporaneamente, purché presentino la stessa struttura e gli stessi formati dati. La lista di file può essere caricata:
✓ elencando manualmente i vari file separati dal carattere "|" (pipe);
✓ compilandola in modalità guidata (tasto Files Multi Selection accanto alla casella di testo che espone il percorso del file sorgente);
✓ identificando i file mediante stringhe di pattern matching.
Nel caso di liste di file, il Text Link itera l'acquisizione dei dati sull'elenco, accodando i risultati ottenuti. Il primo file definisce la struttura del file di input, che viene poi utilizzata anche per i file successivi. |
APPROFONDIMENTO: REGOLE DI PATTERN MATCHING Una stringa di pattern matching si compone di un carattere jolly e di uno o più caratteri letterali, ma non supporta le regular expression. I caratteri jolly ammessi sono: ✓ * (asterisco), indica la presenza di zero o più caratteri nella sua posizione; ✓ ? (punto interrogativo), indica la presenza di al più un carattere nella sua posizione. Ad esempio la stringa *t considera tutti i file il cui nome termina con t ed ha una qualsiasi lunghezza. |
Inoltre, è anche possibile acquisire file non fisicamente presenti sul file system, ma archiviati su DB esterni e DataShelf o, più in generale, disponibili mediante opportuni Datalink.
Il flag SourceQuery nel tab Source, se attivo, consente di definire una query il cui dataset risultante viene interpretato dal sistema come un set di file virtuali. In particolare viene utilizzata solo la prima colonna di questo dataset ed ogni suo record viene considerata come un file a se stante. Tale colonna deve essere di tipo stringa (e.g. Varchar o NVarchar) oppure VarBinary.
Nel caso in cui sia specificata una Source Query, tutte le informazioni eventualmente specificate nel riquadro File List sono ignorate. |
Il tab Settings consente di definire diverse modalità di lettura (File Format), per adattarsi al tipo di file da processare. I file di testo processabili da un Text Link possono essere raggruppati in:
✓ file di testo a campi delimitati;
✓ file di testo a formato fisso.
Nei file di testo a campi delimitati ogni campo è separato dal successivo mediante un delimitatore ed un eventuale Text qualifier. E' il formato tipico dei file CSV (Comma-separated_values) e di tutti i derivati con delimitatore anche differente dalla virgola privi di caratteri (spazio e/o zero) non significativi. Il File Format corrispondente a questa categoria di file di testo è il Delimited Fields, per il quale è possibile specificare sia il Field delimiter sia l'eventuale Text qualifier.
Nei file di testo a formato fisso ogni campo ha una propria lunghezza fissa e predeterminata in fase di definizione. Inoltre non vi è separatore (virgola o simile) tra i campi.
Nel caso in cui i diversi record siano separati in modo esplicito, il File Format corrispondente è il Fixed Fields (with record separator). Viceversa, se non è previsto alcun separatore di record, il File Format opportuno è il Fixed Fields Compact. In entrambi i casi è necessario definire la lunghezza dei campi in input, mediante l'editor Edit fixed sizes, accessibile con il tasto dal campo Fields Sizes del tab Settings.
APPROFONDIMENTO: L'EDIT FIXED SIZES Mediante il tasto
Il tab Edit permette di elencare le lunghezze di ciascun campo di un file di testo a formato fisso. Ogni lunghezza può essere preceduta da un eventuale alias per la colonna di output ed è separata dalla lunghezza del campo successivo mediante virgola (,), punto e virgola (;) o spazio.
Il tab Preview mostra una porzione del file in input ed un'anteprima dell'output. |
Per ciascuno dei suddetti File Format è ancora possibile impostare:
✓ l'Encoding mode del file (ASCII, Unicode, EBCDIC, ...);
✓ l'eventuale presenza delle etichette di colonna nella prima riga del file di testo (Ignore/Present/Absent Header row).
In caso sia presente una Source Query, la cui colonna è di tipo stringa, la proprietà Encoding Mode non ha alcun effetto. |
La creazione di un Text Link può essere effettuata anche mediante drag & drop dell'icona che rappresenta un qualsiasi file di testo nel file system. In particolare, se il file è di tipo CSV, IrionEDM è in grado di riconoscerne automaticamente il separatore dei campi e la struttura.
APPROFONDIMENTO: CREAZIONE CON DRAG & DROP Al fine di definire automaticamente il Text Link, è possibile effettuare un'operazione di drag & drop nel modo seguente: ✓ si seleziona con il mouse l'icona del file che si desidera importare dal file system; ✓ si trascina l'icona nella posizione desiderata nell'albero del Navigator del Package. |
Il Text Link, oltre all'acquisizione di dati da file di testo, supporta il caricamento di file di ogni tipo. In questi casi il file viene letto per intero e caricato in una singola cella.
Il caricamento del file può avvenire in tre modalità differenti a seconda del risultato atteso:
✓ Single Field – text file, il contenuto di ciascun file in input viene letto come testo e caricato in una cella di tipo varchar o equivalente (un file per record), utilizzando l'Encoding mode definito in precedenza ;
✓ Single Field – binary file, il contenuto di ciascun file viene letto in formato binario e caricato in una cella di tipo varbinary o equivalente (un file per record);
✓ Attach (single Tagged File), ciascun file in input viene caricato in una cella in formato binario e vengono aggiunte tutte le informazioni necessarie ad IrionEDM per poterne riconoscere il formato di origine ed altri attributi per poter essere trattato come attachment.
L'utilizzo del Text Link come «File Link» si rivela utile nel caso si debbano leggere uno o più file per intero senza rielaborazioni (e.g. caricare su database file di Office o file PDF). |
Il Text Link dispone di un ulteriore tab, denominato Preview, il quale mostra un'anteprima dei dati (per esattezza i primi diecimila record) che verranno importati in IrionEDM. Tale anteprima viene elaborata lanciando un'esecuzione parziale del Text Link mediante il pulsante Preview .
Il Text Link dispone di ulteriori proprietà di visualizzazione non esposte direttamente nella corrispondente UI. Per configurarle è possibile utilizzare il visualizzatore della Property Grid (tasto F4).
Le principali properties avanzate di un Text Link sono:
✓ EmptyResultOnFileMissing restituisce un dataset vuoto se il file è assente;
✓ TrimSpaces elimina eventuali spazi iniziali e/o finali dai campi stringa in input;
✓ TruncateLongString abilita/disabilita il troncamento di stringhe troppo lunghe;
✓ Null on Data Error restituisce NULL in caso di errore su un Data Type atteso.
✓ Empty String as DB Null trasforma il valore «stringa vuota» in NULL.
La proprietà Null on Data Error può essere specializzato a livello di singola colonna grazie ai Conversion Settings. |
APPROFONDIMENTI E ARGOMENTI CORRELATI