gwusermanual:interface:interface:import_export_csv_shp

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
gwusermanual:interface:interface:import_export_csv_shp [2025/07/23 17:05]
giorgio.scali [Supporto ai dati JSON]
gwusermanual:interface:interface:import_export_csv_shp [2026/07/07 16:17] (versione attuale)
andrea.bocconi [IMPORT SHP]
Linea 211: Linea 211:
 |String|itemId|false| chiave del record da cui si sta lanciando l'​azione,​ data.itemDB.pk_column,​ Da usare quando si vogliono importare anche i dati nella tabella della classe figlia. I record sono caricati già collegati al record padre dal quale viene lanciata l'​azione | |String|itemId|false| chiave del record da cui si sta lanciando l'​azione,​ data.itemDB.pk_column,​ Da usare quando si vogliono importare anche i dati nella tabella della classe figlia. I record sono caricati già collegati al record padre dal quale viene lanciata l'​azione |
 |String|relationName|false| nome della gwRelation di classe, qualora si vuole importare i dati in una tabelle di una classe collegata a questa tramite widget childlist. I record sono caricati già collegati al record padre dal quale viene lanciata l'​azione| |String|relationName|false| nome della gwRelation di classe, qualora si vuole importare i dati in una tabelle di una classe collegata a questa tramite widget childlist. I record sono caricati già collegati al record padre dal quale viene lanciata l'​azione|
-|String|codColumn|false| singola colonna o colonne multiple separate da virgola ','​|+|String|codColumn|false| singola colonna o colonne multiple separate da virgola ','​. Nome della o delle colonne per le quali, qualora si facesse un importazione tipo update, verrebbero usate come criterio di sovrascrittura. Le colonne se più di una devono essere separate da virgola|
 |Object|columnHeadersMap|false| HashMap per la mappatura degli header del file con quelle del database. Vanno inserite soltanto quelle dove il nome è diverso e le si voglia importare. La forma è la seguente, nameColumnCsv:​ '​nameColumnDatabase'​| |Object|columnHeadersMap|false| HashMap per la mappatura degli header del file con quelle del database. Vanno inserite soltanto quelle dove il nome è diverso e le si voglia importare. La forma è la seguente, nameColumnCsv:​ '​nameColumnDatabase'​|
 |Object|additionalMap|false| HashMap contenente la lista delle colonne non presenti nel file che si voglia comunque popolare durante l inserimento. La forma è nameColumnDatabase:​ '​valore',​ il valore può essere anche preso dinamicamente dalla sessione ​ | |Object|additionalMap|false| HashMap contenente la lista delle colonne non presenti nel file che si voglia comunque popolare durante l inserimento. La forma è nameColumnDatabase:​ '​valore',​ il valore può essere anche preso dinamicamente dalla sessione ​ |
Linea 374: Linea 374:
 === standardPrefilterdListSelectedExportToExcel() === === standardPrefilterdListSelectedExportToExcel() ===
  
-**CASO ​2: Export per aggiornamento**+**CASO ​1: Export per consultazione**
  
 **@Deprecated** (usare [[gwusermanual:​interface:​interface:​import_export_csv_shp#​standardlistselectedallattributeexporttoexcel|standardListSelectedAllAttributeExportToExcel()]]) **@Deprecated** (usare [[gwusermanual:​interface:​interface:​import_export_csv_shp#​standardlistselectedallattributeexporttoexcel|standardListSelectedAllAttributeExportToExcel()]])
Linea 471: Linea 471:
 |Integer|exportType|true|E'​ un numero intero ed indica il tipo di esportazione. Valori ammessi: 1 (per aggiornamento),​ 2 (tutti gli attributi)| |Integer|exportType|true|E'​ un numero intero ed indica il tipo di esportazione. Valori ammessi: 1 (per aggiornamento),​ 2 (tutti gli attributi)|
 |function|callback|false|Permette di inserire la funzione di callback dopo l importazione| |function|callback|false|Permette di inserire la funzione di callback dopo l importazione|
-|String|codColumn|false| Nome della o delle colonne per qualora si facesse un importazione tipo update. Le colonne se più di una dovrebbero ​essere separate da virgola|+|String|codColumn|false| ​singola colonna o colonne multiple separate da virgola ','​. ​Nome della o delle colonne per le quali, ​qualora si facesse un importazione tipo update, verrebbero usate come criterio di sovrascrittura. Le colonne se più di una devono ​essere separate da virgola|
 |Object|columnHeadersMap|false| HashMap per la mappatura dell header dello shape con quelle del database. Vanno inserite soltanto quelle dove il nome è diverso e le si voglia importare. La forma è la seguente: {'​nameColumnShp':​ '​nameColumnDatabase'​}| |Object|columnHeadersMap|false| HashMap per la mappatura dell header dello shape con quelle del database. Vanno inserite soltanto quelle dove il nome è diverso e le si voglia importare. La forma è la seguente: {'​nameColumnShp':​ '​nameColumnDatabase'​}|
 |Object|additionalMap|false| HashMap contenente la lista delle colonne non presenti nel file che si voglia comunque popolare durante l inserimento. la forma è {'​nameColumnDatabase':​ '​valore'​},​ il valore può essere anche preso dinamicamente dalla sessione ​ | |Object|additionalMap|false| HashMap contenente la lista delle colonne non presenti nel file che si voglia comunque popolare durante l inserimento. la forma è {'​nameColumnDatabase':​ '​valore'​},​ il valore può essere anche preso dinamicamente dalla sessione ​ |
Linea 507: Linea 507:
  }  }
 ); );
 +</​code>​
 +
 +=== standardListSelectedAllAttributeExportToShp(queryParameter,​ grid) ===
 +@Deprecated usa exportShape() per maggior controllo
 +
 +**Parametri**
 +  * **queryParameter**:​ Object, required
 +  * **grid**: Object, required
 +
 +Esportazione SHAPE di tutti gli attributi codificati (senza callback, columnHeadersMap,​ additionalMap e fileMapping)
 +
 +<code javascript>​
 +standardListSelectedAllAttributeExportToShp(queryParameter,​ grid);
 </​code>​ </​code>​
  
