ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / New features / New features in version 28
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Consultez la brochure des 928 nouveautés (format PDF)

Nouveau Champ Kanban
Parmi les nouveautés majeures de la version 28, le nouveau champ Kanban trouvera de nombreuses utilisations. Simplement en plaçant le champ dans une fenêtre ou dans une page, une gestion de Kanban est disponible.
Pour plus de détails, consultez Le champ Kanban.
Kanban, c'est quoi ?
Kanban est à l'origine une méthode inventée au Japon qui vise à améliorer les process en vue de produire en meilleure qualité et en réduisant les stocks.
Aujourd'hui Kanban désigne également une méthode de classification visuelle des tâches, pour gérer ces tâches de manière agile.
Chaque tâche est écrite sur une "carte" que l'on changera de liste (de colonne) selon l'avancement.
Indépendamment de tâches, il peut s'agir de n'importe quelle ressource : user story, exigence, suggestion, étape de fabrication, livraison, dépannage, etc.
En général, un Kanban est partagé entre plusieurs utilisateurs.
Chaque membre de l'équipe connaît ainsi l'avancée du projet, et sait ce qu'il a à faire et où en est le travail des autres membres.
En plus d'une meilleure communication, cette technique à base de "cartes" permet de visualiser facilement l'ensemble de la chaîne de production et l'avancement des tâches, et ainsi de repérer facilement les blocages et les urgences.
Pour plus de détails, consultez Le champ Kanban.
Champ Kanban : les fonctionnalités principales
Le champ Kanban de la version 28 propose automatiquement les fonctionnalités riches que les utilisateurs attendent :
  • définition des listes (colonnes)
  • création et modification des cartes
  • suppression d'une carte
  • déplacement des cartes : vertical pour la priorité, horizontal pour changer de liste
  • gestion des droits utilisateur
  • ...
Toutes ces fonctionnalités offertes aux utilisateurs finaux de vos applications et sites sont disponibles dans le champ lui-même, et également disponibles par programmation.
Pour plus de détails, consultez Le champ Kanban.
Champ Kanban : les listes (les colonnes)
Le nombre de listes (de colonnes) se définit soit via l'interface des "7 onglets", soit par programmation.
De nombreuses options sont disponibles pour chaque liste :
  • titre
  • aspect graphique : couleur de fond, couleur de séparation, etc.
  • image de fond
  • largeur : fixe ou proportionnelle
  • affichage du nombre de cartes de la colonne
  • nombre maximum de cartes par colonne
  • bouton "+" d'ajout de carte
  • ...
Ces options permettent une personnalisation du Kanban.
Note : les libellés peuvent être saisis au format Markdown.
Pour plus de détails, consultez Le champ Kanban.
Champ Kanban : les cartes
L'aspect visuel des cartes est personnalisable.
Un modèle de carte "par défaut" est fourni.
Fonctionnalité très importante, une carte peut contenir une Fenêtre Interne ou une Page Interne, et ainsi contenir n'importe quels types de champs.
La personnalisation des cartes peut être globale à toutes les cartes, ou individuelle, carte par carte (ou groupe de cartes).
La hauteur de la carte est variable.
La largeur de la carte est fixée par défaut en fonction de la largeur de la colonne, ou paramétrable.
Les cartes Kanban sont totalement personnalisables. Ce sont des Fenêtres ou des Pages internes
Les cartes Kanban sont totalement personnalisables. Ce sont des Fenêtres ou des Pages internes
Pour plus de détails, consultez Le champ Kanban.
Champ Kanban : mémorisation des cartes et de leur position
Typiquement, les informations d'un Kanban sont stockées dans un fichier de données.
Le format des données est totalement libre.
Concernant la structure d'un fichier de données de tâches, il faut simplement prévoir les rubriques devant contenir les informations du tableau Kanban :
  • liste
  • priorité
  • texte de la carte
  • propriétaire de la carte
  • étiquette
  • date
  • ...
Un exemple complet est livré, utilisant un fichier de données HFSQL.
Le databinding (lien automatique entre la carte et les données) est disponible pour une programmation encore plus simple.
Notez que le databinding bi-directionnel est actif par défaut.
Bien entendu, il est également possible de gérer le remplissage et la sauvegarde du Kanban par programmation.
Champ Kanban : la gestion des droits utilisateur
Le champ Kanban permet la gestion des droits utilisateur :
  • déplacer verticalement la carte (changement de priorité)
  • déplacer horizontalement la carte (changement de liste)
  • créer une carte
  • éditer une carte
  • supprimer une carte
  • ...
La gestion des droits s'effectue par programmation.
Champ Kanban : la programmation
La programmation du champ Kanban permet de gérer :
  • l'aspect du Kanban
  • le contenu du Kanban
  • la gestion des droits
Le champ Kanban, les listes et les cartes disposent de propriétés permettant de paramétrer tous ces éléments.
Il est possible d'ajouter et supprimer des listes et des cartes par programmation.
Pour gérer le contenu d'un Kanban, un nouveau type natif fait son apparition en WLangage, le type kbCarte.
Le type kbCarte contient les propriétés suivantes :
  • titre
  • priorité
  • texte
  • intervenant
  • date
  • fenêtre ou page interne optionnelle pour personnalisation de la carte individuelle
  • ...
Les colonnes (les listes) se manipulent en programmation de la même manière que les colonnes de table : vous savez déjà le faire !
Exemple de code :
// Iterates over pending tasks for the contributor "JohnDoe"
FOR EACH Card OF KB_Sprint.TaskToDo.Cards
	IF Card.Contributor = "JohnDoe" THEN
	...
	END
END
Pour plus de détails, consultez Fonctions de gestion des champs Kanban.
Champ Kanban : les nouveaux événements de programmation
Pour gérer facilement un Kanban par programmation, de nouveaux événements de programmation font leur apparition :
  • sélection d'une carte,
  • double-clic ou appui long sur une carte,
  • déplacement vertical de la carte,
  • déplacement horizontal de la carte,
  • ajout d'une carte,
  • suppression (archivage) de la carte,
  • ...
Vous disposez ainsi de tous les événements pour programmer finement l'utilisation du Kanban dans votre application ou dans votre site.
Pour plus de détails, consultez Evénements associés à un champ Kanban.
Champ Kanban : nouvelles fonctions WLangage
Pour faciliter le filtrage dans un Kanban, la nouvelle fonction KanbanFiltre fait son apparition dans le WLangage en version 28.
Un champ Kanban multi-plateforme
Le même champ Kanban fonctionne sous WINDEV 28, WEBDEV 28 et WINDEV Mobile 28.
Les fonctionnalités sont identiques, avec quelques spécificités en mobile et en web pour mieux tirer parti de la plateforme.
Par exemple le mode d'utilisation sur téléphone en mode vertical tient compte de la faible largeur de l'écran.
Champ Kanban : export en PNG
Un Kanban existant peut être exporté sous la forme d'une image PNG par programmation à l'aide de la nouvelle fonction WLangage KanbanVersImage.
Champ Kanban : impression
Un Kanban s'imprime sous la forme d'une image générée à la demande.
Cela permet toutes les libertés.
Champ Kanban : divers
  • Définition des marges : autour des listes, entre listes, entre la carte et la liste, entre les cartes
  • Le bouton "+" permettant l'ajout de cartes est personnalisable via une Fenêtre ou une Page interne.
