===== Customizzazione per cliente delle label di prodotto =====
* [[custom:dictionary_custom_labels#Premessa]]
* [[custom:dictionary_custom_labels#Requisiti]]
* [[custom:dictionary_custom_labels#Sviluppo]]
* [[custom:dictionary_custom_labels#Nuove tabelle]]
* [[custom:dictionary_custom_labels#Configurazione]]
* [[custom:dictionary_custom_labels#Script Oracle]]
* [[custom:dictionary_custom_labels#Script Postgres]]
* [[custom:dictionary_custom_labels#Script Sqlserver]]
==== Premessa ====
Aalcuni clienti richiedono di modificare alcune label nei dettagli di classe ed altrove, con terminologia più familiare ai propri processi aziendali.
Queste sono di fatto personalizzazioni, che sono salvate nei metadati, e che fanno deviare la configurazione installata, da quella standard del sottostante prodotto.
Questo ha contributo nel tempo al proliferare di tante versioni differenti dello stesso prodotto.
==== Requisiti ====
La necessità è quella di permettere ai utenti configuratori di poter customizzare le labels per ciascun cliente,
senza intaccare i metadati standard del prodotto.
==== Sviluppo ====
Si è scelto di procedere all'implementazione estendendo l'attuale meccanismo del dizionario, le cui funzionalità sono di fatto già integrate in tutti i punti necessari (e non solo label del dettaglio di classe).
La funzionalità è disponibile dalla versione **4.6.0**.
==== Nuove tabelle ====
* [data_schema].**geow_dictionary_custom_labels**: //tabella// sullo **schema dati**, perchè contiene di fatto personalizzazioni del cliente. Campi:
* **dic_key** Stinga (900) NOT NULL
* **dic_lang** Stinga (3) NOT NULL
* **dic_value** Stinga (900)
* [metadata_schema].**geow_dictionary_custom_labels**: //vista//, basata sulla //geow_dictionary_custom_labels//, con stessi cmapi, ma sullo **schema metadati**. Questo in quanto le sovrascritture vanno a modificare i metadati del framework.
==== Configurazione ====
Analogamente al meccanismo del dizionario, basterà configurare la tripletta **key**-**lang**-**value**.
* //key// è la stringa come da configurazione del prodotto base
* //lang// è il codice del locale. Esempi: //it//, //en//, etc..
* //value// è il valore della label custom che si vuole configurare
==== Note ====
Qualora la stessa label, presente su moduli (od anche solo classi) differenti, abbia necessità di essere personalizzata in differenti maniere a seconda del contesto, bisogna creare differenti label nella configurazione dei moduli interessati, e mapparle coerentemente nella nuova tabella //geow_dictionary_custom_labels//.
E' prevista la possibilità di creare una classe geoweb in gestione della tabella //geow_dictionary_custom_labels//, per permettere a determinati utenti di configurare in autonomia le label
==== Script ====
=== Script Oracle ===
/*SCHEMA DATA*/
-- DROP TABLE "DATAGW".GEOW_DICTIONARY_CUSTOM_LABELS;
CREATE TABLE "DATAGW".GEOW_DICTIONARY_CUSTOM_LABELS
(
DIC_KEY VARCHAR2(900) NOT NULL ,
DIC_LANG VARCHAR2(3) NOT NULL ,
DIC_VALUE VARCHAR2(900) ,
CONSTRAINT TABLE1_PK PRIMARY KEY
(
KEY ,
LANG
)
ENABLE
);
/*SCHEMA METADATA*/
-- DROP VIEW "METADATAGW".GWM_DICTIONARY_CUSTOM_LABELS;
CREATE OR REPLACE VIEW "METADATAGW".GWM_DICTIONARY_CUSTOM_LABELS AS
SELECT GEOW_DICTIONARY_CUSTOM_LABELS.dic_key,
GEOW_DICTIONARY_CUSTOM_LABELS.dic_lang,
GEOW_DICTIONARY_CUSTOM_LABELS.dic_value
FROM "DATAGW".GEOW_DICTIONARY_CUSTOM_LABELS;
=== Script Postgres ===
/*SCHEMA DATA*/
-- DROP TABLE "DATAGW".geow_dictionary_custom_labels;
CREATE TABLE IF NOT EXISTS "DATAGW".geow_dictionary_custom_labels
(
dic_key character varying(900) NOT NULL,
dic_lang character varying(3) NOT NULL,
dic_value character varying(900),
CONSTRAINT geow_label_overview_pkey PRIMARY KEY (dic_key, dic_lang)
)
/*SCHEMA METADATA*/
-- DROP VIEW "METADATAGW".gwm_dictionary_custom_labels;
CREATE OR REPLACE VIEW "METADATAGW".gwm_dictionary_custom_labels AS
SELECT geow_dictionary_custom_labels.dic_key,
geow_dictionary_custom_labels.dic_lang,
geow_dictionary_custom_labels.dic_value
FROM "DATAGW".geow_dictionary_custom_labels;
=== Script Sqlserver ===
/*SCHEMA DATA*/
-- DROP TABLE "DATAGW".GEOW_DICTIONARY_CUSTOM_LABELS;
CREATE TABLE IF NOT EXISTS "DATAGW".GEOW_DICTIONARY_CUSTOM_LABELS
(
[DIC_KEY] varchar(900) NOT NULL,
[DIC_LANG] varchar(3) NOT NULL,
[DIC_VALUE] varchar(900),
CONSTRAINT PK_GEOW_DICTIONARY_CUSTOM_LABELS PRIMARY KEY CLUSTERED
(
[key] ASC
)
)
/*SCHEMA METADATA*/
-- DROP VIEW "METADATAGW".GWM_DICTIONARY_CUSTOM_LABELS;
/*SCHEMA METADATA*/
CREATE OR REPLACE VIEW "METADATAGW".GWM_DICTIONARY_CUSTOM_LABELS AS
SELECT GEOW_DICTIONARY_CUSTOM_LABELS.dic_key,
GEOW_DICTIONARY_CUSTOM_LABELS.dic_lang,
GEOW_DICTIONARY_CUSTOM_LABELS.dic_value
FROM "DATAGW".GEOW_DICTIONARY_CUSTOM_LABELS;