Variabili in sessione
In Geoweb sono presenti delle variabili in sessione, che possono essere utilizzate per stabilire comportamenti e basare ACL autorizzativi sui dati. Le variabili in sessione, sono richiamabili nei seguenti contesti:
- interfacce client, tramite la configurazione negli xml dei widget di classe e nelle pagine delle DACL
- groovy, in tutti i codici di file groovy eseguiti in contesti non legati ad una specifica sessione utente (quindi non nei Trigger Applicativi di classe)
- reportistiche di Jasper, passate come parametri della report
- codice javascript, disponibili nel namespace globale
Utente Corrente
Si tratta del nome dell'utente attualmente connesso al sistema. La variabile è richiamabile dalle seguenti posizioni:
groovy
gw_activeUser
@Deprecated from 4.4.0
activeUser
Widget e DACL
#{gw_activeUser}
IMPORTANTE: nelle espressioni SQL, non mettere gli apici anche se il valore che viene restituito o confrontato è una stringa. Gli apici vengono applicati in automatico da Geoweb nel momento della sostituzione del valore. Esempio:
<strQuery>select cod_service_category,descr_service_category,icon_file from gwd_service_category</strQuery <queryClausole>cod_service_owner=(select ambito1 from gwd_user_map where username=#{gw_activeUser})</queryClausole>
reportistiche di Jasper
$P{gw_activeUser}
javascript
gwActiveUser
Gruppo corrente
Si tratta del nome del Gruppo con cui si è connesso l'utente corrente. La variabile è richiamabile dalle seguenti posizioni:
groovy
gw_activeGroup
@Deprecated from 4.4.0
activeGroup
Widget e DACL
#{gw_activeGroup}
IMPORTANTE: nelle espressioni SQL, non mettere gli apici anche se il valore che viene restituito o confrontato è una stringa. Gli apici vengono applicati in automatico da Geoweb nel momento della sostituzione del valore.
reportistiche di Jasper
$P{gw_activeGroup}
javascript
gwActiveGroup
Ambito Corrente
Si tratta del valore di Ambito con cui si è connesso l'utente corrente. Essendo possibile configurare più di una Categoria di Ambito, in generale occorre indicare nel parametro il nome della Categoria di ambito di cui si vuole conoscere il valore corrente. La variabile è richiamabile dalle seguenti posizioni:
groovy
gw_activeScopeList è una lista di mappe, ognuna contenente come chiavi 'gwScopeDefinition' and 'gwScopeValue', e come valori stringhe human readable.
gw_activeScopeList
E' una lista di oggetti fatta cosi:
[ {gwScopeDefinition: "nome_categoria_ambito_1", gwScopeValue: "valore_ambito_1"}, {gwScopeDefinition: "nome_categoria_ambito_2", gwScopeValue: "valore_ambito_2"}, .. ]
Esempio di utilizzo. Recupero il valore d'ambito (scopeValue) conoscendo il nome della categoria d'ambito.
String scopeValue = null; String gwScopeDefinitionName = "nome_categoria_ambito_2"; for(def gw_activeScopeInfo: gw_activeScopeList){ if(gwScopeDefinitionName.euqals(gw_activeScopeInfo.gwScopeDefinition)) scopeValue = gw_activeScopeInfo.gwScopeValue }
Widget e DACL
#{gw_activeScopeValue('ScopeDefinitionName')}
IMPORTANTE: nelle espressioni SQL, non mettere gli apici anche se il valore che viene restituito o confrontato è una stringa. Gli apici vengono applicati in automatico da Geoweb nel momento della sostituzione del valore.
reportistiche di Jasper
DA RIVEDERE??
$P{gw_activeScopeValue('ScopeDefinitionName')}
javascript
gwActiveScopesMap
E' un oggetto fatto cosi:
{ <CategoriaAmbito1>: { scopeDefinitionDescription: "Categoria Ambito 1", scopeDescription: "Categoria Ambito 1", scopeName: "Nome ambito della cat 1", scopeValue: "Valore d'ambito della cat 1" }, <CategoriaAmbito2>: { scopeDefinitionDescription: "Categoria Ambito 2", scopeDescription: "Categoria Ambito 2", scopeName: "Nome ambito della cat 2", scopeValue: "Valore d'ambito della cat 2" }, ... }
Esempio di utilizzo, se devo recuperare scopeValue il valore d'ambito corrente conoscendo la <CategoriaAmbito1> che per esempio vale 'Commessa':
var scopeValue = gwActiveScopesMap.Commessa.scopeValue;
Variabili Utente
Sono variabili con nomi definibili dall'utente e che vengono messe in sessione allo scopo di essere recuperate e utilizzate tra le diverse tipologie di meccanismi (profili applicativi, report, ACL, ecc..).
La variabile è definibile nelle seguenti modalità:
groovy
Solo per i contesti dove è disponibile il sessionObject (groovy eseguiti all'apertura del Progetto Geoweb)
sessionObject.addSessionParameter(key, value);
javascript
Vedi le api
La variabile è richiamabile dalle seguenti posizioni:
groovy
session_parameter_name
Widget e DACL
#{session_parameter_name}
IMPORTANTE: nelle espressioni SQL, non mettere gli apici anche se il valore che viene restituito o confrontato è una stringa. Gli apici vengono applicati in automatico da Geoweb nel momento della sostituzione del valore.
reportistiche di Jasper
TODO
javascript
Vedi il dettaglio della API getGwSessionParameters().
var detailContainer = null; .. var callback = function(sessionParameters){ var code = sessionParameters.var_cod_commessa; var widget = detailContainer.getGwWidget({name: 'cod_service_catalog'}); if(widget && code!=null) widget.setValue(code); } var errorCallback = function(e){showErrorDialog(e.toString());} getGwSessionParameters({callback: callback, errorCallback: errorCallback});
CODICE SOLUZIONE
Solo nel caso di modello dati con pagine di accesso: si tratta del codice della soluzione commerciale installata. La variabile è richiamabile dalle seguenti posizioni:
groovy
gw_solutionCode
Widget e DACL
#{gw_solutionCode}
IMPORTANTE: nelle espressioni SQL, non mettere gli apici anche se il valore che viene restituito o confrontato è una stringa. Gli apici vengono applicati in automatico da Geoweb nel momento della sostituzione del valore. Esempio:
<strQuery>select cod_func from gwa_func_profile</strQuery <queryClausole>cod_macro_func in (select cod_macro_func from gwa_macro_func where cod_macro_func_grouper in (select cod_macro_func_grouper from gwa_macro_func_grouper where cod_solution=#{gw_solutionCode}))</queryClausole>