QODLY STUDIO PER 4D: LE NOVITÀ DI 4D 20 R7

Tradotto automaticamente da Deepl

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!

blank

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.

blank

Ed ecco il risultato in azione; guardate l’intestazione!

blank

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!

blank

Non aspettate oltre per provare le nuove funzionalità di Qodly studio for 4D e rendere la vostra web app facile da usare e potente!

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. 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.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.