Nelle applicazioni 4D esistono quattro tipi di sessioni: sessione remota 4D, sessione di procedura memorizzata, sessione mobile e sessione Web.
Il comando Sessione restituisce già le sessioni Web o Mobile. Ciò consente di accedere a una serie di informazioni sulla sessione e a un oggetto condiviso da tutti i processi della sessione.
In 4D 20 R5, il comando Sessione è stato esteso alla connessione Client/Server e alla stored procedure.
Sessione 4D
Tipo diverso
Le definizioni di una sessione di stored procedure o di una sessione remota sono:
Sessione di stored procedure
Quando si chiama un metodo con il comando Execute on server 4D crea un processo “Stored procedure”. Tutti i processi “Stored procedure” appartengono alla stessa sessione, che è dedicata alle stored procedure.
Sessione remota
I metodi con la proprietà “Esegui sul server” vengono eseguiti nel processo client gemello sul server. Tutti i processi client gemelli vengono eseguiti nella stessa sessione.
Classe di sessione
Per una sessione remota o una sessione di stored procedure, il comando Session restituisce un oggetto 4D.Session contenente le seguenti proprietà:
- id – Identificatore univoco della sessione
- info – Tutte le informazioni sulla sessione
- storage – Un oggetto condiviso che può essere utilizzato per memorizzare informazioni disponibili a tutti i processi della sessione remota
- userName – Il nome dell’utente associato alla sessione
Le stesse funzioni della sessione Web sono disponibili per scrivere codice generico. Ma non fanno nulla e restituiscono sempre lo stesso valore. Vi invitiamo a consultare la documentazione della classe Session.
Esempio:
{ "id": "B022A91187EF46C6B4D58C2A9BDE3C91", "info":{ "type": "remote", "userName": "Designer", "machineName": "John Computer", "systemUserName": "John Doe", "indirizzo IPA": "localhost", "hostType": "mac", "creationDateTime": "2024-03-27T10:11:31Z", "state": "active", "ID": "B022A91187EF46C6B4D58C2A9BDE3C91", "persistentID": "24336199BADF4BFE945B109E565D1189" }, "storage": { "settings": { "text": "test" } }, "userName": "Designer" }
Condividere i dati tra i processi
Quando viene creata una nuova sessione, la proprietà “Session.storage” viene istanziata con un oggetto condiviso vuoto. In seguito, è possibile memorizzare tutti i dati che si desidera condividere tra i processi nella stessa sessione.
Use (Session.storage)
Session .storage.settings:=New shared object("property"; $value; "property2"; $value2)
End use
Casi d’uso
Processo di autenticazione e verifica dell’utente
Si avvia una procedura di autenticazione e verifica dell’utente quando un client si connette al server. Ad esempio, si può inserire nell’applicazione un codice inviato via e-mail o SMS. Le informazioni dell’utente vengono quindi aggiunte alla memoria di sessione, consentendo al server di identificare l’utente. In questo modo, il server 4D può accedere alle informazioni dell’utente per tutti i processi client, consentendo di scrivere codice personalizzato in base al ruolo dell’utente (ad esempio, manager, HR, ecc.).
Limitare i dati
Con questo nuovo tipo di sessione è possibile limitare i dati visualizzati dall’utente collegato. Ad esempio, in un’applicazione di gestione dei clienti, l’addetto alle vendite può accedere solo ai dati dei suoi clienti. Tutte le informazioni su questa nuova funzione sono spiegate in questo blog.
Avanti
Se avete domande o volete condividere la vostra esperienza o i vostri casi d’uso, non esitate a partecipare al Forum 4D.