DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV, WEBDEV et WINDEV Mobile 2024 !
Aide / Nouveautés / Nouveautés de la version 2024
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Consultez la brochure des 929 nouveautés (format PDF)

Nouveau : générateur de visite guidée interactive
Parmi les nouveautés majeures de la version 2024, le nouveau générateur "Visite Guidée" vous permet de proposer facilement une fonctionnalité d'aide que vos utilisateurs ont l'habitude de rencontrer et qu'ils apprécient.
Pour plus de détails, consultez Visite guidée.
Une "visite guidée" c'est quoi ?
Une Visite Guidée est un enchaînement de présentations de fonctionnalités, affichées dans une bulle de la fenêtre ou de la page en cours.
Une Visite Guidée présente à l'utilisateur final des nouveautés de la version, ou des fonctionnalités particulières, ou encore le guide en décrivant chacune des étapes à suivre.
Une Visite Guidée peut également faire office de tutorial.
Le processus d'affichage et de parcours est géré automatiquement.
Pour plus de détails, consultez Visite guidée.
Comment créer une visite Guidée ? un nouvel assistant très puissant
Créer une Visite Guidée est très facile.
Notez qu'une Visite Guidée se crée de la même manière sous WINDEV, sous WEBDEV et sous WINDEV Mobile.
Il suffit d'effectuer les manipulations suivantes :
  1. Ouvrir la fenêtre ou la page dans laquelle la Visite Guidée doit débuter.
  2. Lancer l'assistant de génération de Visite Guidée.
  3. Définir les paramètres généraux de la Visite Guidée : comportement et look.
  4. Créer une étape par champ à présenter :
    • Sélectionner visuellement le champ,
    • Définir le titre et le texte à afficher,
    • Eventuellement définir des comportements spécifiques à cette étape : halo de couleur différente, etc.
  5. Cliquer sur GO pour tester cette Visite Guidée.
  6. C'est fini !
Tout est automatique.
Pour plus de détails, consultez Visite guidée.
Détails de l'assistant
Grâce à l'assistant, créer une Visite Guidée est très facile.
A gauche, les étapes, au milieu les paramètres de l'étape sélectionnée, à droite l'aperçu des choix effectués.
Parmi les paramètres disponibles dans l'assistant :
Général :
  • Choix de la bulle, couleur, marge, transparence,
  • Mise en évidence du champ : rectangle ou halo, GFI,
  • Action lors du clic en dehors du champ mis en évidence : annulation ou passer à l'étape suivante ou ne rien faire.
Par étapes :
  • Saisie du Titre et du Texte de la bulle.
Pour plus de détails, consultez Visite guidée.
Les 3 types de Visite Guidée
Une Visite Guidée peut prendre forme sous 3 modes :
  • Visite Guidée traditionnelle,
  • Utilisation Guidée (ou Tuto),
  • Bulle à affichage permanent.
L'assistant permet de créer ces 3 types de Visite Guidée.
  • Une Visite Guidée traditionnelle est une suite de bulles qui s'affichent à intervalle prédéfini ou après une intervention de l'utilisateur : clic sur un bouton, Suivant/ Précédent, frappe sur la touche espace, etc.
    Les fonctionnalités sont présentées les unes après les autres.
  • Une Utilisation Guidée (ou Tuto) présente une action à réaliser (saisir le code postal, etc); lorsque cette action est réalisée, la bulle de l'étape suivante s'affiche.
    Les changements d'étape sont ici déclenchés par les actions de l'utilisateur dans l'application.
  • Une bulle à affichage permanent reste affichée tant que l'utilisateur ne la ferme pas.
    Cet affichage est utile par exemple pour rappeler des consignes de sécurité, une règle métier ou pour présenter une nouveauté importante.
Pour plus de détails, consultez Visite guidée.
Visite guidée traditionnelle : rien à coder
Il n'y a rien à développer pour mettre en place une Visite Guidée de type traditionnel.
L'assistant génère le code source nécessaire et le colle automatiquement dans le Traitement d'Initialisation de la fenêtre ou de la page concernée.
Ce code est entièrement modifiable.
Il est donc possible de développer des traitements spécifiques.
Pour cela, de nouveaux types et de nouvelles propriétés font leur apparition en version 2024.
Pour plus de détails, consultez Visite guidée.
Visite guidée : les nouvelles fonctions WLangage
Les nouvelles fonctions WLangage :
EnModeVisiteGuidée, VisiteGuidéeDémarre, VisiteGuidéeArrête, VisiteGuidéeChangeEtape, VisiteGuidéeInfo
permettent de piloter la Visite Guidée.
Par exemple, la fonction WLangage VisiteGuidéeDémarre déclenche la première étape du tableau : l'affichage de la première bulle.
Visite guidée : 2 nouveaux types WLangage
La personnalisation d'une visite guidée par programmation est très puissante, et s'appuie sur 2 nouveaux types WLangage.
Ces types permettent de programmer facilement les nombreux paramétrages proposés pour la Visite Guidée.
Le type VisiteGuidée permet de :
  • définir toutes les propriétés générales et communes à toutes les étapes d'une visite guidée,
  • définir le tableau d'étapes.
Le type VisiteGuidéeEtape permet lui de définir les propriétés spécifiques à une étape.
Il est possible d'ajouter, modifier, supprimer des étapes par programmation.
De nombreuses nouvelles propriétés complètent ces fonctions.
Visite guidée : nouvelles propriétés sur les types
Les nouvelles propriétés sur les types permettent de paramétrer finement les comportements.
ActionCibleActionHorsCibleBulle.ActionAutoriséeBulle.CouleurFond
Bulle.FenêtreInterneBulle.MargeBulle.MarkdownBulle.Mode
Bulle.PageInterneCibleDescriptionDuréeValidationAutomatique
Effet.AgrandissementEffet.ArrondiEffet.CouleurEffet.DuréeAnimation
Effet.FormeEffet.MargeEffet.OpacitéEffet.Type
IdentifiantIndiceInitialisationTerminaison
TitreVersionEtape [ ]

Visite guidée : nouveau mot-clé
Le nouveau mot-clé MaVisiteGuidée permet d'accéder à la Visite Guidée en cours d'affichage : accéder aux propriétés, ajouter ou supprimer des étapes, changer d'étape, etc.
Pour plus de détails, consultez Visite guidée.
Des actions supplémentaires à celles proposées par l'assistant par programmation
Tout ce qui est défini par l'Assisant de Visite Guidée est modifiable par programmation.
De nombreuses options supplémentaires sont disponibles par programmation :
  • Afficher ou pas les boutons Précédent/Suivant, et la croix de fermeture,
  • Mise en évidence d'un groupe de champs,
  • Fréquence d'apparition (par numéro de version, tous les mois, tous les n lancements, etc),
  • Modification du tableau d'étapes,
  • Code à exécuter avant et/ou après chaque étape,
  • La bulle sur un champ peut également ne s'afficher qu'à l'entrée dans un autre champ,
  • Il est possible de remplir des champs par programmation en fonction d'une action de l'utilisateur final sur la bulle,
  • Support de Markdown,
  • etc
Un rappel : une Visite Guidée fonctionne avec le même code WLangage en WINDEV, WEBDEV et WINDEV Mobile.
Pour plus de détails, consultez Visite guidée.
Un exemple de code
Exemple de code généré par l'assistant : Paramètres Généraux de la Visite Guidée et Première étape :
MesNouveautés est un VisiteGuidée
// Paramètre la visite guidée
MesNouveautés.Identifiant = "VISITE ERP"
// Ajoute les étapes de la visite
UneÉtape est un VisiteGuidéeEtape
UneÉtape.Cible = BTN_Partager..Nom
UneÉtape.Titre = "Bouton Partage"
UneÉtape.Description = "Action rapide qui permet de partager le document au travers d’autres plateformes"
MesNouveautés.Étape.Ajoute(UneÉtape)
...
// Démarre la visite guidée
MesNouveautés.Démarre()
Exemple de code personnalisé de paramétrage des effets :
MesNouveautés.Effet.Type = vgtHalo
MesNouveautés.Effet.Forme = vgfCercle
MesNouveautés.Effet.DuréeAnimation = 1 s
MesNouveautés.Effet.Opacité = 80
Visite guidée : personnalisation de la bulle
La bulle affichée par la Visite Guidée est totalement personnalisable.
Il suffit d'utiliser une Fenêtre Interne ou une Page Interne. Plusieurs modèles sont livrés. Il est possible d'ajouter des champs, etc.
Pour plus de détails, consultez Visite guidée.
Gabarits et ambiance
Vous le savez, Gabarits et Ambiances permettent de choisir et d’appliquer un modèle d’UI à un projet.
Les Gabarits s’appliquent aux applications, les Ambiances s’appliquent aux sites.
Pour changer l’apparence d’un champ qui utilise un gabarit ou une ambiance, il suffit ensuite de surcharger le style du champ, ou de dissocier le champ du gabarit ou de l’ambiance.
En version 2024, il n’est plus nécessaire de surcharger les styles.
Une nouvelle méthode consiste à dupliquer un Gabarit ou une Ambiance existants, à le renommer, et ensuite à modifier directement les styles, nativement, sans avoir à les surcharger.
La description des styles est ainsi plus simple.
Notez qu’une fois dupliqué, le Gabarit ou l’ Ambiance ne bénéficie plus des éventuelles mises à jour fournies par PC SOFT.
7 nouveaux champs Métier
La version 2024 offre 7 nouveaux Champs Métier :
  • Affichage de documents Markdown,
  • Affichage de FAQ,
  • Cartes défilantes,
  • Libellé qui passe en saisie,
  • Champ Upload non bloquant,
  • Signature tactile,
  • Saisie numérique avec potentiomètre.
