Nous sommes certains que vous serez heureux d’explorer les nouvelles fonctionnalités que Qodly Studio for 4D apporte avec 4D 20 R7.
Continuez à découvrir cette plateforme puissante – une solution robuste et conviviale pour construire des applications web professionnelles avec un effort de codage minimal.
Intégré à 4D, Qodly Studio for 4D vous permet d’exploiter la logique métier existante développée pour les applications de bureau.
Entrons dans les détails et voyons comment votre application peut fournir plus que de simples données tout en offrant une interface utilisateur dynamique et une forte protection des données grâce à la mise en place de privilèges.
FOURNIR PLUS QUE DES DONNÉES AVEC LA NOUVELLE classe 4D.IncomingMessage
Avec votre application Qodly, vous pouvez désormais facilement permettre à vos utilisateurs finaux de télécharger des fichiers.
Utilisez la nouvelle classe 4D.OutgoingMessage que votre application peut récupérer via un appel de fonction ORDA ou un appel de fonction singleton.
Cela permet de renvoyer un contenu web complet avec un corps, des en-têtes HTTP et des codes d’état prêts à être traités par le navigateur.
Il suffit d’implémenter une fonction renvoyant une instance de la nouvelle classe 4D.OutgoingMessage de mettre en place l’appel de fonction, et le navigateur web gère automatiquement la classe 4D.OutgoingMessage automatiquement. Aucune étape supplémentaire n’est nécessaire !
Lisez cet article de blog pour en savoir plus.
exemple
Dans l’exemple ci-dessous, la fonction getThumbnail() de la classe de données Products reçoit en paramètre un nom de produit, une largeur et une hauteur. Elle renvoie au navigateur une instance de la nouvelle classe 4D.OutgoingMessage dont le corps contient une vignette de l’image du produit de la taille requise.
Notez l’utilisation du mot-clé new onHTTPGet est utilisé. Si ce mot-clé est appliqué à une fonction, cette fonction peut être appelée avec un verbe GET ! Le téléchargement d’un fichier peut se faire en cliquant simplement sur un lien.
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
C’est si simple de mettre en place cet appel de fonction dans Qodly !
Et voici le résultat en action !
nouvel événement OnPrivilegeChange
Si vous avez mis en place des privilèges pour protéger vos données, l’accès aux données n’est pas accordé si les privilèges appropriés ne sont pas dans la session.
Cela peut conduire à des scénarios ennuyeux comme celui-ci :
- L’utilisateur n’est pas authentifié et la session ne contient pas de privilèges, de sorte que le chargement d’une source Qodly (se référant à des données protégées par des autorisations) au démarrage de l’application échoue parce que les privilèges appropriés ne sont pas présents.
- L’utilisateur s’est authentifié, les privilèges appropriés sont maintenant dans la session, mais … l’application n’en est pas informée pour charger la source Qodly.
Grâce au nouvel événement OnPrivilegeChange disponible sur la page, vous pouvez déclencher une action (action standard, navigation ou appel de fonction) lorsque les privilèges de la session sur le serveur ont changé.
Exemple de changement de privilèges
Dans l’exemple ci-dessous, l’application HealthCare comporte un en-tête affichant des statistiques (nombre de médecins, nombre de patients, …). Cet en-tête affiche également le premier médecin (celui qui a le plus grand nombre de rendez-vous). Il s’agit d’une source Qodly partagée(mostBusyDoctor) chargée au démarrage de l’application.
Tant que l’utilisateur n’est pas authentifié, cette information n’est pas disponible car l’accès à la lecture des médecins n’est pas autorisé. Une fois l’authentification effectuée, grâce au nouvel événement OnPrivilegeChange mis en place sur la page Header, cette source de données peut être chargée.
Et voici le résultat en action ; regardez l’en-tête !
Rôles et privilèges – Afficher/masquer les privilèges hérités
Si vous avez déjà utilisé l’interface Rôles et privilèges et mis en place des privilèges imbriqués, vous savez qu’il est utile de voir quelles sont les autorisations héritées des autres.
Mais parfois, vous devez vous concentrer sur une vue plus claire avec uniquement les autorisations que vous avez explicitement définies pour un privilège.
C’est désormais possible. Il suffit d’activer un interrupteur pour cela !
N’attendez plus pour essayer les nouvelles fonctionnalités de Qodly studio for 4D et rendez votre application web conviviale et puissante !