At line 1 added 152 lines |
%%(display:none) |
{{{ |
WikiUp |
}}} |
/% |
[{TableOfContents }]\\ |
''Diverse modalità di Accesso ai dati e di Importazione''\\ |
__(creato in data 03-09-2006) __\\ |
__(aggiornato in data 07-09-2007) __\\ |
__(aggiornato in data 16-12-2008)__\\ |
\\ |
\\ |
!!! Note generali sull'importazione\\ |
Se la tabella sorgente contiene caratteri particolari questi verranno sostituiti dal segno "_".\\ |
Sono ammessi solo i numeri, le lettere, il segno "_" e il segno "£" .\\ |
\\ |
Se il nome della tabella sorgente è più lungo di 8 caratteri questo verrà troncato. Nella descrizione del file creato su AS400 verrà riportata il nome della tabella sorgente per esteso, privato dei caratteri con codice ascii minore di 32 o maggiore di 122.\\ |
\\ |
[http://www.asciitable.it]\\ |
\\ |
\\ |
\\ |
!!! Accedere o importare da CSV\\ |
\\ |
\\ |
!! Cos'è il formato CSV?\\ |
E' un formato di file testuale (visualizzabile anche tramite un semplice editor di testo) utilizzato solitamente per lo scambio di dati fra fogli di calcolo(per esempio Excel) o database. I singoli campi di dati sono separati da una carattere definito a priori (a volte la virgola, a volte il punto e virgola, a volte il simbolo di pipe...).\\ |
\\ |
! Come oggettizzare le colonne\\ |
NOTA: Questo paragrafo è valido anche per l'accesso a file Excel\\ |
Per facilitare la consultazione dei dati è possibile oggettizzarli, cioè definire a quale oggetto SmeUp corrispondono.\\ |
Questa operazione consiste nel definire, nella prima riga del file le caratteristiche della colonna.\\ |
La sintassi da utilizzare è la seguente:\\ |
Descrizione_colonna(codice_colonna|oggetto|lunghezza)\\ |
esempi:\\ |
* __Cod.Ogg. master(XXCDMA|[XXTPMA]|15)__ definisce una colonna con codice __XXCDMA__, con descrizione __Cod.Ogg. master__ di tipo __[XXTPMA]__ e lunga 15\\ |
* __Tempo esecuzione(F2TEAS|NR|11;0)__ definisce una colonna con codice _F2TEAS_, con descrizione _h_Tempo esecuzion_n_ di tipo _h_NR_n_ con 11 cifre di cui 0 decimali\\ |
\\ |
NOTA: Questa sintassi che segue è obsoleta anche se il componente la sà riconoscere\\ |
\\ |
Nome_colonna | Oggetto_SmeUp | Numero_caratteri | DescrizioneColonna.\\ |
* __CodCli|CNCLI|15|Clienti__ definisce una colonna con codice __CodCli__, di oggetti CN CLI, lungai 15 caratteri\\ |
* __XXPREZ|NR|21-6|Prezzo Unitario__definisce una colonnacon codice __XXPREZ__, numerica, composta da 21 cifre di cui 6 decimali\\ |
\\ |
* Sono ammesse tutte le combinazioni, con l'accortezza che se una caratteristica non viene specificata bisogna mantenere il separatore:\\ |
** Se ad esempio si desidera definire il codice e la lunghezza la sintassi da usare è la seguente: __Testo||30000__\\ |
** Se ad esempio si desidera definire il codice e la descrizione la sintassi da usare è la seguente: __Testo|||Testo libero__\\ |
** Se indico solo il codice posso utilizzare la segunte sintassi: __Codice__\\ |
\\ |
!! Come accedere ad un file CSV\\ |
# Aprire il file CSV tramite un editor di testo per individuare il carattere di separazione tra le colonne ( in futuro sarà forse possibile visualizzare un anteprima in Looc.Up) e se il file contiene una prima riga con i nomi delle intestazioni dei campi.\\ |
# Selezionare il file CSV\\ |
# Indicare il __carattere separatore csv __(di default viene preso il punto e virgola)\\ |
# se presente la riga con le intestazioni segnare il campo __Nomi colonne in prima riga__.\\ |
## se si desidera oggettizzare le colonne modificare la prima riga se contiene i nomi delle colonne o ggiungerla rispettando la sintassi espressa al capitolo __Come oggettizzare le colonne__\\ |
# Modificare la __ampiezza campi destinazione__ (E' consigliato portarla ad un valore che tenga conto della dimensione delle colonne per evitare che i campi vengano troncati). Questo valore viene usato nel caso in cui non sia stata definita la larghezza della colonna nell'intestazione.\\ |
# Utilizzare la funzione F(EXB;JA_00_19;MAT.CSV) 1(J1;PATHFILE;path_file_csv_da_importare) P(da definire in funzione delle caratteristiche del file).\\ |
\\ |
La funzione creata va posta in una sezione o subsezione di tipo EXB.\\ |
\\ |
__NOTA: per la creazione della funzione da utilizzare esiste un apposito wizard.__\\ |
\\ |
! Esempio di accesso ad un file CSV\\ |
Per testare l'accesso ai dati di un file in formato CSV, copiare le ter righe seguenti in un file di testo e salvarlo con estensione CSV.\\ |
%%quote |
CodiceCliente|CNCLI|15;Descrizione|**|35;Data|D8DDMMYY|8 |
C0001;Primo cliente;12092005 |
C0002;Secondo cliente;24082006 |
/% |
---- |
\\ |
Dopo aver creato il file secondo la sintassi espressa sopra utilizzare la seguente funzione, inserendola in una apposita scheda:\\ |
\\ |
F(EXB;JA_00_19;MAT.CSV) P(FILE(C:\TEMP\NOME_DEL_FILE.CSV) SEPA(PunVir) HEAD(1) NMAXROW(-1) )\\ |
\\ |
TERMINARE\\ |
Aprire la scheda del servizio JA_00_19 e selezionare la sottoscheda esempi\\ |
Vedi LOOC.up - Servizio di importazione (V3ASE-JA_00_19)\\ |
\\ |
\\ |
!! Come importare un file CSV?\\ |
L'importazione condivide con l'accesso ai dati i primi 5 punti.\\ |
Compiute tali operazioni si procede con le seguenti:\\ |
# Creare (se necessario) una libreria su AS in cui verranno salvati i file creati durante l'importazione\\ |
# Indicare nel tab __Destinazione_AS400__ il nome della libreria di destinazione dei file\\ |
# Avviare la procedura di Import tramite il tasto OK\\ |
\\ |
__NOTA:__ Utilizzando il servizio JA_00_19 la procedura di importazione avviene in modo batch. Va in questo caso configurata appositamente la chiamata al servizio.\\ |
\\ |
\\ |
!! Accedere o importare da un file file Excel\\ |
L'accesso ad un file in formato Excel può avvenire sia direttamente, sia mediante il salvataggio in uno o più file in formato CSV.\\ |
\\ |
!! Come oggettizzare le colonne\\ |
In maniera analoga al formato CSV si possono oggettizzare le colonne del floglio Excel da importare.\\ |
Riferirsi al paragrafo __Comme oggettizzare le colonne__ del capitolo __Accedere o importare da CSV__.\\ |
\\ |
! Accesso diretto al file.\\ |
Mediante i metodi MAT.XLS o EXP.XLS si accede direttamente al file.\\ |
Per creare una matrice è necessario fornire il nome del file ed il foglio da cui attingere i dati.\\ |
L'esportazione invece necessita di definire il file e la destinazione su AS400. La mancanza del foglio porta all'esportazione su AS400 di tutti i fogli.\\ |
\\ |
\\ |
! Salvataggio del file in formato CSV\\ |
Prima di importare i dati da un file excel è necessario salvare i dati in CSV. Per far ciò si apra il foglio EXCEL e tra le opzioni possibili nella voce di menù SALVA CON NOME c'è il salvataggio come CSV. Non preoccuparsi di eventuali messaggi di warning e salvare il file in una cartella che poi sia facile da ricordare per indicarla nel campo __Singolo File__ o __Tutti i file nella directory__ del componente DBM.\\ |
\\ |
! Come importare un file CSV partendo da un file Excel con più fogli di lavoro\\ |
La procedura da utilizzare per importare un file excel con più fogli di lavoro inclusi è uguale alla precedente con la particolarità che per ogni foglio\\ |
presente è necessario salvarlo con un nome CSV differente spostandosi man mano sul foglio da esportare. Se tutti i fogli vengono salvati nella stessa cartella è possibile poi importarli facilmente con un singolo comando indicando non più il singolo file CSV da importare ma tutta la cartella specificandola nel campo __Tutti i file nella directory__ del componente.\\ |
\\ |
! Problematiche note\\ |
Esistono varie problematiche legate a BUG dei driver ODBC-JDBC:\\ |
# le colonne che contengono valori di tipo diverso, ad esempio numerici e alfanumerici, non restituiscono correttamente uno o più tipi. Se ad esempio nella colonna sono presenti in maggioranza valori alfanumerici non vengono restituiti i valori numerici. La soluzione è di esportare il foglio in formato CSV e poi di importarlo. NOTA: forzare le colonne di tipo solo testo non ha alcun effetto.\\ |
# non è possibile accedere a documenti protetti da password se non sono aperti in Excel.\\ |
# durante il processo di esportazione non è possibile apportare modifiche al foglio excel\\ |
# la prima riga è sempre considerata di intestazione\\ |
# le celle contenenti formule non vengono valutate correttamente: salvare il foglio in formato CSV e importarlo.\\ |
# le celle contenenti valori numerici senza virgola possono venire restituiti come numeri terminanti con ".0". Salvare il foglio in CSV e poi importarlo.\\ |
# Non è possibile accedere a fogli con nomi contenenti i seguenti caratteri:\\ |
## " - apice doppio\\ |
## ! - punto eclamativo\\ |
## [ - parentesi quadra aperta\\ |
## ] - parentesi quadra chiusa\\ |
## { - parentesi graffa aperta\\ |
## } - parentesi graffa chiusa\\ |
NOTA1: l'apice singolo, il ?, il | (pipe), la / e la \ non sono ammessi come nomi dei fogli.\\ |
\\ |
NOTA2: è consigliato limitare il set dei caratteri a lettere, numeri e "_".\\ |
\\ |
Maggiori dettagli nel documento seguente (in inglese)\\ |
Vedi (J1PATHFILE-http://support)\\ |
\\ |
!! Accesso o importazione di dati da database ORACLE\\ |
DA FARE\\ |
\\ |
!! Accesso o importazione di dati da database ACCESS\\ |
Mediante i metodi MAT.ACC o EXP.ACC si accede direttamente al file.\\ |
* iil percorso del file di access, indicandolo o nell'oggetto 1 (J1-PATHFILE-nome_file.MDB) o nel parametro FILE.\\ |
* il nome della tabella a cui accedere.\\ |
\\ |
!! Accesso o importazione da database che supportano l'ODBC\\ |
DA FARE\\ |
\\ |
!! Accesso o importazione da database che supportano il JDBC\\ |
\\ |
Per debug, ci sono funzioni che permettono di\\ |
\\ |
# visulizzare l'elenco delle tabelle\\ |
F(EXB;JA_00_19;INF.JDB) P(TPIMP(02) JDBCDRV(<driver>) JDBCCON(j<jdbc-url>) JDBCUSR(<user>) JDBCPWD(<pass>) JDBCALLTAB(1) LIB(W_SCM) INFOT(TABLES)) SS(Context(JA_00_19/MDB) CGr(EXB) )\\ |
\\ |
# visualizzare il contenuto di una tabella in matrice:\\ |
F(EXB;JA_00_19;MAT.JDB) P(JDBCDRV(<driver>) JDBCCON(<jdbc-url>) USER(<user>) PASS(<pass>) TAB(<tabella>) NMAXROW(100)) SS(Context(JA_00_19/MDB) CGr(EXB))\\ |