Retrouvez ces champs Métier directement dans les parties correspondantes : nouveautés 220 à 221 pour WINDEV 2024, 488 à 490 pour WINDEV Mobile 2024, et 763 à 772 pour WEBDEV 2024.
Champ Traitement de texte : gestion des cases à cocher
En version 2024, le champ Traitement de Texte supporte les cases à cocher.
Il est possible de créer ces cases à cocher par programmation, et de récupérer leur état (cochée ou pas).
Les caractères Unicode qui servent à représenter les coches sont personnalisables par programmation également.
Champ Traitement de texte : sens d'écriture
Le champ Traitement de Texte permet maintenant en version 2024 de choisir le sens d'écriture : gauche vers la droite, ou droite vers la gauche.
Champ Traitement de texte : minibar gratuit !
En version 2024, il devient possible de choisir la barre d'options qui sera utilisée : soit la barre standard (un ruban très riche en options), soit la minibarre, moins intrusive.
Voir nouveauté 228.
Champ Tableur : détection des liens Internet
Les liens Internet présents dans des cellules du tableur deviennent cliquables.
Champ Tableur : accès aux notes des cellules
En version 2024, il devient possible d'accéder aux notes des cellules par programmation, en lecture et en écriture.
PDF : le champ Lecteur PDF affiche les pièces jointes et les signets
En version 2024, le champ Lecteur PDF affiche par défaut la liste des pièces jointes.
La liste des signets est également affichée.
Nouveauté Champ Graphe : Waffle
Un nouveau type de graphe fait son apparition en version 2024 : le graphe Waffle.
Ce type de graphe montre la progression vers un objectif ou un pourcentage d'achèvement.
Ce graphe comporte une grille de petites cellules dont les cellules colorées représentent les données.
Un graphique peut comporter une ou plusieurs catégories.
Il est possible d'assembler plusieurs graphes afin de comparer différentes séries.
Nouveau champ Graphe Waffle : la programmation
La programmation du champ Graphe Waffle est la programmation habituelle de remplissage des graphes.
La famille de fonctions WLangage gr habituelle permet de manipuler ce type de graphe.
Graphe histogramme : look moderne
L'aspect par défaut des histogrammes se modernise.
Et de nouveaux paramètres font leur apparition pour
une personnalisation plus fine : arrondi sur barre, etc.
Graphe : l'utilisateur peut personnaliser les axes
Une nouvelle FAA permet à l'utilisateur final de modifier les bornes et l'échelle des graphes.
Cela permet d'éviter des zones vides inutilisées en fonction des données réelles.
Proposez la signature électronique dans vos applications et vos sites
La signature électronique de contrats avec des particuliers ou des professionnels est aujourd'hui généralisée.
Pour respecter la réglementation, une signature électronique doit obligatoirement être validée par un site de confiance.
En Europe cette réglementation se nomme eIDAS.
Grâce à la version 2024, il est facile d'inclure cette possibilité dans toutes vos applications et vos sites.
Les 3 types de signatures électroniques
Il existe 3 types de signatures électroniques :
  • La signature électronique simple, de base (SES),
  • La signature électronique avancée (AES),
  • La signature électronique avancée qualifiée (QES),
Pour résumer sommairement, la signature simple ne vérifie pas grand-chose (à utiliser avec des interlocuteurs de confiance), la signature avancée envoie un code de vérification par SMS, la signature qualifiée vérifie l'identité du signataire.
La seule signature électronique ayant la même validité juridique que la signature manuscrite est la signature qualifiée.
Les étapes d'une signature électronique
Le principe de base d'une signature électronique :
  • Créer le document à signer : PDF, HTML, Docx,
  • Transmettre le document au prestataire (upload),
  • Transmettre la liste des signataires : nom, email, téléphone, etc,
  • Chacun des destinataires reçoit le document, et le signe,
  • L'émetteur du document le récupère signé, et peut envoyer une copie.
Il existe de nombreuses possibilités de mode opératoire selon les cas :
  • destinataire pour information seule,
  • type d'identification : aucun, SMS, pièce d'identité, etc,
  • nombre de documents,
  • délai,
  • etc.
Des fonctions faciles à utiliser
Les fonctions en WLangage sont livrées sous la forme d'un composant interne, avec leur code source.
Les fonctions permettent de :
  • Fixer le niveau de signature,
  • Transmettre un ou des documents à DocuSign, à un destinataires (nom, email, numéro de téléphone, etc), pour signature ou pour information,
  • Définir l'emplacement de la signature dans le document,
  • Savoir si un document est signé, qui ne l'a pas signé,
  • Obtenir les dates/heures de signature,
  • Récupérer les documents signés,
  • Annuler l'opération.
Tous les aspects de vérification, d'envoi d'email ou de SMS, de vérification de pièce d'identité, de stockage des documents sont totalement pris en charge par le prestataire (ici DocuSign).
Un assistant génère le code
Pour simplifier le développement, un assistant intuitif permet de générer le code nécessaire.
Accès à toutes les API
Pour gérer les cas particuliers, l'ensemble des API fournies par DocuSign est accessible par un appel WLangage.
Le principe de facturation
DocuSign propose plusieurs types d'abonnements, qui donnent accès aux différents types de signatures.
Le type d'abonnement à choisir est un "abonnement API".
Les contrats incluent un nombre forfaitaire de signatures par mois.
Lorsqu'une validation par SMS est choisie, cela engendre un coût supplémentaire.
Ces informations sont exactes à la date d'impression de ce document, mais peuvent évoluer selon les évolutions de DocuSign.
Tous les prestataires sont utilisables : YouSign, etc
La solution DocuSign est supportée par défaut, mais toutes les autres solutions (YouSign, Certeurope, etc) sont également utilisables par appel d'API REST ou SOAP en WLangage.
Il n'y a aucune limite.
Editeur d'images : règles et guides
En version 2024, le champ Editeur d'images propose d'afficher des règles horizontales et verticales.
Il est également possible de positionner des guides sur ces règles.
Editeur d'images : divers
  • Déplacement des calques au clavier,
  • Présence de poignées sur la zone de travail,
  • Mode opératoire de saisie de texte amélioré.