Linea 523: Linea 536:
 |String|itemId|false| chiave del record da cui si sta lanciando l azione, data.itemDB.pk_column,​ qualora si volesse importare i dati in una tabelle di una classe collegata a questa tramite childlist. I record verrebbero già caricati collegati al record padre dal quale viene lanciata l azione| |String|itemId|false| chiave del record da cui si sta lanciando l azione, data.itemDB.pk_column,​ qualora si volesse importare i dati in una tabelle di una classe collegata a questa tramite childlist. I record verrebbero già caricati collegati al record padre dal quale viene lanciata l azione|
 |String|relationName|false| nome della relazione sulla classe, qualora si volesse importare i dati in una tabelle di una classe collegata a questa tramite childlist. I record verrebbero già| |String|relationName|false| nome della relazione sulla classe, qualora si volesse importare i dati in una tabelle di una classe collegata a questa tramite childlist. I record verrebbero già|
-|String|codColumn|false| Nome della o delle colonne per qualora si facesse un importazione tipo update. Le colonne se più di una dovrebbero ​essere separate da virgola|+|String|codColumn|false| ​singola colonna o colonne multiple separate da virgola ','​. ​Nome della o delle colonne per le quali, ​qualora si facesse un importazione tipo update, verrebbero usate come criterio di sovrascrittura. Le colonne se più di una devono ​essere separate da virgola|
 |Object|columnHeadersMap|false| HashMap per la mappatura dell header dello shape con quelle del database. Vanno inserite soltanto quelle dove il nome è diverso e le si voglia importare. La forma è la seguente {'​nameColumnShp':​ '​nameColumnDatabase'​}| |Object|columnHeadersMap|false| HashMap per la mappatura dell header dello shape con quelle del database. Vanno inserite soltanto quelle dove il nome è diverso e le si voglia importare. La forma è la seguente {'​nameColumnShp':​ '​nameColumnDatabase'​}|
 |Object|additionalMap|false| HashMap contenente la lista delle colonne non presenti nel file che si voglia comunque popolare durante l inserimento. La forma è {'​nameColumnDatabase':​ '​valore'​}. Il valore può essere anche preso dinamicamente dalla sessione ​ | |Object|additionalMap|false| HashMap contenente la lista delle colonne non presenti nel file che si voglia comunque popolare durante l inserimento. La forma è {'​nameColumnDatabase':​ '​valore'​}. Il valore può essere anche preso dinamicamente dalla sessione ​ |
 |String|fileMapping|false| E' il nome del file di mapping se presente nei contenuti statici, deve risiedere nella cartellina SHAPE| |String|fileMapping|false| E' il nome del file di mapping se presente nei contenuti statici, deve risiedere nella cartellina SHAPE|
-|String|scriptName|false| Nome dello scripts groovy, ​senza estenzione ​che verrà lanciato al termine del caricamento. Lo script deve essere presente nella cartella dei contenuti statici sottocartella groovy|+|String|scriptName|false| Nome dello scripts groovy, ​CON l'​estensione ​che verrà lanciato al termine del caricamento. Lo script deve essere presente nella cartella dei contenuti statici sottocartella groovy|
 |Integer|handleErrorsType|false| Specifica il comportamento del sistema in presenza di un errore. Se 0,(default) il sistema va avanti segnalando alla fine i records non importati e l errore verificatosi,​ se 1 blocca l intera importazione se almeno un record non può essere importato| |Integer|handleErrorsType|false| Specifica il comportamento del sistema in presenza di un errore. Se 0,(default) il sistema va avanti segnalando alla fine i records non importati e l errore verificatosi,​ se 1 blocca l intera importazione se almeno un record non può essere importato|
 |Integer|idProcessImport|false| Se indicato non viene inserito un nuovo record nella tabella contenente l archivio storico delle importazioni bensì aggiorna il record con quel idProcess| |Integer|idProcessImport|false| Se indicato non viene inserito un nuovo record nella tabella contenente l archivio storico delle importazioni bensì aggiorna il record con quel idProcess|
Linea 650: Linea 663:
  
 La mappatura può avvenire in 3 modalità (ma non tutte le tipologie di importazione/​esportazione la supportano),​ ognuna mutualmente esclusiva con le altre. La mappatura può avvenire in 3 modalità (ma non tutte le tipologie di importazione/​esportazione la supportano),​ ognuna mutualmente esclusiva con le altre.
 +
 +Il formato .xlsx, sia in import che in export, non supporta la rimappatura delle colonne.
  
 Matrice di supporto. Matrice di supporto.
Linea 660: Linea 675:
   * **HashMap ** Si passa un parametro denominata '​columnHeadersMap'​ variabile hashmap contenente una lista di chiave\valore dove  in fase di esportazione la chiave è il campo nel database e valore il campo nel file e viceversa in fase di importazione.   * **HashMap ** Si passa un parametro denominata '​columnHeadersMap'​ variabile hashmap contenente una lista di chiave\valore dove  in fase di esportazione la chiave è il campo nel database e valore il campo nel file e viceversa in fase di importazione.
 <​code>​ <​code>​
 +//​esportazione
 columnHeadersMap:​{ columnHeadersMap:​{
-nome_campo_nel_database1:'​nome_campo_nel_file1',​nome_campo_nel_database2:'​nome_campo_nel_file2',​etc…}+  'nome_campo_nel_database1': '​nome_campo_nel_file1',​ 
 +  'nome_campo_nel_database2': '​nome_campo_nel_file2',​ 
 +  ​etc… 
 +}
  
 +//​importazione
 columnHeadersMap:​{ columnHeadersMap:​{
-nome_campo_nel_file1:'​nome_campo_nel_database1',​nome_campo_nel_file2:'​nome_campo_nel_database2',​etc…}+  'nome_campo_nel_file1': '​nome_campo_nel_database1',​ 
 +  'nome_campo_nel_file2': '​nome_campo_nel_database2', ​ 
 +  ​etc… 
 +}
  
 </​code>​ </​code>​
Linea 1064: Linea 1087:
 Geoweb gestisce correttamente l’importazione dei valori a prescindere dal locale della macchina che ha prodotto (o convertito) il file, con alcune forzature: Geoweb gestisce correttamente l’importazione dei valori a prescindere dal locale della macchina che ha prodotto (o convertito) il file, con alcune forzature:
   * Per i boolean l’unico locale differente da US supportato è IT. Sono comunque sia validi tutti i locali che rendono i boolean come “TRUE”/​”FALSE”   * Per i boolean l’unico locale differente da US supportato è IT. Sono comunque sia validi tutti i locali che rendono i boolean come “TRUE”/​”FALSE”
 +
 +
 +===Policy di importazione===
 +
 +Di fronte ad un file di import che presenta nuove colonne che si riferiscono a key non esistenti in alcun JSON, geoweb attua la seguente regola:
 +  * In caso di JSON con Famiglia Attributi (cioè sul quale c’è un PropertySetWidget verranno persistite SOLO le key per le quali esiste la definizione della relativa proprietà nella Famiglia Attributi.
 +  * In caso di JSON semplice tutte le key e relativi valori sono salvati nel JSON del record importato.
 +Quindi attualmente si delineano due casi d’uso ben distinti.
 +
 +
 +Il primo è quello di esercizio, dove il SM (od il GW ADMIN) censiscono e definiscono preventivamente le Famiglie Attributi e le relative proprietà. La possibilità di introdurre dati corrotti tramite import da parte dell’utente è ridotta.
 +Il secondo è quello in fase di popolamento dati iniziale o prototipazione del sistema, dove c’è totale libertà di import dei dati al fine di popolare il dato JSON. Nulla vieta che in una fase successiva su quel campo possa essere definita una Famiglia Attributi, magari costruita specificatamente in base ai valori effettivamente presenti.
 +
 +Trigger di classe .groovy
 +Durante le importazioni naturalmente girano i trigger applicativi configurati per la classe.
 +Per i tipi di dato JSON è predisposto un utilizzo map-like delle key nel groovy. I valori delle key sono quindi accessibili con notazione puntata. ​
 +
 +Esempi:
 +
 +<​code>​
 +valuesMap.data_json_b.key_1 = “value one”;
 +
 +valuesMap.data_json_b._metadata.groups.group_1.label = “Custom Label”;
 +</​code>​
  
  
  • gwusermanual/interface/interface/import_export_csv_shp.1753283115.txt.gz
  • Ultima modifica: 2025/07/23 17:05
  • da giorgio.scali