Sessioni e localizzazione¶
Introduzione
Una sessione è un contesto di runtime in cui un utente esegue operazioni di lettura e/o scrittura in base ai propri permessi. La sessione espone delle informazioni, quali i gruppi a cui appartiene l’utente e la sua localizzazione, che si possono sfruttare per realizzare interfacce dinamiche a seconda delle caratteristiche dell’utente.
Sessione root
Quando una Q Application viene eseguita su un target, genera automaticamente una sessione root con un utente root, necessaria ad avviare tutti gli oggetti fondamentali, quali driver di comunicazione, allarmi, datalogger ecc.
Nota
l’utente root è un utente di sistema, non visibile nei nodi del progetto e non modificabile, né a design time né a runtime.
La sessione root istanzia anche il Presentation engine, se previsto nel progetto, che genera a sua volta una o più sessioni interattive, a seconda del tipo di Presentation engine.
Sessione interattiva e Presentation engine
Se in un progetto si imposta l’interfaccia utente, è necessario usare uno specifico oggetto chiamato Presentation engine, che a runtime genera una sessione interattiva per l’utente autenticato. Una sessione interattiva è una sessione che visualizza un’interfaccia utente interattiva.
L’interfaccia utente di una sessione interattiva è sempre composta da istanze degli oggetti grafici impostati a design time, a partire dalla finestra di avvio. Il Presentation engine infatti istanzia la finestra di avvio in ogni sessione interattiva, di conseguenza tutti gli oggetti visualizzati sono istanze.
Le istanze di oggetti grafici possono essere create/rimosse oppure visualizzate/nascoste in base a logiche dinamiche di navigazione, in base allo stato globale della macchina o del progetto (per esempio in base allo stato del PLC), oppure in base allo stato della sessione (permessi dell’utente e localizzazione della sessione). Queste logiche si realizzano tramite pannelli di navigazione, NetLogic e visibilità o meno degli oggetti.
Nell’esempio seguente, le pagine iniziali nelle sessioni interattive degli utenti User1, User2 e User3 sono istanze della pagina iniziale impostata nel Presentation engine. Ognuna contiene quindi diverse istanze degli stessi oggetti A, B e C, visualizzate o nascoste grazie a logiche dinamiche basate sull’utente. Inoltre, i testi in interfaccia possono essere tradotti a seconda della localizzazione dell’utente.
Scenari possibili a seconda del Presentation engine
Di seguito uno schema che riassume i possibili scenari di runtime a seconda dei Presentation engine impostati nel progetto.
Presentation engine nativo
Presentation engine web
Se il progetto a runtime… |
Allora… |
---|---|
ha solo un oggetto Presentation engine nativo |
esiste una sessione di root e una sessione interattiva, in cui è possibile cambiare utente. |
ha solo un oggetto Presentation engine web |
esiste una sessione di root e possono esistere da zero a n sessioni interattive. Ogni sessione è associata a un solo utente e lo stesso utente può accedere in più sessioni contemporaneamente, per esempio da un PC e da un dispositivo mobile. |
ha entrambi i Presentation engine |
lo stesso utente può accedere sia alla sessione generata dall’oggetto Presentation engine nativo su un dispositivo, sia a più sessioni generate dall’oggetto Presentation engine web su altri dispositivi. |
Nodi della sessione
Per realizzare logiche applicative legate all’utente di sessione, Q Studio fornisce l”alias di sessione {Session}. Questo è un alias di sistema che punta al nodo Session, ovvero il nodo della sessione corrente a runtime.
Si realizzano quindi collegamenti dinamici con i nodi all’interno del nodo Session, le cui proprietà sono valorizzate solo a runtime in base all’utente di sessione e alla localizzazione della sessione e/o dell’utente. In Q Studio l’alias di sessione è disponibile nella finestra dei collegamenti dinamici quando si imposta qualsiasi proprietà di oggetti grafici.
Di seguito sono descritti i nodi della sessione:
Nodo |
Descrizione |
---|---|
Groups |
Gruppi definiti nel progetto. Ogni gruppo espone uno dei seguenti valori:
|
MeasurementUnits |
Elenco delle grandezze disponibili. Per ogni grandezza sono disponibili le seguenti proprietà valorizzate in base alla localizzazione:
|
LocaleIds |
Array di identificativi di localizzazione della sessione. Indica tutte le localizzazioni supportate dall’interfaccia utente. |
User |
Utente di sessione. Contiene le seguenti proprietà:
|