Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
gwusermanual:interface:exportable_report_setup [2024/06/17 04:08] giorgio.scali |
gwusermanual:interface:exportable_report_setup [2024/07/18 16:29] (versione attuale) giorgio.scali [configuration.properties] |
||
---|---|---|---|
Linea 1: | Linea 1: | ||
===== Report Esportabili - Messa in esercizio ===== | ===== Report Esportabili - Messa in esercizio ===== | ||
+ | |||
+ | Questa pagina si riferisce alle operazioni preliminari volte alla prima messa in opera delle [[gwusermanual:interface:exportable_report|Report Esportabili]]. | ||
+ | |||
+ | ==== Modello Dati ==== | ||
+ | Overview entità coinvolte: | ||
+ | * Report Esportabili (//gwr_report//) | ||
+ | * Modelli Report (//gwr_model//) | ||
+ | * Parametri Report (//gwr_param//) | ||
+ | * Categorie Report (//gwr_report_category//) | ||
+ | * Funzioni (//gwa_func//, presa dal modello dati delle pagine di accesso) | ||
+ | * Classi Filtrabili (//gwr_filterable_classes//) | ||
+ | |||
+ | |||
+ | {{ :er-diagram.png?direct |}} | ||
+ | |||
+ | ==== Abilitazione nel configuration.properties ==== | ||
+ | |||
+ | Le Report Esportabili, essendo rilasciate dalla versione 4.7.1 e necessitando di svariate nuove tabelle (che vanno preventivamente deployate tramite script) rispetto alla 4.7.0, vanno esplicitamente abilitate tramite il flag **report.exportableReports.enabled** nel configuration.properties (default false) | ||
+ | |||
+ | <code> | ||
+ | ... | ||
+ | report.exportableReports.enabled=true | ||
+ | ... | ||
+ | </code> | ||
==== Installare gli script ==== | ==== Installare gli script ==== | ||
- | Questo passaggio è necessario solo per eventuali porting alla 4.7.1 da una versione precedente: | + | Questo passaggio è necessario solo per eventuali porting alla 4.7.1 da versioni precedenti: |
- | **La presenza della tabella gwa_func è un prerequisito**. | + | **La presenza della tabella gwa_func è un prerequisito**. Dovrebbe già essere presente in quanto facente parte del modello dati delle pagine di accesso. In caso contrario usare lo script dedicato. |
Linea 308: | Linea 332: | ||
------------------------------------------------------------- | ------------------------------------------------------------- | ||
</file> | </file> | ||
+ | |||
+ | <file sql postgres_gwa_func.sql > | ||
+ | -- Table: test_gw47data.gwa_func | ||
+ | |||
+ | -- DROP TABLE test_gw47data.gwa_func; | ||
+ | |||
+ | CREATE TABLE IF NOT EXISTS test_gw47data.gwa_func | ||
+ | ( | ||
+ | id_func integer NOT NULL, | ||
+ | cod_func character varying(50) COLLATE pg_catalog."default" NOT NULL, | ||
+ | name_func character varying(150) COLLATE pg_catalog."default", | ||
+ | description_func character varying(255) COLLATE pg_catalog."default", | ||
+ | icon_name character varying(100) COLLATE pg_catalog."default", | ||
+ | type_func integer, | ||
+ | enabled_func integer, | ||
+ | cod_module character varying(50) COLLATE pg_catalog."default", | ||
+ | cod_obj_type character varying(50) COLLATE pg_catalog."default", | ||
+ | usergroup character varying(250) COLLATE pg_catalog."default", | ||
+ | project_name character varying(50) COLLATE pg_catalog."default", | ||
+ | session_code_field character varying(250) COLLATE pg_catalog."default", | ||
+ | session_code_field_name character varying(250) COLLATE pg_catalog."default", | ||
+ | open_new_tab integer NOT NULL DEFAULT 0, | ||
+ | license_use integer NOT NULL DEFAULT 0, | ||
+ | CONSTRAINT gwa_func_pkey PRIMARY KEY (id_func), | ||
+ | CONSTRAINT gwa_func_un UNIQUE (cod_func) | ||
+ | ) | ||
+ | WITH ( | ||
+ | OIDS = FALSE | ||
+ | ) | ||
+ | TABLESPACE pg_default; | ||
+ | |||
+ | ALTER TABLE test_gw47data.gwa_func | ||
+ | OWNER to test_gw46data; | ||
+ | |||
+ | COMMENT ON TABLE test_gw47data.gwa_func | ||
+ | IS 'tabella anagrafica delle funzioni per le pagine di accesso'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.id_func | ||
+ | IS 'chiave primaria'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.cod_func | ||
+ | IS 'codice univoco della funzione'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.name_func | ||
+ | IS 'nome della funzione'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.description_func | ||
+ | IS 'descrizione estesa della funzione'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.icon_name | ||
+ | IS 'nome della classe css di fontawesome rappresentativa dell''icona'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.type_func | ||
+ | IS 'tipologia di funzione'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.enabled_func | ||
+ | IS 'check di funzione abilitata'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.cod_module | ||
+ | IS 'codice del modulo di riferimento'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.cod_obj_type | ||
+ | IS 'codice del tipo di oggetto'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.usergroup | ||
+ | IS 'nome del gruppo di riferimento'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.project_name | ||
+ | IS 'nome del progetto geoweb'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.session_code_field | ||
+ | IS 'nome del parametro in sessione che contiene il campo “fieldToStore” dell’elemento da visualizzare per il progetto corrente'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.session_code_field_name | ||
+ | IS 'nome del parametro in sessione che contiene il campo “fieldToShow” dell’elemento da visualizzare'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.open_new_tab | ||
+ | IS 'flag, default 0. Se 0 non apre il progetto in un nuovo tab.Se 1 apre il progetto geoweb in un nuovo tab'; | ||
+ | |||
+ | COMMENT ON COLUMN test_gw47data.gwa_func.license_use | ||
+ | IS 'flag, default 0. Se 0 le utenze associate alla funzione non consumano licenza. Se 1 la consumano'; | ||
+ | </file> | ||
+ | |||
==== Importare groovy ==== | ==== Importare groovy ==== | ||
Tutti i groovy (prefisso **gwr_**) sono nuovi e possono essere importati senza conseguenze. | Tutti i groovy (prefisso **gwr_**) sono nuovi e possono essere importati senza conseguenze. | ||
Un unica eccezione riguarda **gwa_func.groovy**, che potrebbe già essere presente e nel caso va modificato aggiungendo i controlli forniti. | Un unica eccezione riguarda **gwa_func.groovy**, che potrebbe già essere presente e nel caso va modificato aggiungendo i controlli forniti. | ||
+ | |||
+ | {{ :gwr_groovy.zip|gwr_groovy.zip}} | ||
==== Importare metadati geoweb ==== | ==== Importare metadati geoweb ==== | ||
- | E' messa a disposizione la configurazione dei metadati del [[exp_rep_proj.zip|progetto di test]] dedicato alle Report Esportabili. | + | E' messa a disposizione la configurazione dei metadati del {{ : exp_rep_proj.zip|exp_rep_proj.zip}} dedicato alle Report Esportabili. |
- | **La presenza della classe gwa_func è un prerequisito**. Nel caso mancasse lo script va ripreso dal modello dati delle pagine di accesso. | + | **La presenza della classe gwa_func è un prerequisito**.seguire le seguenti linee guida: |
- | Nel caso la classe ci sia già va specificato il trigger applicativo **gwa_func.groovy**. Nel caso ce ne fosse già uno, si può lasciare sia il nome gia presente che il file, ma esso va integrato con il contenuto presente nel gwa_func.groovy | + | * nel caso mancasse lo script va ripreso dal modello dati delle pagine di accesso. |
+ | * nel caso la classe fosse assente, questa è una base da cui partire {{ :gwa_func.zip|gwa_func.zip}} | ||
+ | * nel caso la classe ci sia già, va comunque specificato il trigger applicativo **gwa_func.groovy**. | ||
+ | * nel caso si fosse già un trigger applicativo configurato, esso va integrato con il contenuto presente nel gwa_func.groovy fornito. | ||
L'utente configuratore deve inizialmente importare questo progetto nell'ambiente di sviluppo del prodotto. | L'utente configuratore deve inizialmente importare questo progetto nell'ambiente di sviluppo del prodotto. | ||
Linea 342: | Linea 454: | ||
=== Rivedere i permessi === | === Rivedere i permessi === | ||
- | Eventualmente rivedere tutti i permessi alle varie classi, considerando che escono con gruppo = 'SOLUTION_MANAGER' | + | Eventualmente rivedere tutti i permessi alle varie classi, considerando che escono con gruppo = 'SOLUTION_MANAGER'. |
- | === popolare gwr_filterable_classes === | + | === Popolare coerentemente gwr_filterable_classes === |
La tabella **gwr_filterable_classes**, di cui è rilasciata anche la classe di gestione, **serve a censire esplicitamente tutte le tabelle/classi che possono essere oggetto di essere usate in una qualche Report Esportabile**. | La tabella **gwr_filterable_classes**, di cui è rilasciata anche la classe di gestione, **serve a censire esplicitamente tutte le tabelle/classi che possono essere oggetto di essere usate in una qualche Report Esportabile**. | ||
- | Questo passaggio è necessario perchè al SM è data la possibilità di filtrare i dati delle Report usando i filtri delle liste e dei dettagli di classe. | + | Questo passaggio è necessario in quanto al SM è data la possibilità di abilitare la possibilità di filtrare i dati delle Report usando i filtri delle liste e dei dettagli di classe. |
- | E' onere del SM quindi, specificare per quali classi la Report è consona, e quindi se ne possono usare i filtri che Geoweb crea in automatico per parzializzare i dati della Report. | + | E' onere del SM quindi, specificare per quali classi la Report è compatibile ai fini dell'esportazione parzializzata, e quindi se ne possono usare i filtri che Geoweb crea in automatico per parzializzare i dati della Report. |
- | E'quindi onere dell'utente configuratore scremare in origine le classi sulle quali si può generare una Report. | + | E' quindi onere dell'utente configuratore scremare in origine le classi sulle quali si può generare una Report. |
- | In alcuni casi è prassi fare classi Geoweb differenti, copiandole, che hanno come sottostante la stessa tabella, per svariate esigenze. | + | In alcuni casi è prassi configurare classi Geoweb differenti, copiandole le une dalle altre, con sottostante la stessa tabella, per svariate esigenze. |
- | In questo caso la problematica non si pone, avendo l'accortezza di usare come Label della classe, la stessa nomenclatura configurata per l'utente SM e gli utenti finali, in maniera tale che il SM possa intuitivamente selezionare le classi adatte. | + | In questo caso la problematica non si pone, avendo l'accortezza di usare come //Label della classe//, la stessa nomenclatura configurata e visibile nelle varie Funzioni per gli utenti finali (compreso il SM), in maniera tale che il SM possa intuitivamente selezionare le classi compatibili. |
Linea 414: | Linea 526: | ||
* Geoweb (marginalmente) | * Geoweb (marginalmente) | ||
- | Questo ruolo potrebbe essere svolto (almeno inizialmente) proprio da Geoweb Italia su richiesta del cliente. | + | Questo ruolo potrebbe essere svolto su richiesta del cliente proprio da Geoweb Italia (almeno inizialmente). |
- | Per i clienti che volessero agire in completa autonomia, vanno a tendere predisposti e resi fruibili anche degli script per crearsi un database di test semplificato, separato ma simile da quello di esercizio, e che in ogni caso rispecchi il modello dati delle anagrafiche su cui è previsto poter creare delle report. | + | Per i clienti che volessero agire in completa autonomia, vanno predisposti e resi fruibili anche degli **script per crearsi un database di test semplificato**, al fine di avere un ambiente di sviluppo separato ma simile da quello di esercizio, e che in ogni caso rispecchi il modello dati delle anagrafiche su cui è previsto poter creare delle report. |