Buonasera
caricando dei dati da un file csv, ho ricevuto il seguente errore
The namemapper array and the value list must match in size. Numbe
r of columns mismatch number of entries for your map
Analizzando il file csv, rispetto alla definizione della classe da acricare, ho verificato che:
- il numero delle colonne e degli attributi è identico
- il nome delle colonne è identico a quello degli attributi ome inserito nel campo Code
- la sequenza ordinata delle colonne del file csv e la sequenza degli attributi della classe è differente, ma non dovrebbe costrituire un problema
- il valore degli attributi reference contiene un valore corrispondente per l'attributo code della classe referenziata
- I valori nel file csv sono separati da ; ma non racchiusi tra " "
Quale potrebbe essere il problema ?
grazie
stefano
Al momento non ci risultano errori nella funzione di import CSV.
Un'ipotesi può essere che i testi importati contengano già in
partenza dei caratteri ";" e che quindi il numero di separatori su
quella riga risulti superiore al numero delle colonne.
In questo caso le consiglierei di utilizzare il terminatore "|"
Altrimenti per trovare la soluzione è sufficiente ridurre il numero
delle righe nel file CSV e ripetere il caricamento fino ad individuare i
dati non corretti.
Fabio
Previously Tecnoteca wrote:
Al momento non ci risultano errori nella funzione di import CSV.
Un'ipotesi può essere che i testi importati contengano già in
partenza dei caratteri ";" e che quindi il numero di separatori su
quella riga risulti superiore al numero delle colonne.
In questo caso le consiglierei di utilizzare il terminatore "|"
Altrimenti per trovare la soluzione è sufficiente ridurre il numero
delle righe nel file CSV e ripetere il caricamento fino ad individuare i
dati non corretti.
Fabio
Buonasera
Vi ringrazio per la risposta, effettivamente ho
'pulito' alcuni dati e finalmente il file csv viene caricato, ma quando
premo il tasto di conferma, mi viene visualizzato il seguente errore
(dal log cmbuild):
INFO 2013-01-24 16:03:27 [jsonrpc ] Calling url /management/importcsv/storecsvrecords
ERROR 2013-01-24 16:03:27 [jsonrpc ] A org.cmdbuild.exception.ORMException occurred calling method class org.cmdbuild.servlets.json.management.ImportCSV.storeCSVRecords: ORM_CSV_INVALID_ATTRIBUTES
Sono abbastanza sicuro sulla tipologia di dati (uso solo testo), tranne che per le date.
A tale proposito devo chiedere una delucidazione.
Avendo delle date opzionali, il campo può quindi non essere attualizzato, posso passare un valore nullo all'importer csv?
Avendo dei dubbi in tal senso ho imposto delle date nella forma 01/01/9999 come segnale per attualizzarle inseguito, può essere questo il problema ?
grazie
stefano
Un campo non obbligatorio può essere semplicemente lasciato vuoto nel file CSV.
Il formato delle date viene accettato sia nella forma gg/mm/aa (come indicato nel manuale) che nella forma gg/mm/aaaa.
Riporto di seguito un esempio di file CSV (con date in entrambi i formati) che può essere caricato a scopo di test nella classe "Rack" del database demo presente nei rilasci di CMDBuild:
Code;Description;SerialNumber;Supplier;PurchaseDate;AcceptanceDate;FinalCost;Brand;Model;Room;Assignee;TechnicalReference;Workplace;UnitNumber;Depth
R01;Rack of room DC01001;TET6465;SUP004;12/07/2011;04/09/11;875;Cisco;Ra/56;DC01001;;09;;12;60
R02;Rack of room DC01002;YRE9654;SUP004;11/07/11;04/09/11;875;Cisco;Ra/56;DC01002;;10;;12;60
Fabio
Previously Tecnoteca wrote:
Un campo non obbligatorio può essere semplicemente lasciato vuoto nel file CSV.
Il formato delle date viene accettato sia nella forma gg/mm/aa (come indicato nel manuale) che nella forma gg/mm/aaaa.
Riporto di seguito un esempio di file CSV (con date in entrambi i formati) che può essere caricato a scopo di test nella classe "Rack" del database demo presente nei rilasci di CMDBuild:
Code;Description;SerialNumber;Supplier;PurchaseDate;AcceptanceDate;FinalCost;Brand;Model;Room;Assignee;TechnicalReference;Workplace;UnitNumber;Depth
R01;Rack of room DC01001;TET6465;SUP004;12/07/2011;04/09/11;875;Cisco;Ra/56;DC01001;;09;;12;60
R02;Rack of room DC01002;YRE9654;SUP004;11/07/11;04/09/11;875;Cisco;Ra/56;DC01002;;10;;12;60
Fabio
Il mio obiettivo era utilizzare adte 'vuote' ma, dopo una analisi su postgres sono arrivato alla conclusione che questo non è possibile se non inserendo il carattere 'null' che mi sembra sia sconsigliato come carattere speciale nel manuale. Per eventuali delucidazioni vedi
5.0.2.1.2.20010328204925.033d7e68@box.tin.it ">http://www.postgresql.org/message-id/5.0.2.1.2.20010328204925.033d7e68@box.tin.it
Ho quindi modificato un solo record con delle date dummy (01/01/1900) e l'inserimento è terminato positivamente, confermandomi che nel caso delle date campi vuoti non sono accettati da postgres.
Ora mi rimane un problema con i caratteri UTF8 (lettere accentate etc. ) che ho esplicitato in un post separato sull'argomento. Purtroppo, pur avendo impostato tomcat, la jvm etc. con i necessari parametri impostati a UTF8, in fase di caricamento questi non vengono visualizzati correttamente, mentre se modifico i testi all'interno di cmdbuild, non vi sono errori. Qualche idea sul possibile problema ?
grazie ancora per l'aiuto.
stefano