custom:session_variables

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

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

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

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;

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});

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>
  • custom/session_variables.txt
  • Ultima modifica: 2023/04/21 16:19
  • da giada.podelvento