Ne dupliquez plus vos projets : un environnement unique
Vous le savez, il est possible d'utiliser WINDEV, WEBDEV et WINDEV Mobile dans le même environnement.
Les éléments des projets sont ainsi immédiatement communs aux 3 plateformes : analyses, requêtes, états, procédures, classes, code, etc.
Fenêtres, pages et fenêtres mobiles se trouvent dans le même projet.
Ces éléments s'ouvrent directement dans l'environnement de WINDEV.
Cela permet le portage et la maintenance facile d'une application WINDEV vers le mobile et vers le Web, sans avoir besoin d'importer ou de dupliquer des éléments du projet.
En version 2024, l'environnement bénéficie d'évolutions utiles au quotidien.
Rappel : il est bien entendu nécessaire de posséder une licence du logiciel concerné.
Votre existant WINDEV devient une application SaaS
Un besoin répandu est de transformer une application Windows (ou des parties d'applications) en une application SaaS.
Il suffit d'appeler les fonctions WLangage de la famille SaaS de gestion de licence, etc.
WINDEV 2024 permet d'utiliser le site d'administration SaaS proposé par défaut pour administrer une application en mode SaaS.
Plusieurs analyses dans un même projet
En version 2024, il devient possible d'utiliser plusieurs analyses dans un même projet.
Voir Nouveauté 236.
Aide à l'optimisation des structures
L'Editeur d'Analyses détecte des optimisations potentielles de description.
Par exemple lorsqu'une rubrique est définie avec une taille importante, et que cette rubrique n'est pas un index, l'Editeur d'Analyses propose de transformer le type de la rubrique en Mémo.
L'occupation disque sur le serveur sera ainsi réduite, et la vitesse de lecture augmentée.
Noms de table et de rubrique : les passer en minuscules
En version 2024, l'Editeur d'Analyses permet de changer la casse de tous les noms de fichier de données (table) et de rubrique (colonne), pour les passer en minuscules ou 1ère lettre en Majuscule ou tout en Majuscules.
Fenêtre d'édition de rubriques
La fenêtre d'édition des rubriques (colonnes) propose maintenant les opérations de couper/ copier/ coller par clic droit.
Figma : un outil largement utilisé par les designers
Figma est un logiciel qui permet de créer des maquettes et des prototypes dans différents domaines, en particulier pour des sites et des applications.
La version 2024 de WINDEV, WEBDEV et WINDEV Mobile permet de transformer des documents FIGMA en fenêtres et en pages, et de générer les champs correspondants en respectant leur aspect graphique.
Le principe de Figma
Figma est un outil de dessin (vectoriel).
Le designer crée des rectangles, de cercles, des traits, etc et des textes et leur applique de nombreux paramètres.
Tout est statique, tout peut se superposer.
Le tout est imbriqué dans des frames.
Les documents créés sont accessibles par une URL, dont l'accès nécessite une authentification.
Le mode opératoire
Pour créer une ou des fenêtres (ou des pages) sous WINDEV (ou WEBDEV), il suffit de :
  • créer un compte FIGMA (la possession d'une licence n'est pas nécessaire*),
  • demander au designer de partager le document à importer,
  • sélectionner l'option d'import dans WINDEV (ou WEBDEV),
  • spécifier la page et la frame à importer,
  • WINDEV crée une nouvelle fenêtre (WEBDEV une page),
  • WINDEV (ou WEBDEV) visualise le contenu, et analyse la structure du document,
  • le développeur sélectionne les éléments graphiques constituant un champ dessiné par le designer,
  • sous WINDEV (ou WEBDEV) les champs se créent en temps réel dans la fenêtre (ou dans la page),
  • les conditions d'utilisation peuvent évoluer et dépendent de la licence Figma au jour où vous utilisez la fonctionnalité.
La génération des champs
Pour chaque forme ou ensemble de formes sélectionné, l'éditeur propose de définir un type de champ.
Le développeur indique ensuite chaque élément composant le champ : son libellé, sa zone de saisie, son décor éventuel...
Il est possible de ne pas importer un champ, ou une partie de champ : par exemple un libellé lorem ipsum.
Si nécessaire, une image du champ sous Figma peut être importée dans la fenêtre ou la page.
Les styles nécessaires sont automatiquement créés.
Positionnement respecté
Les champs créés respectent le positionnement du document Figma.
L'association "éléments graphiques" > "champs" est conservée
L'association entre les éléments graphiques et les champs créés est conservée.
En cas de modification de la maquette Figma, il suffit de traiter les nouveaux objets.
Les objets existants déjà associés sont conservés.
7 onglets : une loupe de recherche qui cherche même dans le texte des 7 onglets
Une loupe universelle fait son appar ition dans les 7 onglets.
La loupe permet de chercher les attributs présents partout dans chaque onglet des "7 onglets" : libellés, libellés des boutons utilisés dans les 7 onglets, contenu des combos déroulées, contenu des champs de saisie, etc.
Grâce à cette loupe, les recherches sont exhaustives.
Inutile de parcourir les onglets un à un pour trouver une option que l'on utilise rarement.
Le nombre d'occurrences est affiché, lorsque l'information se trouve dans un autre onglet, cet onglet est mis en évidence, etc.
Ordonnez vos documents dans la barre des documents
Dans la barre des documents de l'environnement, il devient possible d'organiser les éléments dans l'ordre de son choix.
Gestion des ressources Windows
Windows, même en version 11, possède des limites de ressources; par exemple le nombre de handles possède une limite.
En fonction des ressources disponibles dans Windows, les éléments du projet les plus anciens, ouverts sous l'éditeur, seront fermés si nécessaire.
Compilation toujours plus rapide des projets multilingues
La compilation des projets multilingues est bien plus rapide en version 2024.
Le gain peut atteindre 75%.
Modèle de modèle : héritage multiple
En version 2024, un modèle de pages ou de fenêtres peut hériter de plusieurs modèles.
Partagez des composants internes entre des projets à options de compilation différentes
En version 2024, chaque Composant Interne bénéficie de ses propres options de compilation.
Cela permet de partager facilement les Composants Internes avec des projets qui utilisent des options différentes.
Cela est utile en particulier quand un Composant Interne récent a activé des options de compilation spécifiques.
Alignement : espacer un groupe de champs par un nombre de pixels déterminé
Un nouveau choix d'alignement permet d'espacer horizontalement ou verticalement et en une seule manipulation des champs sélectionnés en spécifiant un espacement exprimé en pixels.
Création de projet : UI simplifiée
L'UI de création de projet a été drastiquement simplifiée en version 2024.
Styles du projet : références croisées
La fenêtre de visualisation des styles du projet indique le nombre d'utilisations de chaque style via un badge.
Le clic sur le badge indique la liste des utilisations.
Cela permet de supprimer des styles inutilisés ou de normaliser des styles peu utilisés.
Bouton en validation oublié ? L'environnement le rajoute
Un bouton en validation réagit lorsque l'utilisateur final utilise la touche Entrée.
Certaines fenêtres ou pages peuvent ne comporter aucun bouton en validation.
En général il s'agit d'un oubli.
En version 2024, lorsque l'éditeur détecte l'absence de bouton défini en Validation et que le libellé d'un bouton contient le texte "OK", "Valider", "Connexion", alors un warning d'UI est généré.
Le clic sur le Smiley pas content effectue l'action de définir ce bouton en Validation.
Le même traitement est réalisé pour les boutons de type "Annulation".
Divers
  • La langue de l'environnement s'adapte automatiquement à la langue du système : français, anglais ou espagnol.
Image en mode obsolète dans un site
WEBDEV propose le mode d'image "Automatique". Ce type d'image utilise un algorithme optimal qui augmente la vitesse du site.
L'Audit Statique en version 2024 détecte les images qui ne sont pas en mode Automatique : Statique, Dynamique, Généré, etc.
Détection de l'usage de 2 sources de données de même nom
Historiquement, il était possible d'utiliser les noms de sources de données comme identifiant.
L'usage de 2 sources de données de même nom était autorisé.
Dans certains cas cela peut engendrer des comportements inattendus.
La version 2024 signale l'usage simultané de 2 sources de données de même nom.
L'Audit Dynamique signale alors qu'il existe une option de compilation qui interdit l'utilisation du nom de la source de données comme identifiant.
Recherche dans la base du Centre de Gestion de projets
En version 2024, un nouveau mode de recherche permet de rechercher dans toute la base du Centre de Contrôle : tâches, incidents, exigences, etc.
Gestion des tâches par Kanban
Le Centre de Gestion de Projets propose un type de visualisation et de manipulation supplémentaire des tâches d'un développeur par Kanban.
Cela permet une vue synthétique de l'avancement de ses tâches, et de modifier l'état des tâches d'un simple Drag & Drop.
Divers
  • Possibilité de poser des tags sur des exigences,
  • Pour chaque exigence un développeur est désigné comme responsable. Lorsque le responsable passe sa dernière tâche en mode "Terminé" et s'il reste des tâches à terminer pour d'autres développeurs, alors le Centre de Contrôle lui propose d'insérer une tâche d'intégration.
  • Optimisation du remplissage de la liste des exigences.
Dossier : nouvelles couvertures disponibles
La présentation du dossier évolue et propose maintenant un choix plus large de couvertures.
Administrateur des plans d'action : variable d'environnement
Une variable d'environnement affiche maintenant sa valeur lors de son affichage dans le paramétrage du plan d'action.
Editeur de plans d'action
En version 2024, le copier/coller fait son apparition dans l'éditeur de plans d'action.
Sécurité des mots de passe : indicateur de niveau de sécurité
Lorsqu'un utilisateur crée un mot de passe, le Groupware Utilisateur le guide et lui indique le niveau de sécurité de ce mot de passe.
Le but de cet affichage est d'inciter les utilisateurs finaux à renforcer leurs mots de passe.
Divers
  • La nouvelle fonction WLangage gpwListeUtilisateur permet de lister l'ensemble des utilisateurs.
GIT : ajouter un projet dans GIT depuis l'environnement
Il est maintenant possible de créer un dépôt GIT sur un projet directement depuis l'environnement.
GIT : mémorisation du mot de passe et du personal access token
Le mot de passe d'accès à GIT, ainsi que le "personal access token" sont mémorisés d'une session de développement à l'autre par l'environnement afin de permettre une utilisation fluide.
Editeur d'images de l'environnement : il bénéficie de toutes les nouveautés du champ Editeur d'images
L'editeur d'images intégré à l'environnement bénéficie des nouveautés du champ Editeur d'images apparues en version 2024 : GIF animés, scan, etc.
Voir Nouveauté 034.
UI de sélection de langue simplifiée
WDMSG 2024 propose une UI de sélection de langue bien plus intuitive : la langue de référence est clairement indiquée, la liste des langues à extraire est multisélection d'un simple clic droit, etc.
Report de branche partiel : sélection du commit à reporter
En version 2024, le report de branche permet un report partiel : il devient possible de sélectionner une des ré-intégrations effectuées dans une branche (en anglais : cherry-picking).
Il n'est plus obligatoire de reporter la branche entière.
Accélération de la création de branche : X5
En version 2024, la vitesse de création de branche, en particulier lors de l'utilisation d'un GDS distant est boostée.
Le gain peut atteindre un facteur X5.
Nombreuses optimisations dans les manipulations courantes du GDS
Toutes les manipulations dans le GDS sont plus rapides en version 2024 : durée de réintégration, suppression de fichiers, récupération d'éléments, lancement de l'administrateur, etc.
Création de branche plus libre
En version 2024, il devient possible de créer des branches sur un répertoire qui ne contient pas de projets.
Très utile pour un répertoire qui contient des ressources : images, collections de procédures, composants, etc.
Il est donc plus facile de partager ce type de ressources entre plusieurs projets.
Partage de répertoire entre plusieurs projets
En version 2024, il devient possible de partager un répertoire entier.
Génération automatique du commentaire de réintégration dans le GDS (IA)
Lors d'une réintégration dans le GDS, chaque développeur devait à chaque fois saisir la description des modifications effectuées dans tous les éléments ré-intégrés.
En version 2024, l'Editeur de Code de la version 2024 peut le faire à votre place.
Voir nouveauté 135.
Note : cette fonctionnalité nécessite un compte OpenAI.
GDS : divers
  • Option de compactage de la base après purge.
Correction automatique des erreurs de frappe
S est une Chiane ?
Ben non
S est une chaîne !
L'éditeur de code corrige pour vous.
L'assistance à la saisie propose les possibilités logiques même en cas de faute de frappe.
Une bulle d'info interactive
Une nouvelle bulle fait son apparition en version 2024.
Cette bulle apparaît au survol des variables et des procédures
La bulle affiche le type de l'élément survolé et d'autres informations utiles, permet d'atteindre la déclaration de l'élément survolé ou de voir les références croisées de l'élément (toutes les utilisations).
Coloration personnalisée d'une variable, d'une procédure ou d'une méthode
Cette coloration personnalisée permet de mettre en évidence :
  • les appels à une procédure particulière,
  • les paramètres en sortie d'une procédure,
  • une variable à manipuler avec précaution,
  • une fonction surchargée pour remettre sa couleur d'origine.
La coloration personnalisée s'effectue soit par les composants RVB, soit par des constantes des couleurs de l'éditeur de code.
Hashtags : évolutions
En version 2024, il devient possible d'insérer des méta-données dans les hashtags de code : nom du développeur, date, etc.
Cela permet des recherches et des filtres encore plus personnalisés.
Lors d'une recherche, une fenêtre s'ouvre avec toutes les méta-données utilisées dans le projet, il suffit de choisir les éléments et le type de recherche.
Assistant des chaînes multilingues
Un nouvel assistant permet d'afficher et de gérer l'ensemble des chaînes utilisées dans le projet : simples, multilignes, multilingues.
De nombreux filtres sont disponibles.
Cela permet par exemple de visualiser l'ensemble des chaînes non multilingues d'un projet multilingue, et de vérifier si chaque chaîne doit être traduite ou pas.
Dans ce cas, le passage en multilingue d'une sélection s'effectue d'un simple clic droit.
Erreurs affichées directement dans le code
En version 2024, erreurs et warnings peuvent être affichés directement dans le code.
Un bandeau rouge marque la ligne, et le libellé de l'erreur est affiché directement dans la ligne concernée.
Inutile d'avoir à survoler l'erreur pour en voir le détail, ou de passer son temps à hocher la tête de haut en bas de l'écran pour consulter le volet des erreurs !
Cette présentation est appréciée de nombreux développeurs.
Doxygen
La création d'une procédure génère automatiquement un commentaire : description de la fonction, paramètres, valeurs de retour, etc.
En version 2024, ce commentaire peut être généré en utilisant la syntaxe Doxygen.
Divers
  • La fenêtre de recherche propose également une présentation verticale.
Analyse de performances entre 2 points d'arrêt
En version 2024, le débogueur permet l'analyse des performances entre 2 points d'arrêt de type "Point d'arrêt performance".
Divers
  • Le débogueur signale l'accès à un membre JSON qui n'existe pas.
Un environnement DevOps intégré
WINDEV, WEBDEV et WINDEV Mobile en version 2024 forment un environnement DevOps toujours plus intégré.
Vous disposez de l'ensemble des fonctionnalités nécessaires à la mise en œuvre de la démarche DevOps : c'est la fin de l'éparpillement dû aux outils hétérogènes.
Vous disposez de tous les outils intégrés pour gérer la méthodologie DevOps : gestion du cycle de vie, sprints, tests, intégration continue, déploiement, livraison continue, exploitation, retours clients, etc.
Gestion de l'interligne et de l'interlettrage
En version 2024, l'Editeur d'Etats permet de spécifier une valeur pour :
  • l'interligne,
  • l'interlettrage,
de chaque champ imprimé.
Cela permet une présentation adaptée à ses désirs et aux nouvelles normes.
Editeur d'états : divers
  • Recherche dans l'aperçu avant impression améliorée.
Support des modèles de format ONNX
L'IA de détection de formes du WLangage utilise des modèles.
En plus des modèles livrés en standard, il est possible d'utiliser des modèles externes.
Le format de modèle ONNX est maintenant supporté en plus de Caffe, Tensorflow et Darknet.
Gestion du Null
En version 2024, le WLangage gère les valeurs "Null" sur tous les types.
Ceci permet de manipuler plus directement les rubriques (colonnes) Nullables des bases de données.
Les variables deviennent "Nullables".
Tous les types du WLangage deviennent Nullables : entiers, chaînes, monétaires, dates, heures, etc.
Une variable qui peut être Nullable doit être déclarée avec l'attribut d'extension <Nullable> ou de son raccourci : un point d'interrogation rajouté à la suite du type. Par exemple Entier?
Les conditions sur les variables nulles répondent aux standards attendus. La gestion historique du Null est conservée pour compatibilité.
Les nouveaux opérateurs ??, ??* et ?. permettent de gérer les comportements en cas de valeur nulle.
Pour éviter des conversions implicites non désirées, le compilateur génère une erreur lorsqu'une variable Nullable est affectée dans une variable non Nullable.
Quelques exemples de code WLangage :
// Déclaration de variable nullable
n est entier<nullable>
// Syntaxe courte
n est entier?
// Nouvel opérateur permettant de récupérer la variable ou
une AUTRE valeur SI Null
v est entier = n ?? 0
// Récupère la valeur par défaut du type si n est null
v est entier = n ?? *
// Nouvel opérateur permettant d’appeler une procédure pour
// une variable non null, sinon la ligne n’est pas exécutée
s est une chaîne? = "Hello world !"
Binding & variable Null
Grâce aux variables Nullables, il devient plus facile de réaliser un Binding champ ou mémoire entre une base de données et une classe.
La gestion des variables Null est maintenant standardisée.
Créer ses propres types WLangage : pour une programmation plus rigoureuse par défaut
Exemple : votre application manipule des prix : prix d'un matériel, d'une denrée, d'une quantité.
Un exemple est le tarif de poudre, qui est défini au gramme, avec 4 chiffres après la virgule. Plutôt que de définir la variable correspondante en type numérique et de devoir préciser à chaque fois le nombre de chiffres après la virgule, en version 2024 il devient possible de créer un type PrixPoudre et donc ensuite de de définir dans le projet des variables par ce type PrixPoudre.
Pas de risque d'erreur sur le nombre de décimales.
Le code est automatiquement plus clair et plus normalisé.
Les attributs de compilation définis sur le type sont conservés sur toutes les variables de ce type.
Les types créés sont ensuite utilisés comme les types natifs du langage.
Dans notre exemple, il devient possible de créer un tableau de PrixPoudre.
PrixPoudre est type : numérique (5,4)
PROCÉDURE CalculCoutColorant( PoidsAProduire est un réel, CouleurRAL est un entier ) : PrixPoudre
Un autre exemple d'utilisation, plus avancé, est la possibilité de définir un type Callback, qui précise le nombre et le type de paramètres, et la valeur de retour attendus par la Callback ("delegate").
Les Callbacks auront ainsi forcément le nombre de paramètres attendus, et la valeur de retour attendue.
Immuabilité
Une variable qui possède l'attribut Immuable ne peut être affectée qu'une seule fois, et plus jamais modifiée.
Contrairement à une constante, cette variable peut être initialisée dans le code de manière conditionnelle.
L'immuabilité est également disponible pour les paramètres de procédure.
Compilation conditionnelle : 2 évolutions
La compilation conditionnelle évolue en version 2024.
Il devient possible d'écrire.
<COMPILE SI CST_MODE_APPLI EXISTE>
Cela permet par exemple de compiler un code différent dans un composant.
Il devient possible d'encadrer une procédure entière d'un <COMPILE SI>
Cela permet d'exclure totalement la procédure de la compilation.
Fonctions d'accès à Dropbox, GoogleDrive et OneDrive
3 nouveaux types WLangage font leur apparition : gglDrive, oDrive, dpDrive.
La nouvelle famille de fonctions WLangage Drivexxx permet de réaliser les opérations ci-après sur les fichiers stockés dans les drives.
Parmi les fonctionnalités disponibles :
  • lister le contenu des répertoires,
  • télécharger (download),
  • téléverser (upload),
  • copier,
  • supprimer,
  • renommer,
  • déplacer,
  • etc.
Pratique : le code est générique et ne dépend pas du service utilisé.
Exemple en syntaxe classique.
MonDrive est un Drive
// Envoi d’un fichier local dans le Drive
DriveEnvoieFichier(MonDrive, "C:\DocumentsATraiter\CR-489-884.pdf", "/Mes documents/2023/")
Exemple en syntaxe préfixée :
MonDrive est un Drive
// Envoi d’un fichier local dans le Drive
MonDrive.EnvoieFichier("C:\DocumentsATraiter\CR-489-884.pdf", "/Mes documents/2023/")
Construction de chemin et d'URL de manière naturelle
En version 2024, il devient possible de construire une chaîne contenant un chemin de fichier en séparant les éléments par des + et des /.
Exemple :
CheminFichier est une chaîne = Disque/Répertoire/Fichier
CheminFichier est une chaîne = Répertoire/Fichier
Décompression RAR5
Les possibilités de décompression de fichier s'enrichissent du format standard : RAR5.
Tableaux associatifs : fonctions Ensemblistes
Les fonctions Ensemblistes sont maintenant disponibles sur les tableaux associatifs :
  • transforme,
  • filtre,
  • agrège,
  • applique,
  • somme,
  • min,
  • etc.
Le type du champ est précisé dans les variables de type champ
En version 2024, les types de champs peuvent être typés.
Le code devient plus clair, et l'assistance à la saisie est plus précise.
Sécurité automatique, il est impossible de passer des paramètres incompatibles. Exemple :
Ajoutez vos propres fonctions sur les champs
En version 2024, en utilisant la syntaxe préfixée, il devient possible de définir ses propres fonctions, qui seront supportées par un type de champ.
Exemple :
Dans l'éditeur de code, vos propres fonctions seront proposées par la saisie assistée.
Surcharge des fonctions sur les champs : maintenant en syntaxe préfixée
La surcharge des fonctions agissant sur les champs est maintenant disponible à la fois en syntaxe classique et en syntaxe préfixée.
Vérification d'identifiant administratif : le numéro fiscal (NIF, tin, etc)
La validité syntaxique d'un numéro d'identification fiscal peut être vérifiée par la nouvelle fonction WLangage VérifieNuméroFiscal préfixée du pays concerné.
Par exemple : France.VérifieNuméroFiscal
A ce jour, les identifiants des pays suivants sont gérés :
  • France,
  • Canada,
  • Suisse,
  • Belgique,
  • Etats-Unis,
  • Espagne,
  • Italie,
  • Allemagne,
  • Brésil.
Quel type de processeur dans le PC ?
Certains traitements très spécifiques (drivers, etc) nécessitent de connaître le type de processeur pour effectuer des traitements bas niveau.
La nouvelle constante SysProcesseurNatif permet de connaître le type de processeur utilisé sur la machine d'exécution : x64, ARM, etc.
oAuth
2 nouveautés utiles pour oAuth font leur apparition en version 2024 :
  • le protocole d'authentification PKCE est géré; ce protocole évite de stocker la clé privée dans l'exécutable.
  • un token oAuth peut être généré à partir d'un contenu JSON.
Protocole d'identification JWT
JWT est une norme qui permet une communication sûre et sécurisée entre deux parties.
Le protocole d'identification JWT (Json Web Token) est supporté nativement par le WLangage en version 2024.
Interrogation de DNS
En version 2024, il devient facile d'interroger un DNS grâce à la nouvelle fonction DNSInterroge :
  • IP associée à un nom de domaine,
  • sous-domaines associés à un domaine,
  • informations sur les "enregistrements" : A, AAAA, CNAME, PT, R, etc.
  • recherche sur un DNS particulier ou sur le premier trouvé.
Une procédure attend plusieurs paramètres ? utilisez un tableau, c'est automatique
En version 2024, les paramètres d'une procédure qui attend différents paramètres (et pas un tableau), peuvent être contenus dans un tableau qui sera analysé par la fonction WLangage TableauVersParamètres pour en extraire ces paramètres.
L'appel à la procédure est beaucoup plus simple.
Délimiteur de chaîne supplémentaire :
Il y a un accent grave à la fin du titre ci-dessus ?
C'est normal, c'est ça le délimiteur supplémentaire !
En plus du délimiteur historique des chaînes, " (double quote), le délimiteur "accent grave" fait son apparition.
L'intérêt de ce séparateur est d'éviter de doubler les doubles quotes, et d'assurer le fonctionnement des [% quelles que soient les options du projet.
sCodeHtml est chaîne = `<p style="color:red;">`
%, Modulo
L'opérateur Modulo accepte maintenant l'opérateur % comme synonyme.
Opérateur "Et", opérateur "ou", demandez le standard !
Les opérateurs ET et OU peuvent abandonner leur fonctionnement historique, pour effectuer les évaluations de manière optimisée : lorsque le premier élément est déterminant, le deuxième élément n'est pas évalué.
Ce nouveau comportement est disponible à travers les options de compilation.
Tout nouveau projet créé possède cette option par défaut.
Nouveau type : formatage des numériques plus simple
Un nouveau type pour formater les nombres fait son apparition : FormatNumérique.
Les propriétés de ce type permettent de préciser le nombre de chiffres après la virgule, les séparateurs, etc.
Un assistant de code facilite encore plus la tâche.
Exemple de code :
FormatagePrix est un FormatNumérique
FormatagePrix.ChiffresAprèsVirgule = 2
FormatagePrix.Préfixe = "$"
FormatagePrix.SéparateurDecimal = "."
FormatagePrix.SéparateurMilliers = ","
FormatagePrix.Signe = fnsMoinsSiNégatif
Prix est une chaîne
Prix = NumériqueVersChaîne(16945201.986, FormatagePrix)
// Prix contient la chaîne "$16,945,201.99"
Coloration de code dans vos UI
Un code WLangage en texte brut ?
Vous désirez l'afficher dans une fenêtre ou une page de votre application ?
Demandez la coloration syntaxique !
Le nouveau Type WLangage CodeWLangageMiseEnForme est votre ami.
Sont gérés :
  • l'indentation de code,
  • la traduction,
  • la mise à la bonne casse,
  • le thème (clair ou sombre),
  • etc.
La coloration syntaxique peut être effectuée en HTML. Une feuille de styles CSS personnalisée est générée et donc réutilisable.
Divers
  • Nouvelle syntaxe de fLitLigne à callback.
  • Les fonctions sur les notifications Push sont disponibles en syntaxe préfixée.
pcsCloud.net : le cloud de vos développements, le cloud de vos déploiements
Pour vos applications :
  • Serveur d'Application WEBDEV pour héberger vos sites WEBDEV,
  • Cluster de Serveurs d'Application WEBDEV,
  • Serveur d'Application WEBDEV pour fournir des Webservices,
  • Plateforme SaaS,
  • Votre propre Store Privé pour vos applications WINDEV et vos applis WINDEV Mobile,
Pour votre télémétrie :
  • Plateforme de Télémétrie.
Pour vos Données :
  • Serveur HFSQL pour accéder à des bases de données,
  • Serveur HFSQL Spare pour mettre en place des serveurs de secours HFSQL,
  • Serveur de Réplication universelle de données,
  • Groupware Utilisateur Mobile,
Pour votre environnement de développement
Plateforme de Virtualisation des Projets : GDS privé, Centres de Contrôle, Dictionnaires.
GDSDrive et HFSQLDrive sont eux des clouds spécialisés :
  • pour le partage du GDS,
  • pour l'hébergement de Bases de Données HFSQL.
Les champs favoris : une nouveauté très pratique
Il arrive souvent que le développeur recrée les mêmes champs, avec le même style et le même code (ou à peu près) tout le long d'un projet, sans désirer utiliser un modèle ou une Fenêtre Interne.
Par exemple les boutons "OK" et "Annuler".
Souvent le mode opératoire adopté par le développeur consistait à copier un champ existant depuis une autre page ou une autre fenêtre, à le coller puis à le modifier.
La notion de Champ Favori répond à ce besoin de manière plus simple.
La version 2024 de l'environnement permet de définir un champ ou un ensemble de champs comme "champ Favori".
Créer un Champ Favori se réalise facilement d'un clic droit.
Ce champ Favori sera ensuite automatiquement proposé dans l'UI de sélection de champs, en tête de liste.
Un champ favori mémorise les informations de :
  • taille,
  • style,
  • code.
Une fois le champ Favori positionné dans la fenêtre ou la page, vous pouvez modifier librement les paramètres de ce champ. Inutile de surcharger ses caractéristiques.
Lorsqu'un champ Favori est créé, il apparaît automatiquement en tête de la liste des champs de même type.
Il est possible de choisir dans quelle(s) liste(s) un champ favori apparaît, ce qui est utile pour un champ Favori composé de plusieurs champs.
Un champ favori peut être un groupe de champs
Un champ Favori peut être composé de plusieurs champs.
Par exemple un champ de saisie avec un bouton filtre associé.
Partagez les champs favoris
Les champs Favoris créés dans un projet sont accessibles à tous les intervenants du projet.
Il est possible de partager des champs Favoris entre différents projets. Il est également possible de copier des champs Favoris d'un projet à un autre.
Comment utiliser un champ favori
Un nouveau bouton dans le ruban des champs permet d'afficher la liste de tous les champs Favoris, classés selon les tags définis à la création.
Les champs Favoris sont également présents dans la liste des champs par type, selon le choix défini à la création.
Les champs Favoris apparaissent en début de liste.
Il suffit ensuite d'effectuer un glisser/déplacer depuis la liste vers la fenêtre ou la page en cours.
Appels à Webservice de taille importante : vitesse boostée, consommation CPU réduite
Dans certains cas, le temps de réponse des Webservices créés avec WINDEV ou WEBDEV de taille importante (plusieurs centaines de classes) pouvaient être élevés.
En version 2024, l'appel à ce type de Webservices est drastiquement optimisé : le temps de réponse est quasi immédiat, comme les autres Webservices, et la consommation CPU est largement diminuée.
Authentification NTLM et DIGEST
NTLM et DIGEST sont des méthodes d'authentification sécurisées auprès d'un serveur Web.
Certains Webservices REST peuvent nécessiter une authentification NTLM ou DIGEST.
En version 2024, ces types d'authentification sont intégrés en natif.
Notez toutefois que l'usage de NTLM n'est plus recommandé.
Divers
  • La nouvelle constante httpTraceInfo pour le type httpRequête permet de récupérer le log d'info de cURL et de OpenSSL.
XML
Signature XML : ECDSA, un des nouveaux standards supporté
La version 2024 permet de signer les fichiers XML à l'aide de signatures de type "elliptique curve".
les formats suivants sont supportés :
  • RSA SHA384,
  • RSA SHA512,
  • ECDSA SHA224,
  • ECDSA SHA256,
  • ECDSA SHA384,
  • ECDSA SHA512.
Note : ECDSA est l'algorithme de signature électronique à clé publique utilisé par Bitcoin.
Pour plus de détails, consultez les caractéristiques du type de variable xmlSignature.
Nouvelle fonction XMLvérifiesignature
La nouvelle fonction XMLVérifieSignature permet de vérifier la validité d'un fichier XML signé reçu.
Attributs de portée (de chat ?)
De nouveaux attributs sont disponibles sur les membres de classes.
Les attributs <lecture>, <lecture protégée>, etc permettent de définir si les membres sont accessibles en lecture, en écriture, ou en lecture/écriture ainsi que leur portée.
Méthode d'extension sur les classes
En version 2024, il devient possible d'ajouter ses propres méthodes sur des classes partagées, sans avoir à modifier le code de la classe.
Les autres projets qui utilisent cette classe ne sont ainsi pas impactés par les modifications.
Classes immuables
Une classe immuable peut être considérée comme une sorte de constante.
Tous les membres de la classe deviennent immuables : une fois affectés (dans le constructeur), ils ne peuvent plus être modifiés.
Binding : erreur de compilation pour un membre et une rubrique de types différents
En version 2024 le compilateur détecte et signale un mapping qui lie un membre à une rubrique qui ont des différences :
  • taille différente,
  • chaîne ANSI/Unicode,
  • type différent,
  • etc.
Ce type d'erreur peut se produire lors de la modification d'une description des données (analyse).
Python
La version 2024 permet maintenant de gérer les objets passés en paramètre ou récupérés par une procédure Python.
C#
La saisie de code source en C# ne nécessite plus la présence d'un assemblage C# dans le projet.
l'IA dans l'éditeur de code
La version 2024 de l'Editeur de Code sait expliquer un code existant, et sait générer la documentation des procédures.
Un simple clic sur une icône permet de générer le texte d'explication!
L'éditeur encapsule une utilisation de GPT dans ce but.
Génération automatique de l'explication d'un code WLangage
Vous reprenez le code d'un autre développeur ? Un code très ancien ? Vous ne comprenez pas ce que fait ce code ?
Demandez à l'Editeur de Code ! L'éditeur de code affiche une explication claire et synthétique du traitement en langage naturel.
Sélectionnez simplement le code à expliquer.
Génération automatique de la documentation d'une procédure
L'Editeur de Code permet de générer depuis le code existant d'une procédure le commentaire d'en-tête de la procédure :
  • description de chacun des paramètres,
  • valeur de retour de la procédure,
  • description des traitements de la procédure.
Le commentaire est généré au format historique ou au format Doxygen.
Ce commentaire est utilisé par ailleurs par l'éditeur de code pour proposer une assistance contextuelle lors de la frappe du code d'appel.
Génération automatique du commentaire de réintégration dans le GDS
Lors d'une réintégration dans le GDS, une bonne pratique est de saisir la description des modifications effectuées.
L'Editeur de Code de la version 2024 permet également de générer cette description à la place du développeur.
Langue du serveur HFSQL
Le serveur HFSQL peut afficher des messages visibles par l'utilisateur final.
En version 2024, ces messages s'affichent si possible dans la langue du client : français, anglais, espagnol.
Réplication serveur HFSQL
Pour gérer des cas particuliers de corruption physique de fichier de réplication (.HYL), la nouvelle fonction WLangage hrsIgnoreErreur et une option dans le Centre de Contrôle HFSQL permettent d'ignorer la partie corrompue du fichier.
L'option, à utiliser avec discernement, peut rendre des services en phase d'exploitation.
Docker HFSQL
L'image Docker du serveur HFSQL est maintenant fournie en version Debian 12, en version multilingue.
Divers
La fonction HRequêteExécutée permet de savoir si une requête a déjà été exécutée.
  • La modification automatique des fichiers de données («modif auto») permet de passer une rubrique de type MotDePasse en type Chaîne (les mots de passe ne sont pas récupérés),
  • Sauvegarde de serveur: répertoire par défaut paramétrable,
  • Il est possible de récupérer la liste des fichiers surveillés par la fonction WLangage HListeFichiersSurveillés.
  • Procédure Stockée : il devient possible de passer des tableaux en paramètre.
Requête complexe : performances améliorées
La vitesse d'exécution des requêtes complexes est augmentée en version 2024.
Ordre Returning
L'ordre SQL Returning qui permet de retourner des valeurs sur les requêtes d'insertion, de modification ou de suppression est supporté en version 2024. Utile par exemple pour récupérer les identifiants Automatiques de lignes insérées par la requête.
Renommage de tables par "Alter Table Rename"
Le renommage de tables par l'ordre Alter Table Rename est maintenant possible.
SubDate, Date_Sub, ADDDATE, etc.
Pour compatibilité avec certaines bases de données, les ordres Date_Sub, ADDDATE, SubDate et Date_ADD sont maintenant supportés en version 2024.
Ordre IsNull plus rapide
L'ordre IsNull est plus rapide en version 2024.
27 nouvelles fonctions SQL
27 nouvelles fonctions SQL font leur apparition en version 2024.
VALUEPermet de remplacer une valeur par une autre valeur constante.
LOREM_IPSUMPermet de remplacer une chaîne par un Lorem ipsum de la taille voulue.
NOISERenvoie une valeur comprise entre -x% et +x% de la valeur d’origine.
PARTIALPermet de remplacer partiellement les caractères d’une chaîne.
PROCEDUREPermet d’utiliser une procédure pour rendre anonyme des données.
RANDOM_DATE_BETWEENPermet d’obtenir une valeur aléatoire dans un intervalle de dates.
RANDOM_INT_BETWEENPermet d’obtenir une valeur aléatoire dans un intervalle d’entiers.

Fonctions SQL dédiée aux données spatiales.
ST_AERA Calcule la surface occupée par une géométrie.
ST_CONTAINSPermet de savoir si une géométrie (en 2 dimensions ou en coordonnées géographiques) est contenue dans une autre géométrie (en 2 dimensions ou en coordonnées géographiques), c'est-à-dire si tous les points de la géométrie à comparer sont contenus sans exception dans la géométrie de référence.
ST_COVEREDBYPermet de savoir si TOUS les points contenus dans la première géométrie sont contenus dans la seconde géométrie ou si au moins un des points de la première géométrie ne fait pas partie de la seconde géométrie.
ST_COVERSPermet de savoir si TOUS les points contenus dans la seconde géométrie sont contenus dans la première géométrie ou si au moins un des points de la seconde géométrie ne fait pas partie de la première géométrie.
ST_CROSSESPermet de savoir si l'une des deux géométries possède une partie de ses points intérieurs en commun avec la seconde géométrie (et non pas obligatoirement la totalité de ses points).
L'intersection représentée par ces points en commun doit répondre à 2 critères :
  • cette intersection doit avoir une dimension inférieure à celles des géométries comparées.
  • cette intersection ne doit pas être égale à une des deux géométries comparées.
ST_DIFFERENCERenvoie une géométrie correspondant à la différence entre les deux géométries passées en paramètres.
ST_DISTANCE Calcule la distance entre 2 géométries (en 2 dimensions ou en coordonnées géographiques). Cette distance est exprimée dans l'unité de mesure indiquée lors de la définition de la géométrie.
ST_EQUALSPermet de savoir si 2 géométries (en 2 dimensions ou en coordonnées géographiques) sont identiques, c'est-à-dire si elles ont la même dimension et si les points définis occupent la même surface.
ST_GEOMFROMTEXTConvertit une géométrie décrite sous la forme d'une chaîne de caractères en une géométrie en 2 dimensions.
ST_INTERSECTIONRenvoie une géométrie représentant l’ensemble de la zone incluse dans les deux formes d’entrée.
ST_INTERSECTSPermet de savoir si 2 géométries (en 2 dimensions ou en coordonnées géographiques) ont des points en commun. Cette commande calcule la surface commune (intersection) entre les 2 géométries.
ST_LENGTHRetourne la longueur en mètres d'une géométrie linéaire. Une géométrie linéaire (ou polyligne) est une géométrie composée de plusieurs points reliés entre eux. Il faut au minimum 2 points dans la géométrie manipulée. L'ensemble des points ne doit pas former une géométrie fermée, c'est-à-dire un polygone. La longueur est calculée à partir de la somme de chaque ligne composant la polyligne.
ST_MAKEPOLYGONRenvoie un polygone dont l’anneau extérieur est la première géométrie entrée, optionnellement avec des trous.
ST_OVERLAPS Permet de savoir si la dimension de la géométrie résultant de l'intersection des 2 géométries est égale à la dimension des géométries comparées tout en étant différente de chacune des géométries comparées.
ST_PERIMETERRenvoie le périmètre en mètres de la géométrie indiquée. Le périmètre est calculé à partir de la somme de chaque segment composant les contours de la géométrie.
ST_SIMPLIFYRenvoie une géométrie 'simplifiée' de la géométrie spécifiée. Le calcul de la nouvelle géométrie est réalisé à l'aide de l’algorithme "Ramer-Douglas-Peucker", la précision du calcul dépend du paramètre "tolérance" indiqué.
ST_SYMDIFFERENCERenvoie une géométrie correspondant l'union de 2 géométries passées en paramètre à laquelle sont soustraits les formes correspondant aux points communs aux 2 géométries.
ST_TOUCHESPermet de savoir si deux géométries ont au moins un des points extérieurs décrivant leurs contours respectifs en commun.
ST_UNIONRenvoie une géométrie correspondant à l'union entre deux géométries. Cette géométrie correspond à la fusion des 2 géométries.
ST_WITHINPermet de savoir si la première géométrie se trouve dans la seconde géométrie, c'est-à-dire si TOUS les points composant la première géométrie sont contenus dans la seconde géométrie.
Vos bases de données HFSQL dans le Cloud en 3 clics
HFSQLDrive permet d’héberger facilement et immédiatement vos bases de données (vos tables) dans le Cloud.
Une appli mobile qui stocke les données dans le Cloud ? Disponible en 3 clics !
Le tarif d’abonnement forfaitaire est vraiment très compétitif.
Profitez-en vite !
Vitesse de synchronisation boostée
Un cluster se synchronise en temps réel dans le but que chaque noeud soit à jour afin d'offrir une résistance aux pannes et aux Windows Updates !
Un cluster permet également d'optimiser les performances de lecture.
En version 2024, HFSQL Cluster améliore sensiblement ses performances de synchronisation lors d'un redémarrage de noeud.
Divers
  • La fonction WLangage hCopieFichier est disponible en mode cluster.
  • Support du chiffrement sécurisé.
Note
Il ne faut pas confondre anonymisation et pseudonimisation.
La pseudonimisation est une opération qui est réversible et qui donc ne protège pas à 100% l’information traitée.
L’anonymisation n’est pas réversible et donc ne permet pas de retrouver les données d’origine.
Pourquoi anonymiser ?
Anonymiser permet de limiter l'exposition des données sensibles en les masquant à certains utilisateurs.
Anonymiser permet également de sécuriser des informations et éviter leur propagation.
L'anonymisation permet le respect du RGPD.
Note : il ne faut pas confondre anonymisation et pseudonymisation, voir ci-dessus.
Que peut-on anonymiser ?
L'anonymisation s'effectue facilement, de manière très fine, par rubrique (par colonne).
Les types de rubriques Texte (Chaîne et mémo texte), Entier, Réel, Date acceptent l'anonymisation.
Les 5 règles d'anonymisation
Il est possible d'anonymiser chaque rubrique selon 5 règles différentes :
  1. bruit : retourne la valeur d'origine avec un écart variable.
  2. valeur fixe : retourne toujours la même valeur.
  3. valeur aléatoire : retourne une valeur aléatoire.
  4. remplacement partiel : remplace uniquement une partie spécifiée de la rubrique.
  5. personnalisée : la valeur est retournée par votre code, présent dans une procédure stockée.
Exemples de chaque méthode sur un texte et sur un nombre :
Dupont >>> non applicable 1230 >> 1385
Dupont >>> Nom 1230 >> 1111
Dupont >>> efvb458/ 1230 >> 743
Dupont >>> DxxxxT 1230 >> 1xx0
Dupont >>> 2335874 1230 >> 6
Comment anonymiser ?
Pour anonymiser des rubriques d'une table de Base de Données, il suffit d'utiliser l'Editeur d'Analyses (Schéma des Données).
Il suffit de spécifier la règle d'anonymisation dans les 7 onglets de la définition de la rubrique.
Il est également possible d'anonymiser une base de données à l'aide des nouvelles fonctions SQL : ADDMasked, noise, value, random_XXX_between, partial, procedure.
Notez que lorsqu'une table (un fichier de données) contient au moins une rubrique anonymisée, la table doit être cryptée.
Qui peut lire ?
Pour des raisons de sécurité, par défaut tout accès à une rubrique anonymisée d'un fichier de données renvoie le contenu anonymisé.
Il n'est pas possible de lire la valeur d'origine, ni dans le Centre de Contrôle HFSQL, ni par programmation.
Pour autoriser la lecture du contenu original, il faut posséder les droits de "désanonymiser une rubrique" (UNMASK) sur le fichier de données.
Dans ce cas, le serveur renvoie les données originales.
Une programmation transparente
Dans tous les cas, la valeur initiale d'une rubrique anonymisée est conservée par le serveur, raison pour laquelle le fichier de données (la table) doit être crypté (chiffré).
Les fonctions WLangage hModifie, etc. sont sans effet sur une rubrique anonymisée : elles ne modifient jamais la valeur d'une rubrique anonymisée.
Il n'y a pas de risque d'écrasement de la valeur initiale.
Il n'est pas possible d'effectuer de recherche, de tri ou de filtre sur les rubriques anonymisées sans posséder les droits.
Une sécurité maximale
Tous les cas d'utilisation d'une rubrique anonymisée sont pris en compte : rubriques calculées stockées, vues matérialisées, sauvegardes, exports de la table...
Il n'est pas possible de lancer une sauvegarde du fichier de données sans posséder les droits de "désanonymiser une rubrique".
Note
La version 2024 de HFSQL gère les données géométriques et géographiques.
Vous pouvez stocker ces données dans des bases HFSQL et effectuer des requêtes SQL du type: «liste des parcelles sur lesquelles passe un chemin donné» ou «liste des écoles dans un rayon de 1 km».
Des données spatiales c'est quoi ?
Les données spatiales permettent de décrire :
  • la position,
  • la géométrie,
  • l'étendue.
d'objets dans l'espace (au sens "espace terrestre").
Les données spatiales peuvent servir à stocker des points d'intérêt (chargeurs, restaurants, hôtels), des données de type "tracé" telles que des routes, des rivières, des lacs (comme au Connemara) ou encore des surfaces comme des propriétés (cadastre), des forêts, des montagnes, des zones administratives, etc.
Ce type de données est nécessaire à la réalisation d'un SIG.
Les données spatiales sont des informations géographiques et géométriques (voir ci-après).
Comment décrire les données spatiales : les nouveaux types en WLangage
Deux systèmes de coordonnées sont utilisés selon l'usage choisi :
  • coordonnées géométriques (2D, geometry),
  • coordonnées géographiques (latitude/longitude, GPS, geography).
Les coordonnées 2D géométriques peuvent être utilisées sur des distances réduites (50 km maximum).
La terre étant ronde (si, si) il est nécessaire d'utiliser le système de coordonnées géographiques pour tenir compte de la courbure de la planète pour des distances plus élevées.
La manipulation de ces données spatiales s'effectue à l'aide de nouveaux types WLangage.
Pour le système géométrique (2D), vous bénéficiez des nouveaux types Point2D, Polygone2D, Polyligne2D, etc.
Le nouveau type MultiXXX permet de stocker un ensemble de types précédents.
Ces types sont également disponibles pour le système géographique : PointGéo, PolygoneGéo, PolyligneGéo, etc.
Comment récupérer des données spatiales ?
Il existe plusieurs méthodes pour récupérer des données spatiales.
Les données peuvent :
  • être directement renseignées par le développeur,
  • être le résultat des entrées d’utilisateurs (qui peuvent par exemple saisir des coordonnées),
  • être importées depuis un matériel (traceur GPS),
  • provenir de fichiers GPX,
  • être téléchargées depuis des fichiers publiés en ligne (en France notamment data.gouv.fr et apicarto.ign.fr).
Un simple smartphone peut fournir des positions et des tracés GPS (donc géographiques).
Pour la France, le site apicarto.ign.fr fournit par exemple des données utiles:
  • cadastre,
  • carte des appellations viticoles,
  • espaces naturels et zones protégées,
  • plans d’urbanisme,
  • zones de défense et de sécurité,
  • contours géographiques des académies,
  • et bien d’autres.
De nouvelles fonctions WLangage permettent de sérialiser et désérialiser les nouveaux types. De nombreux formats sont gérés: JSON, XML, CSV, texte, etc.
Fonctions de calcul sur les données spatiales
Il est possible d'effectuer des opérations spécifiques sur les données spatiales : calculs d'aires des parcelles, des longueurs des routes, des périmètres, des formes stockées, etc.
Il est également possible d'effectuer des opérations portant sur plusieurs données telles que les calculs de distances, la recherche de plus proches voisins, calculer l'union ou l'intersection de plusieurs zones géographiques, etc.
La nouvelle famille de fonctions WLangage géométrie est disponible dans ce but (voir nouveauté 372, triée par ordre alphabétique).
Comment stocker les données spatiales ?
En version 2024, il n'y a pas plus facile pour stocker des données spatiales : HFSQL !
Il suffit de stocker les données dans les nouvelles rubriques de type PointGéo, PolygoneGéo, PolyligneGéo, etc.
Un index spatial pour des requêtes rapides
Afin d’optimiser les performances sur les requêtes spatiales, un nouveau type d’index est proposé par HFSQL, les index spatiaux.
Les index spatiaux permettent de traiter rapidement de très gros volumes de données, caractéristique essentielle du fait de la taille de la plupart des jeux de données spatiales.
La description d’un index spatial s’effectue d’un clic dans l’Editeur d’Analyses (Schéma des Données).
Requêtes sur données spatiales
Il est possible de créer une requête du type : "trouver les 5 stations de recharge les plus proches de ma position", ou encore "compter le nombre de parcelles dans la ville XYZ à moins de 800 mètres d'une école, d'une surface d'au moins 400m²".
Les requêtes s'écrivent en SQL, ou sont générées par l'Editeur de Requêtes.
20 nouveaux ordres SQL (voir nouveauté 151 ) permettent de poser les conditions désirées : distance, surface, intersection...
Exemple de requête qui trouve les 5 stations de recharge les plus proches d'un point donné :
Ajout de fichiers de données
HFSQL Spare est une forme de sauvegarde quasi-temps réel d'un serveur.
En version 2024, l'ajout d'un fichier de données dans une base Spare s'effectue automatiquement : il suffit d'ajouter le fichier dans la base source.
Il n'y a plus de manipulation à effectuer.
Affichage plus rapide du contenu d'une table
l'affichage du contenu d'une table est optimisé dans le Centre de Contrôle en version 2024 : tout est beaucoup plus rapide.
Par exemple, les mémos ne sont pas systématiquement chargés et visualisés.
Affichage de ligne (enregistrement) en mode fiche
Le nouveau type d'affichage d'un enregistrement (ligne) en mode Fiche permet de visualiser et d'éditer le contenu de cet enregistrement de manière bien plus conviviale.
Divers
  • Le double-clic ne déroule plus la ligne,
  • Adaptation de la largeur des colonnes au contenu,
  • Affichage possible en mutilignes avec choix du nombre de lignes maximum,
  • Fusion des onglets Contenu et Recherche,
  • Gestion de l'ordre SQL Returning.
Note
De nombreux Connecteurs Natifs sont disponibles pour des bases de données tierces : Oracle, SQL Server, AS/400, DB2, MySQL, PostgreSQL, SQLite, xBase, MariaDB, Informix, Progress, Sybase, etc.
Ces connecteurs natifs facilitent la programmation (binding). Ils évoluent en version 2024.
Connecteur natif : procédures stockées non bloquantes
En programmation multithread, l'exécution d'une procédure stockée rend immédiatement la main aux a utres threads qui accèdent au connecteur natif.
La vitesse des applications est boostée.
Connecteur natif : programmation multithread : une vitesse démultipliée
En version 2024, les connecteurs natifs gèrent tous les aspects de la programmation multithread.
Une requête sur une base de données utilisant un connecteur natif exécutée dans un thread ne bloque plus les autres threads effectuant simultanément des accès à la base de données.
La vitesse est boostée.
Image docker : connecteur natif ORACLE et SQL Server
En version 2024, les connecteurs natifs à SQL Server et à Oracle peuvent être contenus dans une image Docker : très utile pour les images Docker WEBDEV (voir nouveauté 933 ).
Rappel : il est nécessaire de posséder une licence du Connecteur Natif pour chaque image Docker.
Divers
  • L'ordre SQL Returning est reconnu dans les Connecteurs Natifs Oracle, MariaDB et PostgreSQL.
Requêtes de type select *
Les requêtes un peu particulières de type SELECT* sont maintenant autorisées depuis l'Editeur de Requêtes.
Divers
  • Génération possible de Structures WLangage qui correspondent au résultat d'une requête,
  • Paramétrage possible du tri dans les requêtes de type Union.
IOT
Support de MQTT 5
MQTT est un protocole de messagerie (transfert de données) adapté aux machines.
La nouvelle version 5 de MQTT est supportée en version 2024.
MQTT : ignorer les erreurs de certificats
Il devient possible d'ignorer les erreurs de certificat.
MODBUS en WEBDEV
Les fonctions MODBUS sont maintenant disponibles sous WEBDEV également.
Note
L’Union Européenne a choisi de généraliser la facturation électronique.
Evolution du format d'échange
La facturation électronique devient obligatoire dans de nombreux états, dont la France.
Le format d'échange est en général basé sur des structures JSON.
La version 2024 renforce la gestion du format JSON, afin de permettre des transferts sécurisés.
Mon espace santé
En France, le "Dossier Médical Partagé" (DMP) est de plus en plus en plus utilisé.
Le Dossier est associé à la gestion de la Carte Vitale de l'assuré.
La Carte Vitale se dématérialise peu à peu.
WINDEV 2024 propose des fonctions pour lire le QR Code associé à la dématérialisation.
Fonctions d'accès à la blockchain Bitcoin
En version 2024, la nouvelle famille de fonctions BitcoinXXX permet d'obtenir des informations sur la blockchain Bitcoin : taille de la blockchain, hrate, date de minage du dernier bloc, etc.
Note
Le concept de Télémétrie vous permet de collecter et d’agréger des informations, nominatives ou anonymes, sur l’usage réel qui est fait de vos applications: choix de menu sélectionnés, fonctionnalités utilisées, durée des traitements et des requêtes, bugs éventuels, horaires d’utilisation.
La télémétrie permet également de connaître la configuration matérielle et les versions d’OS des utilisateurs finaux.
PCSCLOUD.NET propose l’installation immédiate d’un serveur de télémétrie.
Administrateur
La version 2024 propose une page d'administration intuitive qui regroupe et permet de réaliser les opérations de maintenance et d'administration :
  • changement de mot de passe,
  • changement de connexion à la base de données,
  • suppression d'une application,
  • etc.
Créer un test automatique d'une application sans son code source
L'automate de tests livré en standard avec WINDEV est un outil très apprécié. En version 2024, son usage devient encore plus universel.
Il n'est plus nécessaire de manipuler le projet source de l'application à tester.
Le ou les tests automatiques peuvent être générés en utilisant uniquement l'exécutable.
Les scripts des tests automatiques sont générés et utilisables de manière autonome.
Lancement de l'automate de tests par ligne de commande
En version 2024, il devient possible de scripter le lancement des tests automatiques.
Alerte d'expiration de certificat
En version 2024, le Robot détecte les dates d'expiration de certificat TLS, et déclenche une alerte le cas échéant.
Surveillance par requête HTTP
Les surveillances par requête HTTP permettent maintenant d'ajouter des paramètres dans les en-têtes HTTP de ces requêtes de test.
Redis
La nouvelle fonction RedisDeconnecte permet de se déconnecter de la base sans avoir à terminer le process.
Version minimum requise
  • Version 2024
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 27/03/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale