Con 4D 21, si apre una nuova opportunità: incorporare senza problemi una pagina Qodly all’interno di un’area web di un modulo 4D , senza bisogno di una licenza aggiuntiva per 4D Client. Grazie a 4D Qodly Pro, ora avete pieno accesso a una nuova generazione di interfacce utente moderne e dinamiche. Non c’è più bisogno di scegliere tra moduli desktop e web: combinateli entrambi ed evolvete al vostro ritmo.
4D Qodly Pro è disponibile all’ interno di 4D e fornisce tutti gli strumenti necessari per progettare, costruire ed eseguire moduli web per la vostra applicazione 4D.
La creazione di pagine Qodly si basa su sessioni Web scalabili, necessarie per utilizzare il comando Session e recuperare l’oggetto sessione. L’oggetto sessione è una pietra miliare di 4D Qodly Pro: fornisce la memorizzazione della sessione per i dati specifici dell’utente e svolge un ruolo fondamentale nella gestione dei permessi degli utenti.
In un’applicazione 4D client-server, 4D Server gestisce anche una sessione utente remota per ogni utente. Questo è molto comodo, perché questa sessione fornisce anche l’archiviazione della sessione!
A partire da 4D 21, queste sessioni utente remote possono ora servire anche le pagine Qodly. Per gli sviluppatori, il vantaggio immediato è la possibilità di incorporare una pagina Qodly all’interno di un’area web di un modulo 4D senza richiedere una licenza aggiuntiva per il client 4D. La licenza già utilizzata dall’utente per visualizzare il modulo 4D viene riutilizzata per il rendering della pagina Qodly incorporata, grazie alla sessione utente remota.
un esempio concreto
Nei moduli 4D, le aree web possono eseguire il rendering delle pagine Qodly, semplificando l’introduzione di contenuti web nell’applicazione 4D Server secondo i propri ritmi. Ciò consente di sfruttare appieno le potenzialità di 4D Qodly Pro, in particolare il suo design moderno e orientato al web.
Per accedere a un modulo 4D o a una pagina Qodly, è necessaria una licenza 4D Client; le stesse regole di licenza si applicano a entrambi gli ambienti.
Tuttavia, grazie al meccanismo OTP di , una singola licenza può essere utilizzata sia per un modulo 4D che per una pagina Qodly incorporata in un’area web interna.
Il risultato? Un modulo 4D che combina perfettamente i tradizionali componenti dell’interfaccia utente 4D con i moderni widget di Qodly Pro 4D.

Si può notare che l’id di sessione è lo stesso sia nel modulo 4D (che utilizza la sessione utente remota) sia nell’area web che visualizza una pagina Qodly.
come fare
Il meccanismo otp
OTP sta per One-Time-Passcode. Finora in un’applicazione 4D Qodly Pro, l’uso dell’OTP consente di recuperare una sessione esistente quando si passa da un dispositivo o da un browser a un altro, o quando si implementano flussi di lavoro avanti e indietro con sistemi esterni (come la creazione di un account via e-mail, API di terze parti, ecc.)
In breve:
- Ottenere un OTP per una determinata sessione chiamando la funzione Session.createOTP().
- Utilizzarla in qualsiasi browser con un url come https://my4Dapp/$lib/renderer/?w=myQodlyPage&$4DSID=”+OTP
La sessione originale viene recuperata utilizzando l’OTP fornito.
Con 4D 21, Session.createOTP() non è più limitato alle sessioni web, ma funziona anche con lesessioni degli utenti remoti!
Per recuperare e utilizzare una sessione utente remota esistente, il meccanismo è lo stesso: fornire il valore OTP nel parametro $4DSID della richiesta web e verrà utilizzata la sessione utente remota corrispondente.
Attuazione
Creare un metodo di progetto getOTP, o una funzione singleton, o una funzione ORDA. Assicurarsi che il codice venga eseguito sul server. L’esecuzione del comando Session su un client restituisce null.
// In Client Server:
// ----------------
// This method is executed on the server because the session object is on the server
// The Session object is Null on the client
//
#DECLARE() : Text
return Session.createOTP()
Caricare una pagina Qodly (qui sotto ‘Prodotti’) in un’area web.
Form.otp:=getOTP
Form.url:="http://localhost/$lib/renderer/?w=Products&$4DSID="+Form.otp
WA OPEN URL(*; "QodlyPage"; Form.url)
gestione dei privilegi
Qualsiasi privilegio richiesto per la pagina Qodly può essere impostato nella Sessione, prima di aprire l’URL nell’area Web utilizzando la funzione setPrivileges() .
Quando viene richiamata su una sessione utente remota, aggiunge privilegi alla sessione per i successivi accessi al Web.
sviluppare e testare l’applicazione client-server in un ambiente di sviluppo 4D
Poiché il meccanismo OTP è supportato anche in un ambiente di sviluppo 4D, l’applicazione client-server può essere facilmente sviluppata e testata in un ambiente di sviluppo 4D.
In questo ambiente di sviluppo, esiste ora una vera e propria sessione autonoma in grado di generare un OTP per gestire l’accesso al Web, proprio come una sessione utente remota.
Riproducete l’HDI allegato sia in un ambiente client-server che in un ambiente di sviluppo 4D. Non c’è alcuna differenza e il comportamento è lo stesso.
Come dimostrato sopra, la formula vincente è: 4D Qodly Pro = 4D, che rende semplicissimo portare interfacce moderne e dinamiche nelle applicazioni 4D Server.
La strada è aperta, non è necessario nulla di aggiuntivo e iniziare a lavorare con 4D Qodly Pro è più facile che mai.
