QODLY STUDIO FOR 4D : QUOI DE NEUF DANS 4D 20 R7

Traduit automatiquement de Deepl

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 !

blank

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.

blank

Et voici le résultat en action ; regardez l’en-tête !

blank

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 !

blank

N’attendez plus pour essayer les nouvelles fonctionnalités de Qodly studio for 4D et rendez votre application web conviviale et puissante !

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.