8 nouveaux Champs Métier
La version 28 offre 8 nouveaux Champs Métier :
  • Saisie de jetons avec liste
  • Affichage de badge
  • Complétion automatique d'adresse
  • Voir plus
  • Zone Répétée avec image et filtre
  • Tables Web sophistiquées (3 Champs Métier).
Tableur : insérer une formule de calcul dans une cellule par programmation
Le champ Tableur permet maintenant d'insérer une formule par programmation.
En version 28, il devient possible de créer des feuilles de tableur qui effectuent des calculs sans utiliser le champ Tableur.
Tableur : fusionner des cellules par programmation
En version 28, il devient possible de fusionner des cellules d'une feuille de Tableur par programmation.
Champ Tableur : support de la notation scientifique
Dans les cellules du champ Tableur, il devient possible de saisir des nombres en notation scientifique.
Par exemple 1,23E+10.
Champ Tableur : divers
  • Propriétés riches de mise en page pour impression : taille de page, orientation, marges...
Champ Traitement de Texte : correction automatique à la saisie / glossaire
Le champ Traitement de Texte permet maintenant de proposer une correction orthographique automatique à la saisie. Cette fonctionnalité permet également la création d'un glossaire automatique.
Champ Traitement de texte : évolutions diverses
  • En programmation : recherche possible des éléments par leur nom interne.
  • Le raccourci MAJ+F3 passe le texte sélectionné en majuscules.
Nouveauté champ Graphe : Aire Polaire
Un nouveau type de graphe fait son apparition en version 28 : le graphe Aire Polaire.
Ce type de graphe est principalement utilisé pour comparer des objectifs ou des parts de marché, ou illustrer une progression. La valeur n'est pas représentée par la largeur de la part, mais par sa longueur.
Un graphe Aire Polaire
Un graphe Aire Polaire
Nouveau champ Graphe Aire Polaire : la programmation
La programmation du champ Graphe Aire Polaire est la programmation habituelle de remplissage des graphes.
La famille de fonctions WLangage grxxx habituelle permet de manipuler ce type de graphe.
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.
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 un site Web dynamique ou en une application SaaS.
WEBDEV 28 répond à ce besoin de manière idéale, en récupérant les projets WINDEV, et grâce à la fonctionnalité SaaS livrée en standard.
Markdown c'est quoi ?
Markdown est un langage de balisage "léger" qui permet de formater des textes, et qui fonctionne sur tous les supports : PC, Web, Mobile.
Markdown est assez simple mais très pratique et facile à prendre en main, à retenir et à relire.
Par exemple : entourer un texte avec les caractères ** passe ce texte en gras, positionner un # en début de ligne crée un titre, un ## un sous-titre, etc.
Markdown dans tous les textes : libellé de champ, en-tête de colonne, option de menu, bulle d'aide, etc.
En version 28, il devient possible de saisir les "textes" en langage markdown, et ainsi de formater facilement (sans gStylo , sans gImage, etc.) de nombreux éléments de vos UI.
Il peut s'agir par exemple de :
  • un libellé de champ de saisie
  • un libellé d'option de menu
  • un en-tête de colonne de table
  • une bulle d'aide
  • un texte à afficher
  • ...
Transformez un texte Markdown en PDF, en docx ou en HTML
Les nouvelles fonctions WLangage MarkdownVersDocx, MarkdownVersPDF et MarkdownVersHTML permettent la conversion des textes Markdown vers ces formats.
Champ Editeur de diagrammes : dessin à main levée
Le champ Editeur de Diagrammes permet maintenant la création de dessins à main levée par les utilisateurs finaux.
Chaque dessin créé peut ensuite être manipulé comme tous les autres objets, sous l'éditeur ou par programmation.
Champ Editeur de diagrammes : nouvelle propriété sur les formes pour définir les actions non autorisées
La nouvelle propriété ActionAutorisée, disponible sur toutes les formes du diagramme, permet de restreindre les actions autorisées à l'utilisateur :
  • déplacer
  • redimensionner
  • sélectionner
  • modifier le texte
  • supprimer
  • copier
  • ...
Par défaut toutes les actions sont autorisées à l'utilisateur final.
Tous les champs : mieux que "Note", la propriété "Extra"
Un contenu peut être associé par programmation à un champ afin de permettre de récupérer ultérieurement ces informations par programmation.
C'est l'objet de la propriété Note, qui permet de stocker des chaînes.
En version 28, la nouvelle propriété Extra permet, elle, de stocker des couples "clé/valeur" de tout type afin de stocker des informations plus structurées que de simples chaînes : des objets, un enregistrement, une requête...
Champ Fenêtre interne : il peut être vidé
Le champ Fenêtre interne peut maintenant être "vidé" de son contenu.
La fonction WLangage ChangeFenêtreSource supporte le nouveau paramètre "chaîne vide".
Génération de formulaire PDF
La version 28 permet de créer des formulaires PDF grâce à l'éditeur d'états.
En plus des champs proposés dans l'éditeur d'états, un formulaire PDF peut contenir des champs de type :
  • Champ de saisie
  • Interrupteur
  • Combo.
En version 28, il devient possible de créer des états utilisant ces champs pour générer automatiquement des formulaires PDF avec interaction.
L'utilisateur final saisit les informations, puis imprime ou sauvegarde le formulaire.
Un formulaire PDF à saisir
Un formulaire PDF à saisir
Champ Lecteur PDF : OCR intégré
Dans un document PDF "habituel", le texte est en général sélectionnable.
Mais il peut arriver qu'un document PDF contienne du texte sous forme de scan, d'image, ou interdise le copier/coller.
Dans ces cas, pour récupérer le texte au format "texte", le champ Lecteur PDF inclus en standard par WINDEV offre maintenant une fonction intégrée d'OCR.
L'OCR s'effectue sur une zone spécifiée par l'utilisateur final.
La fonction OCR automatique permet par exemple de récupérer un IBAN présent sous forme d'image pour le copier/coller.
La fonction OCR automatique permet par exemple de récupérer un IBAN présent sous forme d'image pour le copier/coller.
Réduction du poids des pdf générés via un état (2 à 10 fois plus petit)
Un document peut être composé d'une succession d'états et de pages PDF.
La génération d'un document PDF unique à partir de ces enchaînements bénéficie d'une optimisation drastique de la taille du document PDF généré.
PDF en fond d'état : réduction de la taille du PDF résultant (2 à 10 fois plus petit)
Un état peut contenir un document PDF en fond de page.
Cet état peut lui-même être généré sous la forme d'un document PDF.
La taille (le poids) du PDF final utilisant un fond de page PDF est réduite d'un facteur 50% au minimum.
Vitesse de génération des fichiers pdf (2 à 25 fois plus rapide)
En version 28, la vitesse de génération de documents au format PDF fait un bond spectaculaire.
La vitesse de génération est 2 à 25 fois plus rapide en version 28, selon la taille des documents.
Taux de compression paramétrable, choix de la qualité
Selon le niveau de qualité choisi, la taille du fichier PDF varie
Selon le niveau de qualité choisi, la taille du fichier PDF varie
La version 28 permet de choisir le taux de compression du document sauvegardé, et donc de fixer la qualité du document et son poids.
Cela permet d'influencer la taille du document généré : plus la qualité est basse, plus le document est léger.
Le nouveau paramètre Qualité de la fonction WLangage pdfSauve permet de fixer ce taux : Automatique, Elevée, Moyen et Faible.
Signature de PDF : mise en évidence de la validité des certificats pour l'utilisateur final
Le champ Lecteur PDF signale lorsqu'un document est signé.
Les informations de cette ou de ces signatures sont visualisables dans le lecteur.
En version 28, la présentation de ces signatures a été reformulée en termes "non techniques" pour être plus facilement compréhensible par un utilisateur final, et donc apporter plus de sécurité :
  • certificat invalide
  • document modifié après signature
  • ...
