Siamo certi che sarete soddisfatti di esplorare le nuove funzionalità di Qodly Studio for 4D con 4D 20 R7.
Continuate a scoprire questa potente piattaforma, una soluzione robusta e facile da usare per costruire applicazioni web aziendali con un minimo sforzo di codifica.
Integrato in 4D, Qodly Studio for 4D consente di sfruttare la logica aziendale esistente sviluppata per le applicazioni desktop.
Entriamo nei dettagli e vediamo come la vostra applicazione può fornire più di semplici dati, offrendo un’interfaccia utente dinamica e una forte protezione dei dati attraverso l’impostazione dei privilegi.
fornire più di un dato con la nuova classe 4D.IncomingMessage
Con la vostra app Qodly, potete ora abilitare facilmente il download di file per i vostri utenti finali.
Utilizzate la nuova classe 4D.OutgoingMessage che l’applicazione può richiamare tramite una chiamata di funzione ORDA o una chiamata di funzione singleton.
In questo modo è possibile restituire contenuti web completi di corpo, intestazioni HTTP e codici di stato, pronti per essere elaborati dal browser.
È sufficiente implementare una funzione che restituisca un’istanza della nuova classe 4D.OutgoingMessage della nuova classe, impostare la chiamata di funzione e il browser web gestirà automaticamente la classe. 4D.OutgoingMessage classe automaticamente. Non sono necessari altri passaggi!
Leggete questo post del blog per saperne di più.
esempio
Nell’esempio che segue, la funzione getThumbnail() della classe di dati Products riceve come parametro un nome di prodotto, una larghezza e un’altezza. Restituisce al browser un’istanza della nuova classe 4D.OutgoingMessage il cui corpo contiene una miniatura dell’immagine del prodotto con le dimensioni richieste.
Si noti l’uso della parola chiave new onHTTPGet . Se questa parola chiave è applicata a una funzione, questa funzione è richiamabile con un verbo GET! Per scaricare un file è sufficiente fare clic su un link.
Class extends DataClass
exposed onHTTPGet Function getThumbnail($name : Text; $width : Integer; $height : Integer) : 4D.OutgoingMessage
var $file:=File("/RESOURCES/Images/"+$name+".jpg")
var $image; $thumbnail : Picture
var $response:=4D.OutgoingMessage.new()
READ PICTURE FILE($file.platformPath; $image)
CREATE THUMBNAIL($image; $thumbnail; $width; $height; Scaled to fit)
$response.setBody($thumbnail)
$response.setHeader("Content-Type"; "image/jpeg")
return $response
È così facile impostare questa chiamata di funzione in Qodly!
Ed ecco il risultato in azione!
nuovo evento OnPrivilegeChange
Se avete impostato dei privilegi per proteggere i vostri dati, l’accesso ai dati non viene concesso se i privilegi appropriati non sono presenti nella sessione.
Questo può portare a scenari fastidiosi come questo:
- L’utente non è autenticato e la sessione non contiene privilegi, quindi il caricamento di un’origine Qodly (che fa riferimento a dati protetti da permessi) all’avvio dell’applicazione non riesce perché mancano i privilegi appropriati.
- L’utente si è autenticato, i privilegi appropriati sono ora presenti nella sessione, ma … l’applicazione non viene informata di questo per caricare la fonte Qodly
Grazie al nuovo evento OnPrivilegeChange disponibile nella pagina, è possibile attivare un’azione (azione standard, navigazione o chiamata di funzione) quando i privilegi nella sessione sul server sono cambiati.
esempio
Nell’esempio seguente, l’applicazione HealthCare ha un’intestazione che mostra le statistiche (numero di medici, numero di pazienti, …). Questa intestazione mostra anche il top doctor (il medico che ha il maggior numero di appuntamenti). Si tratta di una fonte Qodly condivisa(mostBusyDoctor) caricata all’avvio dell’applicazione.
Finché l’utente non è autenticato, questa informazione non è disponibile perché non è consentito l’accesso alla lettura dei medici. Una volta effettuata l’autenticazione, grazie al nuovo evento OnPrivilegeChange impostato sulla pagina Header, questa fonte di dati può essere caricata.
Ed ecco il risultato in azione; guardate l’intestazione!
Ruoli e privilegi – Mostrare/nascondere i privilegi ereditati
Se avete già utilizzato l’interfaccia Ruoli e privilegi e avete impostato alcuni privilegi annidati, sapete che è bene visualizzare quali permessi sono ereditati da altri.
A volte, però, è necessario concentrarsi su una vista più leggera con solo i permessi impostati esplicitamente per un privilegio.
Ora è possibile. Basta attivare una levetta per questo!
Non aspettate oltre per provare le nuove funzionalità di Qodly studio for 4D e rendere la vostra web app facile da usare e potente!