Parametri di sessione
Una sessione è la connessione che l'utente stabilisce con il server quando visualizza un mashup. È possibile creare parametri di sessione per memorizzare dati temporanei della sessione utente corrente, ad esempio un'impostazione del tema di stile preferito per un mashup. I valori dei parametri di sessione sono univoci per ogni utente connesso al server e vengono memorizzati fino alla fine della sessione. I dati dei parametri di sessione vengono mantenuti anche quando un utente si sposta tra diversi mashup.
Una sessione termina quando un utente chiude l'applicazione, si disconnette utilizzando la funzione di disconnessione oppure quando scade per inattività sul server. Il periodo di timeout di default per una sessione di piattaforma è di 30 minuti. È possibile configurare il timeout di default utilizzando il servizio di amministrazione
SetPlatformSessionTimeout. Per ulteriori informazioni, vedere
Servizi per gli amministratori.
Best practice
• Utilizzare un database o un oggetto per memorizzare i dati necessari per più di una singola sessione.
• Se possibile, utilizzare i parametri di mashup per scambiare dati tra i mashup. L'utilizzo di troppi parametri di sessione può influire sulle prestazioni. Per ulteriori informazioni, vedere
Configurazione dei parametri del mashup.
Utilizzo di eventi modificati per i valori dei parametri di sessione
È possibile aggiungere parametri di sessione in UserManagementSubsystem, quindi utilizzare il pannello Sessione in Mashup Builder per creare associazioni a widget, servizi o funzioni in un mashup. Quando si seleziona il pannello, vengono elencati i parametri di sessione disponibili.
Nel pannello Proprietà dati viene visualizzato un evento <Parameter_Name>Changed per ciascun parametro. Questi eventi si attivano solo quando viene modificato il valore di un parametro di sessione sul lato client. L'evento non viene attivato con la modifica del valore di un parametro mediante il servizio SetGlobalSessionValues sul server. Per attivare un evento quando il valore viene modificato nel server, utilizzare invece l'evento ServiceInvokeComplete del servizio utilizzato per aggiornare il parametro.
Aggiunta di parametri di sessione
È possibile utilizzare un'entità thing shape con una o più proprietà come parametri di sessione. Per aggiungere una data shape all'entità UserManagementSubsystem, attenersi alla procedura descritta di seguito
1. In Composer fare clic su Sfoglia.
2. In Sistema selezionare Sottosistemi, quindi aprire l'entità UserManagementSubsystem.
3. Aggiungere una thing shape al sottosistema in uno dei modi descritti di seguito.
◦ Nella scheda Servizi eseguire il servizio AddSessionShape:
a. Individuare il servizio e fare clic su
nella colonna
Esegui. Viene visualizzata la finestra di dialogo
Esegui servizio.
b. Nel campo Nome selezionare la thing shape che contiene i parametri della sessione, quindi fare clic su Esegui.
c. Fare clic su Fine per chiudere la finestra di dialogo.
d. Fare clic su Salva per salvare le modifiche apportate al sottosistema.
◦ Nella scheda Configurazione, in Impostazioni definizione sessione utente, fare clic su Aggiungi. Viene visualizzata una finestra di dialogo.
a. Digitare il nome di una thing shape e fare clic su Aggiungi.
b. Fare clic su Salva per salvare le modifiche apportate al sottosistema.
La thing shape viene aggiunta al sottosistema. Le proprietà della data shape vengono elencate come parametri di sessione associabili quando si apre il pannello Sessione.
| L'utilizzo di una infotable con più righe e colonne come parametro di sessione può comportare una riduzione delle prestazioni. |
Per ulteriori informazioni, vedere
Sottosistema Gestione utenti.
Accesso ai parametri di sessione sul server di piattaforma
Per recuperare i valori dei parametri di sessione, attenersi alla procedura descritta di seguito.
1. In Composer fare clic su Sfoglia.
2. In Sistema selezionare Risorse, quindi aprire l'entità di risorsa CurrentSessionInfo.
3. Nella scheda Servizi eseguire il servizio GetGlobalSessionValues:
a. Individuare il servizio nell'elenco quindi, nella colonna
Esegui, fare clic su
. Viene visualizzata la finestra di dialogo
Esegui servizio.
b. Fare clic su Esegui. Nel riquadro Output vengono visualizzati i valori dei parametri per la sessione corrente.
c. Fare clic su Fine per chiudere la finestra di dialogo.
Nel pannello Sessione sono elencati i parametri di sessione disponibili. È possibile utilizzare il pannello Dati per aggiungere il servizio GetGlobalSessionValues a un mashup e associare i rispettivi valori restituiti a funzioni, servizi o widget.
Esempio: utilizzo di un parametro di sessione per memorizzare l'input per un widget Campo di testo
Quando una proprietà del widget è associata direttamente a un parametro di sessione, dopo l'aggiornamento della pagina il valore della proprietà di sessione viene perso. Per mantenere il valore durante il ricaricamento della pagina, è necessario utilizzare i servizi setter e getter per aggiornare e recuperare il valore del parametro.
1. Definire un parametro di sessione attenendosi alla procedura descritta nella sezione Aggiunta di parametri di sessione.
2. Creare un oggetto helper contenente un servizio che imposti il valore del parametro di sessione.
3. Aggiungere un parametro di input al servizio setter denominato input_string, quindi aggiungere il seguente codice JavaScript:
Resources["CurrentSessionInfo"].SetGlobalSessionStringValue({name: "your_session_var", value: input_string});
4. Creare un mashup, quindi aggiungere un widget Casella di testo, un widget Pulsante e una funzione di convalida.
5. Utilizzare il pannello Dati per aggiungere i servizi riportati di seguito.
◦ Servizio setter creato al passo 2.
◦ Servizio GetGlobalSessionValues dalla risorsa CurrentSessionInfo.
6. Associare la proprietà Text del widget Campo di testo al parametro input_string del servizio setter.
7. Associare la variabile di sessione nella proprietà All Data del servizio GetGlobalSessionValues alla proprietà Text del widget Campo di testo.
8. Associare l'evento Clicked del widget Pulsante al servizio setter.
9. Associare l'evento ServiceInvokeCompleted del servizio setter al servizio Evaluate della funzione di convalida. L'utilizzo di questo evento garantisce che il valore del parametro di sessione venga sempre aggiornato prima che venga eseguita la funzione.
10. Modificare la funzione e aggiungere il codice seguente all'espressione:
location.reload()
11. Fare clic su Salva, quindi visualizzare il mashup.
Immettere un valore nella casella di testo, quindi fare clic sul pulsante per ricaricare la pagina. Il valore viene mantenuto dopo il caricamento della pagina.