Nuovo oggetto di sessione remota 4D con connessione client/server e procedura memorizzata

Tradotto automaticamente da Deepl

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.

HDI – Sessione remota

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.

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.