L'utilisateur final connaît l'état de la signature du PDF
L'utilisateur final connaît l'état de la signature du PDF
Se positionner sur un signet par programmation
En version 28, il devient possible de se positionner directement sur un signet donné.
Le nouveau type pdfSignet et ses nouvelles propriétés Titre et NuméroPage, la nouvelle propriété Signet, et la nouvelle fonction WLangage LecteurPDFAfficheSignet font leur apparition dans ce but.
Edition des fichiers de données (table) facilitée : nouvelle fenêtre "7 onglets" plus riche
Dans l'Editeur d'Analyses, la description des propriétés d'un Fichier de Données a été revue et simplifiée : cette description bénéficie maintenant d'une meilleure UX via les 7 onglets.
Un des onglets de la description de Fichier de Données
Modifications sur une sélection de tables (fichiers de données)
En version 28, l'Editeur d'Analyses permet de sélectionner un ensemble de tables pour effectuer une modification sur cet ensemble en une seule manipulation.
Il n'est plus nécessaire de répéter les manipulations sur chaque description.
Duplication d'une description de rubrique : dans une même table, dans une autre table (fichier de données)
La duplication d'une description de rubrique est disponible, à la fois dans une même table (le même fichier de données) et entre tables (fichiers de données) différentes.
Icônes représentatives
Dans l'Editeur d'Analyses, les rubriques sont maintenant précédées d'une icône représentative, et leur graisse indique leur type : clé primaire, unique...
Le choix est plus visuel
Le choix est plus visuel
Ouf, de l'air ! Une nouvelle UI aérée
L'environnement de la version 28 suit l'évolution générale des UI actuelles et propose une interface plus aérée.
Selon ces mêmes tendances, la taille de la police est légèrement augmentée.
Migration automatique de projet : vitesse multipliée par 2
Le passage d'un projet d'une ancienne version en version 28 s'effectue par une simple recompilation.
En version 28, cette recompilation (migration automatique en version 28) s'effectue 2 fois plus rapidement.
Editeur de script WLangage
L'éditeur WDSCRIPT livré en standard permet de saisir, exécuter et sauver du code WLangage
L'éditeur WDSCRIPT livré en standard permet de saisir, exécuter et sauver du code WLangage
Un éditeur de script WLangage est fourni en version 28.
Cet éditeur est autonome, pour une plus grande souplesse.
L'éditeur bénéficie de la coloration syntaxique.
Exécution de script WLangage
La version 28 permet la création de scripts WLangage.
Un script est un fichier texte qui contient du code WLangage.
Ce code est exécuté grâce au nouvel éditeur WDScript.
Les scripts permettent de créer facilement des traitements batch.
Une nouvelle version de l'environnement est disponible ? Vous êtes averti par l'environnement
Les nouveaux toasts
Les nouveaux toasts
Lorsqu'une nouvelle version de l'environnement est disponible sur le site de PC SOFT, l'environnement lui-même vous prévient et vous propose la mise à jour : un toast s'affiche.
Notifications sous l'environnement : elles sont plus lisibles
Les notifications affichées par l'environnement deviennent beaucoup plus lisibles.
Impossibles à rater !
Champs : magnétisme au clavier
Le déplacement des champs (quel que soit l'éditeur) peut s'effectuer au clavier.
Le magnétisme est actif pendant ce déplacement : le déplacement marque un temps d'arrêt à chaque magnétisme.
En version 28, l'appui sur la touche 0 du pavé numérique permet de visualiser les règles de magnétisme utilisées.
Des poignées de champs plus ergonomiques
Des poignées faciles à saisir
Des poignées faciles à saisir
Sous l'éditeur de la version 28, les champs sont dotés de poignées plus simples à sélectionner.
Lors des déplacements, les poignées disparaissent pour faciliter un positionnement précis.
7 onglets : édition de l'image associée au champ directement depuis l'onglet style
Un champ Cellule, Bouton, Image par exemple peut contenir une image.
En version 28, l'édition de cette image depuis l'onglet Style est facilitée par la présence d'un bouton d'édition.
Editez directement l'image
Editez directement l'image
Impossible d'éditer un champ dans les "7 onglets" ? L'environnement vous détaille la raison
Il arrive parfois qu'un champ ne puisse pas être édité par les 7 onglets : le contenu des onglets reste grisé.
Les raisons sont multiples : fenêtre non extraite du GDS, fichier en lecture seule sur le disque, champ d'un modèle non surchargé, etc.
En version 28, l'environnement détaille précisément la raison de ce grisage.
Champ Image : Live Data, les images s'affichent dans les "7 onglets"
En version 28, les 7 onglets bénéficient du Live Data pour les images.
A chaque fois que cela est possible, une image de la base de données est utilisée.
La gestion des images devient plus visuelle dans les 7 onglets
La gestion des images devient plus visuelle dans les 7 onglets
Le choix du style a du style (7 onglets)
La fenêtre des styles permet un choix plus convivial du style à appliquer.
Les styles sont présentés par ordre d'intérêt.
Catalogue d'images : édition de l'image
En version 28, le catalogue d'images permet de modifier directement une image sélectionnée : recadrer, changer les couleurs, ajouter du texte, etc.
L'image sélectionnée peut être directement modifiée
L'image sélectionnée peut être directement modifiée
Qui n'a pas rêvé d'utiliser les raccourcis dont il a l'habitude ?
La version 28 permet de définir ses propres raccourcis dans l'ensemble des éditeurs de l'environnement de WINDEV, WEBDEV et WINDEV Mobile :
  • Editeur de projet
  • Editeur d'analyses
  • Editeur UML
  • Editeur de fenêtres
  • Editeur de pages
  • Editeur de requêtes
  • Editeur d'états
  • Editeur d'aide
  • Editeur d'images
  • Editeur de code
  • Editeur de tests
  • Editeur de modélisation souple
  • Editeur d'installation
  • Editeur de plans d'action Fabrique Logicielle
  • Editeur de Webservices
  • Editeur de Widgets de télémétrie
  • ...
Redéfinissez les raccourcis existants
Vous souhaitez changer les touches d'un raccourci existant ?
Il suffit d'utiliser le Ruban qui permet d'afficher la liste de tous les raccourcis par éditeur, et de saisir la nouvelle combinaison de touches souhaitée.
Créez de nouveaux raccourcis
La version 28 permet également de créer des raccourcis sur n'importe quelle action, même une action qui ne dispose pas de raccourci.
Il suffit d'utiliser le ruban (Volet "Accueil", Bouton "Options" puis "Raccourcis Clavier"), qui affiche la liste de toutes les actions possibles pour chaque éditeur, et de saisir la combinaison de touches souhaitée.
Partagez vos raccourcis
Un point important : les raccourcis que vous définissez seront utilisables dans les futures versions.
De même, les raccourcis que vous avez définis peuvent être exportés vers un autre poste.
Graphes crénelés (option anti alias non activée)
Les graphes dont l'option "anti alias" n'a pas été activée, sont susceptibles d'afficher des crénelages. Ces graphes sont signalés par l'Audit sur l'ensemble du projet.
Accès aux champs de la page depuis une tâche différée
Vous le savez, il n'est pas possible de savoir exactement quand un thread ou une tâche différée va exécuter une instruction particulière.
Dans le cadre du code Serveur d'une page WEBDEV, l'exécution peut avoir lieu alors que la page a déjà été renvoyée; ce qui pose un problème en cas d'affectation de champ.
Ce cas est signalé par un Warning d'exécution.
Localisation supplémentaire pour les intervenants : télétravail
Le Centre de Gestion de Projets propose un nouveau type de localisation pour les intervenants : le télétravail.
Cela permet d'indiquer la ou les périodes de télétravail des intervenants.
Dates de congés d'un intervenant
En version 28, il devient possible pour l'administrateur de consulter les dates de congés d'un intervenant.
Cela permet une meilleure organisation.
Gestion des sprints
La gestion des sprints offerte par le Centre de Contrôle bénéficie de nombreuses améliorations en version 28 :
  • Tableau de Bord des sprints : Nouveau Graphe de répartition des incidents et Graphe des durées des tâches
  • Items du sprint : possibilité d'affecter une couleur, avec filtrage et tri des items par couleur
  • Filtrage des backlogs des tâches et incidents par intervenant
  • Filtrage du backlog des incidents par type
  • Nombreux nouveaux tris et filtrages
  • Nouveau Graphe du nombre de corrections et de créations d'incidents par intervenant
  • Possibilité d'associer plusieurs images et plusieurs reproductions à un même incident
  • ...
Génération Automatique
L'Intégration Continue permet maintenant de générer automatiquement la documentation technique du projet.
Une nouvelle action de la Fabrique Logicielle fait son apparition dans ce but.
Dossier technique automatique
On vient de le voir, la nouvelle action "Génération du dossier technique du projet" fait son apparition en version 28 pour générer le dossier technique (dossier de programmation) à partir d'une action de la Fabrique Logicielle.
Nouvelle action pour migrer un projet
L'Intégration Continue propose la nouvelle action "Recompil. migration" permettant de recompiler un projet provenant d'une version antérieure.
Nouvelle action pour déployer dans un Store Privé
L'Intégration Continue propose la nouvelle action "Déployer dans Store Privé" permettant de déployer automatiquement une application dans un Store Privé.
Fenêtre de login : look épuré style Windows 11
La nouvelle fenêtre de login par défaut
La nouvelle fenêtre de login par défaut
En version 28, la fenêtre de saisie des informations de connexion au Groupware Utilisateur bénéficie d'un lifting.
Cette fenêtre propose maintenant par défaut un look épuré style "Windows 11".
Rappel : cette fenêtre est totalement personnalisable.
OAuth : support des organisations
Le GPU permet de s'identifier par OAuth.
En version 28, le GPU gère les "Organisations" lors des identifications OAuth.
GIT clone : jauge de progression
Lors d'un clonage (la récupération) d'un projet, une jauge de progression est affichée pour informer de l'état d'avancement.
GIT : connexion SSH
SSH est un protocole de communication sécurisé.
Il est maintenant possible de se connecter à un serveur Git par SSH, donc sans avoir à ressaisir ni login ni mot de passe.
GIT : ouverture de projet git depuis la fabrique logicielle
La Fabrique Logicielle (Intégration Continue) propose une nouvelle action permettant d'ouvrir (de cloner) un projet GIT automatiquement.
GIT : branche : créer, switcher, fusionner
La création, le switch et la fusion de branches d'un projet dans Git s'effectuent maintenant directement depuis l'éditeur.
GIT : divers
  • Le nom de la branche GIT est affiché dans la barre de titre de l'éditeur.
Editeur d'images de l'environnement : il bénéficie de toutes les nouveautés du champ Editeur d'images
L 'éditeur d'images intégré à l'environnement bénéficie des nouveautés du champ Editeur d'images apparues en version 28 : GIF animés, scan, etc.
Choix de langues "hors projet" lors de la réintégration
Un Etat peut utiliser des langues supplémentaires à celles décrites dans le projet.
Par défaut, WDMSG propose uniquement les langues du projet lors de la réintégration des traductions.
Il est maintenant possible d'ajouter des langues supplémentaires lors de la réintégration des traductions.
Support des projets de taille très importante
Les modules WDTRAD et WDDIXIO inclus dans WDMSG supportent maintenant des volumes de messages à traduire infinis.
Amélioration du DIFF et du merge d'analyse (schéma des données)
En version 28, la gestion des branches pour les versions d'Analyses est améliorée dans l'environnement du GDS.
De nombreux nouveaux cas sont traités en mode automatique.
Action Bar : prise en compte automatique par diff et merge
En version 28, le Diff et le Merge prennent en compte les Action bars.
Merge : ne pas voir les modifications effectuées à l'identique dans chaque branche
Il peut arriver qu'une même modification ait été reportée manuellement dans 2 branches différentes.
Lors de la fusion de ces 2 branches, il peut être plus clair de ne pas afficher ces modifications.
Cette option apparaît en version 28.
GDS : divers
  • Gestion plus fine des éléments partagés (composants internes, fenêtres, etc.) lors d'un changement de version de l'environnement
  • Requêtes stockées et Procédures stockées : prise en compte par Diff et Merge.
Un éditeur plus fluide, vitesse multipliée par 2, 3 ou 4
La réactivité de l'éditeur de code s'améliore nettement en version 28; sa vitesse est multipliée par 2 dans le cas général, et jusqu'à un facteur X4 pour les codes de grande taille !
Cela rend les déplacements dans l'éditeur bien plus fluides.
7 nouveaux raccourcis dans l'éditeur de code
7 nouveaux raccourcis bien pratiques font leur apparition dans l'éditeur de code en version 28.
Ils se rajoutent bien évidemment aux raccourcis existants !
  • FLECHE DROITE en fin de ligne : Passe à la ligne suivante
  • ALT+MAJ+FLECHES : Permet d'effectuer une sélection en carré avec le clavier (comme ALT+souris).
  • CTRL+MAJ+Retour Arrière : Supprime tout ce qu'il y a avant le curseur dans la ligne
  • CTRL+MAJ+SUPPR : Supprime tout ce qui est présent après le curseur dans la ligne
  • Amélioration de Ctrl+/ : Passe la sélection en commentaire à l'aide des caractères /* et */
  • CTRL+MAJ+E (E pour Eléments) : Sélectionne le mot entier sur lequel le curseur se trouve.
  • TAB : Valide la complétion.
Rappel : en version 28, il est également possible de créer ses propres raccourcis dans l'éditeur.
Gestion de vos propres hashtags
Il devient possible de placer des marques (des Hashtags, par le caractère #) dans les commentaires de code (#TODO, etc.)
Le texte des marques est libre.
Une nouvelle fenêtre de visualisation de ces hashtags est disponible sous l'éditeur de code.
Cette fenêtre permet de se déplacer parmi les occurrences des marques dans le code.
Pour plus de détails, consultez : Le volet "Hashtags du code".
Une recherche au clavier (sans souris) dans le code en cours
Lors de l'écriture de code, il arrive souvent de vouloir effectuer rapidement une recherche dans le code en cours.
Cette recherche peut bien entendu être effectuée par la recherche générale de l'environnement (Ctrl Maj F).
Cela oblige cependant à saisir la souris et à régler cette recherche.
En version 28, un nouveau mode de recherche simple dans le code en cours fait son apparition.
Cette recherche s'effectue au clavier (Ctrl F).
La chaîne recherchée est mise en évidence (surlignage) dans le code en temps réel lors de la frappe.
Le nombre d'occurrences est affiché.
Le parcours des occurrences s'effectue avec F3 et Maj F3.
Il est possible de remplacer les occurrences trouvées à l'aide des touches Ctrl H.
Recherche dans l'éditeur de code
La recherche de code dans le projet complet débute maintenant par l'élément en cours d'édition.
Prise en compte des tabulations dans les chaînes multilignes
Les chaînes multilignes se définissent soit à l'aide de crochets, soit à l'aide de doubles quotes.
Lorsqu'une chaîne multiligne est définie par des doubles quotes, les tabulations contenues dans la chaîne sont conservées.
L'assistant à la saisie de requêtes SQL est présent dans l'éditeur de code
Le puissant assistant visuel de création de requêtes SQL (qui permet de générer du code SQL sans connaître SQL) est maintenant disponible directement dans l'éditeur de code.
Expression régulière insensible à la casse
L'expression (?i) permet d'indiquer que la casse doit être ignorée par l'expression régulière.
Pour plus de détails, consultez : RegexVérifie.
Analyse des durées de traitement en temps réel et sur fichier de log
La barre orange met en évidence un blocage
La barre orange met en évidence un blocage

Cette superbe nouveauté facilite la recherche des bogues et des lenteurs incompréhensibles dans vos applications !
Que ce soit en temps réel, ou a posteriori grâce au fichier de log, vous analysez dans le détail la durée d'exécution de chaque traitement, de chaque Thread d'une application.
Thread consommateur, transaction qui bloque, callback au traitement long, boucle longue, vous détectez immédiatement la source des lenteurs.
Vous pouvez donc modifier immédiatement votre code.
Pour plus de détails, consultez Analyseur Temps Réel (ATR).
Amélioration log d'exécution (dbgActiveLog)
L'analyse des logs d'exécution devient plus aisée en version 28 :
  • Le chargement du fichier de log est instantané.
  • Le contenu du fichier de log "cycle" afin de limiter la taille du fichier de log. Les contenus anciens sont automatiquement remplacés
  • Un mode interactif d'analyse des logs fait son apparition : affichage de courbes, etc.
Pour plus de détails, consultez Log d'exécution.
Un environnement DevOps intégré
WINDEV, WEBDEV et WINDEV Mobile en version 28 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.
Création d'états : un assistant bien plus performant
L'assistant de création d'états de l'Editeur d'Etats a subi une refonte.
Son utilisation est devenue bien plus intuitive.
Etat formulaire : encore plus puissant
Dans un état de type formulaire, en plus des champs de saisie habituels, il devient possible d'insérer des champs de type Interrupteur et Combo.
Modification possible de l'ordre des blocs d'itération
Par défaut, dans un état, l'ordre d'affichage des blocs d'itération est l'ordre de création de ces blocs.
En version 28, il devient possible de modifier cet ordre sous l'éditeur, pour que les blocs soient affichés dans l'ordre logique.
Tout connaître des impressions demandées
Depuis le visualisateur de rapport, il est possible de déclencher différents exports.
La fonction WLangage iImpressionDemandée renvoie maintenant la liste de toutes les impressions et des exports demandés par l'utilisateur final et de leurs paramètres : destination, format papier, orientation, nom du fichier, etc.
Connaître la liste et le type des paramètres attendus par un état
Le logiciel Etats & Requêtes permet à l'utilisateur final de créer des états.
Lorsque l'application permet à l'utilisateur final d'imprimer les états qu'il a créés, l'application doit passer les paramètres attendus.
La fonction WLangage RécupèreDéfinition permet maintenant également de connaitre le prototype complet d'un état : liste des paramètres et leur type.
Editeur d'états : divers
  • Présence d'un Splitter pour régler la zone d'ascenseur visuel.
  • Les libellés présents dans un état supportent Markdown.
Détection de contours
La nouvelle fonction d'intelligence artificielle IADétecteContour détecte les contours d'une image.
La fonction renvoie un tableau de polygones de l'ensemble des formes qui ont été détectées dans l'image.
L'IA détecte les contours
L'IA détecte les contours
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.
Application anormalement lente ? analysez ce qui se passe
Qui n'a pas été confronté à une application qui par moments devient lente, sans explication ?
En version 28, WINDEV vous aide à trouver la raison de la lenteur, et donc vous permet de la supprimer.
L'Analyseur Temps Réel (ATR) affiche, en temps réel bien sûr, mais également en utilisant un fichier de log, un graphe de l'activité de l'application.
Ce graphe permet de détecter les lenteurs et les blocages.
Pour plus de détails, consultez Analyseur Temps Réel (ATR).
Le graphe défile...
Le graphe représente l'activité de l'application.
Le graphe défile en temps réel.
Le graphe est binaire, à 2 niveaux :
  • Le palier bas indique l'application au repos. Cela signifie qu'elle est en attente d'une action de l'utilisateur (clic, etc.)
  • Le palier haut indique que l'application est occupée. Cela signifie que l'application ne répond plus à l'utilisateur final.
Il est possible de se déplacer dans le graphe (en arrière !), de zoomer une partie du graphe, etc.
Les paliers hauts trop longs apparaissent en rouge.
Cliquer sur un palier haut affiche tous les appels de fonction qui ont eu lieu, ainsi que la durée d'exécution de chaque fonction et permet d'accéder au code de ces fonctions.
L'analyse du code permet de trouver l'origine d'un ralentissement.
Pour plus de détails, consultez Analyseur Temps Réel (ATR).
Une analyse en temps réel ou sur fichier de log
L'analyse s'effectue au choix selon 3 modes :
  • en temps réel sur le poste de développement (en GO)
  • en temps réel sur un poste d'exécution
  • a postériori sur un fichier de log.
L'écriture dans le fichier de log se gère par programmation (dbgActiveLog).
Pour plus de détails, consultez Analyseur Temps Réel (ATR).
ATR : pour le multithread également
L'ATR gère également les applications multithread.
Le graphe affiche l'activité des différents threads, et permet d'analyser les éventuels inter-blocages entre les threads : thread en attente de synchronisation, pool de threads en attente de travail...
Pour plus de détails, consultez Analyseur Temps Réel (ATR).
Nouveau type chaîne indétectable (cryptée en mémoire)
Le nouvel attribut <Indétectable> permet d'obfusquer automatiquement le contenu de la chaîne en mémoire.
Un dump mémoire ne permet pas de retrouver le contenu de la chaîne indétectable.
Pour plus de détails, consultez Chaînes de caractères.
Créez vos propres fonctions WLangage (Syntaxe préfixée)
La nouveauté "Fonction d'Extension" permet de rajouter vos propres fonctions WLangage aux types du langage.
Les fonctions que vous avez définies peuvent ensuite être appelées comme des fonctions natives du WLangage.
Par exemple, il vous est possible de créer une fonction qui remplace les "Tab" par des "Espaces" dans une chaîne.
Vos fonctions apparaissent dans l'assistance de code du type ciblé.
Votre fonction apparaît (en vert) dans la complétion
Votre fonction apparaît (en vert) dans la complétion
Note : ces fonctions existent également en syntaxe historique.
Type avancé pour lire les fichiers (paramètre, etc.) sur disque
Le nouveau type avancé FichierDisque permet de manipuler de manière élégante (sans gérer de numéro de handle !) des fichiers sur disque : fichier binaire, fichier de paramètres, fichier texte...
Les syntaxes préfixées sont donc disponibles.
Exemple de code :
Sécurité automatique importante : le fichier manipulé est automatiquement fermé lorsque la variable est libérée.
Le type FichierDisque propose également de gérer les fichiers temporaires.
Le fichier est automatiquement fermé et supprimé lorsque la variable est libérée.
Email qui propose de rajouter un rendez-vous dans l'agenda du destinataire
En WLangage, un mail est créé facilement à l'aide du type avancé Email .
En version 28, la propriété Attache permet de décrire le ou les rendez-vous proposés dans l'email.
Le lecteur d'email du destinataire pourra ainsi proposer d'ajouter ce rendez-vous dans l'agenda du destinataire.
Transfert sécurisé de fichiers : nouvelle famille de fonctions SCP
La nouvelle famille de fonctions SCP permet d'envoyer ou de récupérer des fichiers par le protocole sécurisé SCP (Secure Copy Protocol).
On peut comparer le SCP à un FTP sécurisé.
Pour plus de détails, consultez Fonctions SCP.
Proxy Socks 5
Socks 5 est un protocole réseau pour l'utilisation de proxy.
La version 28 supporte nativement ce protocole.
Les fonctions WLangage Proxy, SocketProxy et FTPProxy permettent de paramétrer l'adresse du Proxy Socks 5.
Les communications HTTP, FTP, SFTP, socket, Webservice fonctionnent avec un proxy de ce type.
Procédures locales : publiques ou privées ?
En version 28, il est possible de définir la portée d'une procédure locale et des variables globales de la fenêtre ou de la page : publique ou privée.
Une procédure Publique peut être appelée de l'extérieur du champ.
Une procédure Privée ne peut être appelée que depuis l'intérieur du champ.
Nouvelles fonctions sur images
La gestion des images s'enrichit de nouvelles fonctionnalités :
  • la fonction dRotation propose une option pour adapter la taille après rotation.
  • la fonction dModifieContraste fait son apparition.
Conversions ansi <-> UTF-8 <-> utf-16LE <-> utf-16BE <-> utf-32LE <-> utf-32BE
UTF-16BE et UTF-16LE sont des normes de codage de chaîne Unicode (LE pour Little Endian et BE pour Big Endian).
Selon LE ou BE, les octets ne sont pas dans le même sens !
La nouvelle fonction UTFConvertit permet les conversions.
Redresser une image en perspective
La nouvelle fonction dRedresse de la version 28 permet de passer une image rectangulaire déformée par une perspective de prise de vue en image rectangulaire initiale.
La fonction se base sur un algorithme Homéomorphique.
L'image est redressée
L'image est redressée
Composant externe dynamique : chargé à l'exécution
En version 28, il devient possible de charger des composants externes de manière dynamique, sans que le composant ne soit présent dans le projet.
Les nouvelles fonctions WLangage ComposantCharge et ComposantExécute feront votre bonheur !
Combinée avec la gestion des interfaces POO, cette nouveauté permet une architecture plus formalisée.
Codes-barres EAN
Les codes-barres de type EAN permettent le choix du cadrage du texte généré avec le code-barres.
Evolution de l'introspection
La fonction WLangage RécupèreDéfinition permet maintenant également de connaître le prototype complet des traitements d'initialisation de fenêtres, de pages et d'états.
Génération d'image géométrique de remplissage
La nouvelle fonction WLangage GénèreImageGéométrique génère une image aléatoire contenant des formes simples géométriques afin, par exemple, de remplir le champ "photo" d'un utilisateur et ne pas le laisser vide tant qu'il n'a pas fourni sa propre photo.
Plutôt que laisser une photo non choisie
Plutôt que laisser une photo non choisie "vide",
il est possible de générer une image géométrique dans le champ
Vérification syntaxique d'identifiants administratifs
La version 28 propose de nouvelles fonctions permettant de tester la validité syntaxique d'identifiants administratifs : SIREN, SIRET et INSEE.
Cela évite de lancer une recherche sur un numéro incorrect.
France : SIREN, SIRET et INSEE
Belgique : NISS, BCE et UE
Suisse : NAVS, IDE et REE
Canada : NAS, NE9 et NE15
Etats Unis : EIN, FEI, SSN
Allemagne : IdNr, UStIdNr
Italie : CF, IVA
Espagne : DNI, NIF
Brésil : CNPJ, CPF
Syntaxe IBAN valide
La nouvelle fonction IBANValide permet de vérifier qu'un IBAN passé en paramètre est valide.
Cela évite de lancer une recherche sur un numéro incorrect.
Attention : cela ne signifie pas que le compte existe.
Une fonction unique pour effectuer un OCR sur une zone sélectionnée au lasso
La nouvelle fonction PicCaptureLasso active le lasso sur l'écran, récupère le résultat de la sélection, effectue un OCR sur cette sélection, et renvoie le texte résultant.
Lancez un OCR sur une zone
Lancez un OCR sur une zone
Certificat intégré dans l'exécutable
Une fonction de signature ou de cryptage peut utiliser un certificat.
En version 28, ce certificat peut provenir d'un buffer en mémoire, et plus uniquement d'un fichier sur disque.
Cryptage (chiffrement) et signature : format PEM et DER
Une fonction de signature ou de cryptage peut utiliser un certificat de différents formats.
En version 28, les certificats au format PEM et DER sont gérés en plus du format P12.
Ports série : timeout
En version 28, il devient possible de passer la durée du timeout en paramètre.
Description externe invalide (JSON, XML, ...) signalée par une erreur de compilation
Un projet peut inclure des descriptions externes, par exemple pour des données JSON ou XML.
Le WLangage reconnaît alors nativement les contenus associés.
En version 28, lorsqu'une description externe est invalide, une erreur de compilation le signale.
Tableau associatif avec clé de type variant
Il est possible de créer des tableaux de type Associatif dont la clé est de type Variant.
Compilation dynamique : gestion des structures
La compilation dynamique permet maintenant la création de Structures.
Fonction "Demande mise à jour ui"
La fonction DemandeMiseAJourUI permet de déclencher par programmation l'événement "Demande de mise à jour de l'affichage de la fenêtre".
Cette fonction permet de regrouper facilement les traitements de modification d'UI.
En version 28, cette fonction bénéficie des nouveautés suivantes :
  • elle fonctionne sur les Fenêtres Internes.
  • elle accepte des paramètres qu'elle transmettra à la Fenêtre Interne.
  • elle fonctionne en syntaxe préfixée.
Thread appelant le thread principal : il n'est plus bloqué
La nouvelle fonction ExécuteThreadPrincipalAsynchrone permet d'appeler le thread principal sans attendre que celui-ci réponde.
Les automatismes de procédure de l'éditeur de code proposent également cette nouvelle option sur les procédures.
Log d'exécution
Les Webservices SOAP et REST créés avec WINDEV peuvent générer à la demande des logs d'exécution grâce à la fonction dbgActiveLog.
Ces logs peuvent être visualisés a postériori dans l'environnement à l'aide du nouvel outil ATR.
Mode test 64 bits
Le test (le GO) des Webservices peut s'effectuer en mode 32 Bits ou 64 Bits.
Webservice rest : appel natif des API Rest en WLangage (doc OpenAPI)
Un Webservice Rest peut documenter ses API par l'intermédiaire d'un fichier à la norme OpenAPl.
Ce fichier de documentation peut être importé dans le projet : les API décrites dans ce fichier sont alors reconnues par l'éditeur de code.
L'appel de ces API se fera donc en mode "natif".
Les paramètres nommés, les paramètres facultatifs et obligatoires sont gérés.
La valeur de retour est renvoyée dans un (nouveau) type OpenAPIRéponse qui contient le code de retour et le corps de la réponse.
Les cas particuliers sont gérables par le nouveau type OpenAPIRequête.
Exemple de code pour le Webservice SwaggerPetstore :
Dog is Pet
Dog.id = 745513
Dog.name = "Noopy"
// Add animal
'Swagger Petstore - OpenAPI 3.0'.addPet( Dog )
Soap : vérifications supplémentaires à la génération du Webservice
  • Un Webservice peut renvoyer une classe. Dans ce cas le développeur doit cocher la case "exporter la classe" dans l'assistant de génération du Webservice. Si ce n'est pas le cas, l'assistant signale l'erreur.
  • Lorsque la valeur de retour d'une procédure du Webservice n'est pas typée, le compilateur essaye de déterminer le type de cette valeur de retour. Si ce type n'est pas déterminable, le nouveau "Mode strict" génère une erreur pour inciter le développeur à typer cette valeur.
Divers
  • Lors de l'utilisation de Webservice SOAP, il devient possible de manipuler directement le tableau de structures renvoyé par la procédure du Webservice : inutile de recopier les tableaux !
  • Les requêtes HTTP de type Get peuvent envoyer des données (contenir un payload avec des données).
XML
Import de XML : erreur de compilation si syntaxe invalide
L'éditeur de code permet d'importer un fichier XML afin de l'utiliser de manière native dans le langage.
Lors de l'import d'un fichier XML dans un projet, une erreur de compilation apparaît lorsque le format du fichier n'est pas correct : balise fermante manquante, etc. (Voir nouveauté 134).
POO
Attribut Mapping : retrouvez-le par programmation
En version 28, il devient possible de retrouver par programmation l'attribut Mapping d'un membre de classe.
Nouvel attribut "Note"
Le nouvel attribut Note permet de stocker des informations personnelles au niveau des membres de classe, et de pouvoir y accéder lors de l'exécution.
Les champs, les fenêtres et les pages peuvent implémenter des interfaces (au sens POO)
En POO, une interface est une liste de méthodes virtuelles qui doivent être implémentées.
En version 28, tous les types de champs, les fenêtres, les fenêtres internes, les pages, les pages internes peuvent implémenter des interfaces.
Portée de procédures : entre "public" et "privé", il y a "restreint" (internal)
En version 28, un nouveau type de portée de procédures est disponible en WLangage : il s'agit du niveau Restreint (connu comme Internal dans certains langages).
Dans ce mode Restreint, la procédure est visible uniquement de tous les autres éléments du même ensemble : dans le même Webservice, dans le même composant, etc.
Divers
  • Le mot-clé Ancêtre est appelable dans les méthodes globales.
Python : protégez votre code source; exécution de scripts précompilés
La version 28 supporte maintenant l'exécution de scripts Python précompilés : le code source Python n'a ainsi plus besoin d'être livré.
Votre code source n'est donc pas consultable.
Kotlin
Kotlin est un langage disponible sous Android.
En version 28, Kotlin est supporté en natif par WINDEV Mobile.
Pour plus de détails, consultez Saisir du code Kotlin.
IOT
Modbus
La nouvelle fonction ModbusEnvoieTrameBrute permet d'envoyer un buffer "brut" à un périphérique Modbus.
Cela permet de dialoguer avec des périphériques qui ne respectent pas strictement la norme Modbus.
Clé nullable
En version 28, il devient possible d'indiquer qu'une clé est nullable, c'est-à-dire qu'elle peut contenir la valeur Null.
Null est différent de zéro ou de chaîne vide.
Le tri distingue donc maintenant les valeurs à zéro et les valeurs à Null.
Clé primaire
Une clé primaire est une clé unique non nullable.
La version 28 permet de définir une clé primaire. Par exemple, un identifiant auto est en général une clé primaire.
HExécuteRequêteAsynchrone plus rapide
La fonction WLangage HExécuteRequêteAsynchrone a bénéficié d'une augmentation impressionnante de ses performances.
La vitesse de traitement augmente !
HSurveille : ne bloquez plus l'application
La fonction HSurveille permet à une application d'être avertie lorsqu'une modification effectuée par une autre application se produit sur le fichier de données spécifié.
Une procédure callback est alors appelée.
Pendant que cette procédure s'exécute, l'UI de l'application est bloquée. Si ce traitement est long, cela pénalise l'UX.
En version 28, il est possible d'indiquer que la procédure callback doit s'exécuter dans un thread secondaire et ainsi ne bloquer personne !
Docker et HFSQL : mot de passe par défaut
Afin d'augmenter la sécurité des installations de bases de données à travers un conteneur Docker, le mot de passe de l'administrateur doit obligatoirement être spécifié.
Il est toujours possible d'utiliser un compte administrateur sans mot de passe en le spécifiant explicitement dans la recette Docker.
Simulation de vitesse réseau
La fonction WLangage HSimuleRéseau permet de simuler la vitesse d'un réseau lors des tests d'une application.
La version 28 propose des types de réseaux actuels :
3G, 4G, 5G, ADSL, Fibre, Cloud, vitesse personnalisée.
Le développeur peut ainsi tester la vitesse de l'application en fonction du type de connexion de l'utilisateur final.
Cryptage (chiffrement) de connexion : aes 256, AES 128, AES 192
En version 28, les connexions entre les postes et le serveur de base de données peuvent être cryptées (chiffrées) à la norme AES. Ces normes s'ajoutent aux méthodes de cryptage déjà proposées.
Ajouter une PRIMARY KEY
La nouvelle fonction SQL ADD PRIMARY KEY INDEX permet d'indiquer par programmation qu'une rubrique est clé primaire.
Optimisation des fonctions top, bottom, limit : jusqu'à 12 fois plus rapides
Les fonctions SQL TOP, BOTTOM et LIMIT ont été optimisées en version 28 : le gain peut aller jusqu'à 12 fois plus rapide !
Requête paramétrée : voir le code qui a été exécuté
Un code SQL peut contenir des paramètres passés par programme. La nouvelle propriété CodeSQLExécuté permet de récupérer le code SQL complet qui a été exécuté.
Cela permet par exemple de copier/coller ce code pour vérifier son exécution.
3 Nouvelles fonctions SQL
3 nouvelles fonctions SQL font leur apparition en version 28 :
  • ADD PRIMARY KEY INDEX : Permet d’ajouter une clé primaire sur un fichier existant.
  • Optimize : Réindexe avec les paramètres par défaut (HNDXNORMAL + HNDXFTX + HNDXTRYHOT, densité 80%).
  • Group_concat : Permet de concaténer des chaînes non nulles d’une liste de valeurs (instruction MySQL).
Amélioration de l'UI du centre de contrôle HFSQL pour le cluster
Le Centre de Contrôle HFSQL pour le Cluster HFSQL est une version spécifique.
En version 28, l'UI du Centre de Contrôle a été simplifiée, ce qui en rend l'utilisation plus rapide.
Sélection des dossiers à prendre en compte
HFSQL Spare est une forme de sauvegarde quasi-temps réel d'un serveur.
La version 28 permet de sélectionner les sous-dossiers d'une Base de Données qui seront pris en compte par le Spare.
Cela permet d'exclure des dossiers dont le contenu ne varie pas (archives, fichiers de log, etc.) et ainsi de limiter le volume des données à transférer et à stocker.
Augmenter les performances d'une requête donnée : vérifier que les clés nécessaires ont été définies
Depuis le Centre de Contrôle HFSQL, et en fonction des données réelles du serveur, il est maintenant possible de demander une vérification de l'existence des clés optimales aux performances.
Cette vérification analyse les requêtes et signale les éventuelles clés manquantes pour obtenir les meilleures performances possibles.
Rajouter une clé manquante peut rendre l'exécution d'une requête immédiate.
Tâche d'optimisation automatique
Le message indiquant qu'une tâche d'optimisation automatique de la Base de Données a échoué apparaît maintenant également dans le Centre de Contrôle HFSQL.
Copie de contexte
En utilisant un connecteur natif, lors de la copie de contexte, chaque contexte bénéficie maintenant en option de sa propre connexion au serveur de la base de données tierce.
Cette nouveauté est disponible pour les bases : MS SQL Server, Oracle, MySQL, Sybase, Progress, Informix, DB2, SQLite, MariaDB.
Multilingue
Le programme d'installation des connecteurs natifs est maintenant multilingue : inutile de gérer une DLL par langue !
Connecteur natif SQL Server
Le connecteur natif SQL Server supporte maintenant la couche Microsoft OLE DB Driver for SQL SERVER MSOLEDBSQL 19 et la couche MSODBCSQL19.
Divers
L'import simultané de plusieurs tables dans le Schéma des Données (Analyse) dépose les tables de manière séquentielle.
Il est disponible depuis l'éditeur de code
Petite nouveauté bien pratique, l'éditeur visuel de requêtes SQL est maintenant disponible directement depuis l'éditeur de code lors de la saisie de requêtes SQL.
Code sql généré pour les jointures
L'éditeur graphique de requêtes génère du code SQL.
Historiquement, le code généré pour une jointure était un '='.
En version 28, ce code devient (enfin) un INNER JOIN.
Récupération des informations de communication
Il est désormais possible de connaître certaines informations du log TLS de communication entre 2 systèmes.
Par exemple, connaître la version du protocole TLS utilisé, ou encore la liste des "ciphers" utilisés.
Pour cela, deux nouvelles propriétés font leur apparition en version 28 : VersionSSLChoisie et CipherChoisi.
Pour plus de détails, consultez l'aide des variables httpRequête.
Nouvelle fonction BitcoinAdresseValide
La nouvelle fonction WLangage BitcoinAdresseValide permet de savoir si une adresse bitcoin (adresse BTC qui permet de désigner la destination d'un paiement en Bitcoins) est valide.
Utilisateur final concerné par une erreur
Lorsqu'une erreur de l'application se produit, la télémétrie collecte cette erreur.
Les utilisateurs finaux peuvent accepter l'envoi non anonyme d'informations de télémétrie.
Dans ce cas, il est possible de consulter la liste des utilisateurs ayant rencontré l'erreur.
Cela permet d'envoyer un correctif, d'identifier des cas particuliers, de collecter un mode de reproduction...
Support du drag & drop : Nouvelle fonction PiloteDND
L'éditeur de tests automatiques d'UI supporte maintenant les Drag & Drop (Glisser/Déposer).
L'éditeur permet de les enregistrer et de les rejouer.
Pour plus de détails, consultez l'aide de la fonction PiloteDnD.
Groupe de destinataires
En version 28, il est possible de définir des groupes de destinataires pour les rapports d'erreurs.
Webservice REST : GET, POST, PUT, DELETE
Le robot permet d'envoyer des requêtes HTTP pour vérifier que le serveur répond.
Il est maintenant possible d'utiliser les verbes GET, POST, PUT et DELETE pour envoyer les requêtes HTTP.
Cette nouveauté est très utile pour tester certains Webservices.
Mongo DB : opérations par lots
Il devient possible d'envoyer en un seul appel à la base de données un ensemble d'opérations à effectuer : insertion, modification, ajout, etc.
La nouvelle fonction MongoExécuteLotOpérations et les types de la famille mongoOpération permettent ce traitement par lots.
Minimum version required
  • Version 28
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 03/22/2024

Send a report | Local help