Harmony 2018 [403] : notes de version

harmony, 1420, interface

Divalto harmony - Harmony Power Foundation infinity 2018 Master 403

 

A partir de la version :

Date

Auteur

Commentaire

2018

22/06/2018

Michel GRISSMER




Harmony Power Foundation - interface 1460 :

Cher partenaire,
Nous avons le plaisir de vous annoncer la disponibilité de Harmony Power Foundation infinity 2018 Master 403.
Cette version comporte des améliorations et des évolutions.
Vous trouverez le détail de toutes les évolutions dans l'interface complète.
Remarques :

NB : Ce runtime « version 403 » annule et remplace la version 402.
Pour ce runtime, les prérequis système ont évolués : Harmony requiert désormais le redistribuable « Visual C++ 2017 ».
Attention, l'installation du redistribuable « Visual C++ 2017
» doit être effectuée avant de pouvoir installer les composants de Harmony 2018 403. Des blocages techniques empêchent actuellement l'intégration de ce composant aux programmes d'installations de Harmony.
L'installeur de ce composant redistribuable est livré avec Harmony 2018 403.
Les systèmes d'exploitation doivent être à jour avec le framework Microsoft .Net en version 4.6.2 ou supérieure (ce point est inchangé depuis la version 402)
Le client léger Xwpf des versions antérieures n'est pas
compatible et doit être mis à jour en version 403.
NB : Certains outils d'installation de Harmony sont doublés pour gérer au mieux les architectures 32 et 64 bits.


Cordialement, Michel Grissmer
Directeur R&D système








Avantages utilisateur




Raccourcis clavier pour changer l'état d'un volet


Alt+Flèche Gauche et Alt+Flèche Droite permettent respectivement d'ouvrir et refermer un volet (sauf volet invisible et page escamotable en cours de consultation ou de saisie).


Réinitialisation des paramètres utilisateur d'un tableau


Le menu surgissant, ouvert au clic sur la roue dentée affichée en haut et à droite d'un objet tableau, présente le premier choix "Réinitialiser", qui permet de retrouver les paramètres d'affichage initiaux du tableau concerné.


Cloud et gestion du mot de passe


Pour les utilisateurs du Cloud Divalto, l'écran de connexion Wpf (client léger) et Html5 permet de faire son changement de mot passe sans l'intervention d'un administrateur.
D'autre part, l'écran gère aussi les expirations des mots de passe et invite l'utilisateur à renouveler son mot de passe dans ce cas.

Client léger et Proxy


Le client Wpf intègre la gestion de la configuration du proxy pour le mode de transport « webservice
».


Client Html5


Le client Html5 automatise le chargement des profils de connexion, et automatise la sélection du profil de connexion quand il n'y a qu'un seul profil défini, cela afin de simplifier la cinématique de connexion.
Le client Html5 indique mieux les erreurs de connexion (et ne renvoie plus simplement sur l'écran de login).


Interface d'accueil Html5


L'interface d'accueil est enrichie d'un bouton "se déconnecter" pour fermer la session de l'utilisateur et donc aussi libérer les ressources associées.


Interface Google GSuite


Pour permettre l'interfaçage avec la suite bureautique en ligne Google GSuite, Harmony intègre des évolutions techniques dédiées à l'interface avec GSuite. Il est possible de piloter les mails et les agendas GSuite.
La configuration des interfaces de messagerie (via l'outil DivaltoViewer) intègre le paramétrage de la liaison Google GSuite.
L'accès aux données GSuite est sécurisé par un compte d'administration GSuite qui peut être dédié à infinity.


Cloud et Impressions


Pour répondre aux besoins du mode Cloud, nous avons développé un agent local dédié aux impressions. Ainsi sur chaque site, les utilisateurs peuvent demander des impressions et un poste local est ensuite dédié à la redirection de ces demandes d'impressions vers les imprimantes disponibles sur le site.

Avantages développeurs




Assistance au codage dans un dictionnaire Sql


L'aide à la saisie dans Xwin est étendue aux dictionnaires de RecordSql et aux dictionnaires de jointures SQL.
Citons en particulier :
La navigation (browse) dans les RecordSql.
L'affichage des composants du RecordSql / Join courant dans la combo de navigation de gauche de l'éditeur de textes et l'affichage de la liste des Join du dictionnaire de jointures SQL dans la combo de navigation de droite.
La mise en surbrillance et le positionnement sur les éléments d'un RecordSql ou d'une jointure du dictionnaire de jointures.
Les mises en retrait automatiques adaptées au contenu de ces dictionnaires. De nombreux cas de proposition et de génération automatique de code.

Pour plus de détails à ce sujet, consultez les rubriques "Assistance au codage dans un dictionnaire SQL", "Parcourir les composants d'un RecordSql ou d'une Jointure SQL", "Combos de navigation", "Mises en surbrillance dans un dictionnaire de RecordSql ou de Jointures SQL" de la documentation de l'éditeur de textes de Xwin.
De plus :
Dans la boîte de création d'un nouveau source, les nouveaux choix "Dictionnaire de RecordSql" pour créer un nouveau dictionnaire de RecordSql (extension .dhsq) et "Dictionnaire de Jointures SQL" pour créer un nouveau dictionnaire de Jointures SQL (extension .dhsj).
Au menu contextuel de la fenêtre Projet, le nouveau choix permettant de créer un dictionnaire SQL de surcharge.
Au menu contextuel de l'éditeur de textes, le nouveau choix permettant de créer un RecordSql (ou un Join du dictionnaire de jointures) de surcharge.
Appelé depuis un dictionnaire de base (ou de niveau inférieur puisque la surcharge est possible à plusieurs niveaux), ce choix génère une amorce de RecordSql / Join à la fin du source de surcharge. Le source de départ doit comporter l'attribut OverWrittenBy dans sa balise d'en-tête
<DictionarySql / DictionaryJoinSql>. En cas de surcharge à plusieurs niveaux, le source où a lieu la génération est le dernier source de surcharge "en ligne". La génération n'est effective que si le RecordSql / Join surchargé n'existe pas déjà dans le source d'arrivée.




Aide à la saisie derrière un nom de dictionnaire


Derrière le nom d'un dictionnaire de données, il est maintenant possible d'obtenir la liste des fichiers,
des enregistrements ou des données du dictionnaire (selon le contexte). De même, derrière le nom d'un dictionnaire de RecordSql, on peut obtenir la liste des noms de RecordSql qui y sont définis.


RecordSql




Historique des requêtes exécutées


Dans le fichier connexions.xml, une nouvelle option est disponible au niveau de chaque connexion (attention, la casse est significative) :
"<ecraserLog>true/false :
true (valeur actuelle par défaut) : ne conserver que la dernière requête exécutée. false : conserver tout l'historique des requêtes exécutées.


Mots réservés du langage SQL


Il est dorénavant autorisé d'utiliser des mots réservés du langage SQL comme noms de tables ou de champs (actuellement, le champ Period posait problème sous DB2 suite à la MAJ du système IBM en version V7R3).


Nouvelles fonctions


GetColumnValue : Permet de récupérer la valeur d'un champ. SetColumnValue : Permet de modifier la valeur d'un champ.
GetInfo - RSQL_ALL_WHERE_BEGIN / RSQL_ALL_WHERE_NEXT : Permet de parcourir toutes les conditions Where (y compris celles ayant des paramètres).
GetInfo - RSQL_COMMENT : Fournit le commentaire du RecordSql.
Méthodes AddAndCondition et AddOrCondition dans un Where ou un Having : Permettent de concaténer à une chaîne de caractères le nom de la condition Where ou Having (AddOrCondition ajoute aussi l'opérateur OR), afin d'éviter le risque d'erreur de la fonction AddCondition.




XZoom7


Il est maintenant possible de mettre des onglets dans la zone de sélection de la page du mode liste. Voir la rubrique "Onglets dans la zone de sélection" de la documentation consacré au zoom SQL.

XmeListGetUserOrderedColumns


Cette nouvelle fonction est similaire à la fonction existante XmeListGetUserColumns (lecture de la liste des numéros des colonnes d'un tableau affichées par l'utilisateur, délivrée dans l'ordre défini dans Xwin) mais elle délivre la liste dans l'ordre d'affichage demandé par l'utilisateur. Elle peut être utilisée par exemple pour exporter le contenu d'un tableau en respectant l'ordre des colonnes demandé par l'utilisateur. Pour plus de détails, se référer à la documentation de Xwin.


Nouvelles options concernant l'affichage des volets


La fonction XmeSetPageOptions comporte trois nouvelles options sur le volet de la page :
<IsPaneInvisible>.
Cette clé permet de spécifier que la page escamotable doit rester fermée et que l'icône du volet doit rester invisible. Il est donc impossible à l'utilisateur d'ouvrir le volet. La page extensible associée occupe toute la place disponible (comme si le volet n'existait pas).
<IsPaneCollapsed>.
Cette clé permet de spécifier que la page escamotable doit être fermée lorsqu'elle est affichée pour la 1ère fois par le programme. L'utilisateur peut ouvrir le volet.
<PaneTabOffset>NN.
Cette clé permet de modifier la position verticale de l'icône du volet. La valeur associée à la clé spécifie un offset vertical (exprimé en orteil) qui sera ajouté à la position standard de l'icône.




XmeInfoPage


Cette fonction monte dorénavant le flag Opara9 pour signaler que la page contient un objet "Grille".


Objet Graphe




Annotations


Les annotations permettent d'ajouter au graphe des informations de contexte (indépendantes des données - points, séries) sous forme de :
Bandes horizontales (périodes de temps par exemple) ou verticales (intervalles de validité d'une mesure par exemple).
Lignes horizontales ou verticales (valeurs seuil par exemple).
Points particuliers ayant pour but de mettre en valeur des événements particuliers (indépendants de toute série).




Graphiques scindés (superposés)


Cette nouvelle fonctionnalité permet de "synchroniser" horizontalement des graphiques cartésiens afin que les graduations de leurs axes horizontaux, si elles sont homogènes, soient parfaitement alignées.
Jusqu'à présent, il était possible d'aligner deux graphes mais, ceux-ci consistant en deux composants distinct, les largeurs de légende pouvaient entraîner un non alignement des axes.
Il devient désormais possible de créer, au sein d'un même objet Graphe Xwin, deux graphiques cartésiens superposés. La mécanique interne du composant assure l'alignement des axes horizontaux, permettant une exploitation visuelle des graphiques superposés.
NOTE : Les annotations et les graphes superposés sont exclusivement réservés aux graphiques de type cartésien. L'utilisation de ces options/fonctions avec des graphes de type Pie (camembert) ou polaire/radar sera ignorée par le composant.


Agenda




Affichage en vue regroupée par ressources


Précédemment, la largeur des en-têtes des lignes de ressource (resourceHeaders) était fixe, ce qui entraînait soit un perte d'espace (libellés courts) soit une troncature des libellés (plus génant). Le fonctionnement en vue regroupée a été retravaillé pour que cette largeur soit calculée automatiquement (par défaut) par le composant (de manière transparente pour le développeur).


Largeur forcée des en-têtes de ligne en vue regroupée par ressources


Une option a été ajoutée pour forcer la largeur des en-têtes des lignes de ressource en vue regroupée par ressources.


Accès annuaire Active Directory


La fonction « LDAPRequest » (DhSynchroLDAP.dll) a été étendue pour permettre d'interroger l'annuaire Active Directory avec plus de filtres et obtenir plus de données de résultat (notamment des
attributs complémentaires).


Echanges de fichiers FTP et SFTP


Harmony intègre de nouvelles méthodes afin de permettre le pilotage d'échanges de fichiers via les protocoles FTP et SFTP.
La documentation a été complétée avec ces méthodes (voir livre "Fonction FTP / SFTP"). Un nouveau module « yftp » simplifie l'utilisation de ces méthodes (FtpCreateDirectory, FtpDeleteDirectory, FtpRenameDirectory, FtpDeleteFile, FtpRenameFile, FtpUploadFile, FtpDownloadFile).




Utilisation de services Web externes


Pour faciliter le dialogue entre infinity et des services Web externes, Harmony a été étendu avec des objets et méthodes dédiées à la communication HTTP/HTTPS (voir livre "Fonctions WebRequest").
L'object « WebRequest » permet de piloter ces échanges. Cela permet alors la communication avec des services Web au format SOAP ou REST (voir la méthode « WebRequestNew »).
L'object « WebRequest » gère l'utilisation de Proxy et l'authentification au Proxy.
Pour faciliter l'exploitation des résultats des appels aux services Web externes, Harmony intègre également des méthodes dédiées au décodage de données au format JSON (voir livre "Fonctions JSON").




Autres évolutions


Une nouvelle méthode « SetExitCode » : permet de positionner le code de retour renvoyé par le programme, notamment pour pouvoir tester ces codes d'erreurs dans des scripts du shell Windows (concerne xrtDiva.exe et xWpf.exe).
Une nouvelle méthode « VerifyComboValue » permet d'automatiser la vérification de la valeur d'une combo en se basant sur le dictionnaire.
Les noms des objets (tables, vues et colonnes) dans les requêtes SQL envoyées au serveur de base de données sont automatiquement « banalisés » (après recompilation des RecordSql avec le runtime 403). Cela permet donc d'utiliser des noms réservés par SQL Server ou DB2 pour les tables et colonnes de infinity.

Evolutions Harmony




XLAN


XLAN gère la lecture et l'écriture des colonnes de type blob (hors DB2).
XLAN banalise automatiquement les noms des objets (tables, vues et colonnes) dans les accès aux données via les accès par HREAD, etc…


XRTDIVA


Diverses optimisations ont été effectuées pour accélérer les chargements des programmes :
optimisation du chargement des masques en mettant la feuille de style en mémoire commune optimisation de l'édition de liens
nouvelle gestion du cache

NB : dans le cadre d'un poste de développement, les caches précités doivent pouvoir être invalidés. L'outil xDivaltoRestart intègre donc un argument « -flush » pour effectuer cette opération à chaud. Le pool de tâches peut être paramétré pour pré-initialiser des connections SQL Server. (Voir les clés registre "PoolNbSqlConnections" et "PoolSqlConnectionName").



Installation et paramétrage Harmony




Utilitaire de génération des fichiers de configuration d'Harmony


La version précédente permettait d'alimenter les tables des chemins et des serveurs par des fichiers paramètres en mode texte (DivaltoServer.cfg, DivaltoPath.cfg), plutôt que par le fichier séquentiel- indexé fconfig.dhfi. De plus, ces fichiers pouvaient (et peuvent encore) être créés à partir du zoom des serveurs (fonction d'export).
L'utilitaire xExportFConfig.exe permet maintenant de générer ces deux fichiers lorsqu'on n'arrive plus à lancer Harmony.

Nouvelle méthode de sauvegarde des paramètres de l'utilisateur et nouvel algorithme de récupération des paramètres « Tableau » en cas d'évolution de version


Un utilisateur peut à tout moment personnaliser l'apparence à l'écran d'objets affichés par les applications tels que les Tableaux, les Volets, les Accordéons, les Grilles ou les Agendas. Par exemple, pour un tableau, les facteurs sur lesquels l'utilisateur peut agir sont : la position, la visibilité et la largeur des colonnes, la hauteur des lignes et des en-têtes de colonne.
Harmony sauvegarde l'état courant des objets personnalisés, de telle manière que l'utilisateur retrouve cet état à la prochaine ouverture de l'application. Les informations qui définissent cet état étaient actuellement stockées sur le poste client, dans la section de la base de registres associée à l'utilisateur (HKEY_CURRENT_USER) ou dans une zone de stockage propre au navigateur Web pour un client Html5. Cette méthode, choisie initialement pour sa simplicité, présente l'inconvénient d'être liée au poste de travail : Si un utilisateur paramètre l'affichage d'un tableau sur un poste, il ne retrouve pas son paramétrage s'il est amené à changer de poste.
De plus, à l'heure actuelle, l'évolution de version d'un tableau s'avère problématique quant à la récupération des personnalisations faites par l'utilisateur sur l'ancienne version (et ce, malgré l'introduction récente de la propriété « Version du tableau » dans Xwin).
Sur ces points, la nouvelle version d'Harmony apporte d'importantes améliorations pour l'utilisateur :
Un nouvel algorithme est appliqué en cas d'évolution de version, qui évite autant que faire se peut la perte ou la corruption du paramétrage actuel de l'utilisateur.
Dorénavant (widget agenda dans l'IA exclus), les informations définissant l'état des objets sont stockées sur le serveur, dans une base de données SQLite. Ainsi, un utilisateur qui change de poste de travail retrouvera son dernier paramétrage, même opéré depuis un autre poste.
Une « moulinette » permet de transférer les informations sur les tableaux actuellement placées dans la base de registres vers la base SQLite.
Des explications détaillées, comprenant en particulier des conseils IMPORTANTS d'utilisation de la moulinette, sont données à la rubrique "Sauvegarde des paramètres de l'utilisateur" du manuel de référence d'Harmony.
Remarque à l'attention des développeurs : La propriété de l'objet Tableau « Numéro de version », récemment introduite dans Xwin, est abandonnée.


Import et export de données avec XPSQL


L'outil d'import/export des données intègre la possibilité d'indiquer des tables à ignorer lors de l'import de données via le fichier excludeimport.txt (et excludeimportu.txt dans le cas du Cloud).
Les Imports/exports de tables contenant des champs de type blob sont également traités. (Un fichier nomTable.blob est créé lors de l'export). Ce fichier n'est traité que si l'option "Avec effacement" est active.
Les fichiers de données peuvent être compressés (fichier au format DHZI).

DLMT (Divalto Licences Management Tool)


En tant que Distributeur, vous pouvez utiliser votre propre numéro de site / code d'accès pour tester les licences v10.
Il est possible de paramétrer les informations de connections à un Proxy.
Pour faciliter les saisies, des listes avec des cases à cocher permettent des gérer rapidement les options renseignées dans l'annuaire Active Directory.
Si un seul groupe de profils / profil / option est disponible, il est directement sélectionné et l'utilisateur est directement en saisie sur la colonne suivante.
Le champ "compte activé" indique si le compte est bloqué dans l'annuaire Active Directory (par exemple suite à trop de tentative d'ouverture de session) et permet aussi de le déverrouiller.
Les fichiers logs sont maintenant stockés dans le dossier "%temp%/dlmt". Toute erreur est également inscrite dans le journal des évènements Windows.





Divers


L'Interface d'Accueil a été améliorée pour fluidifier la recherche dans les choix du menu. Génération d'évènements (CRM).
En mode RTF, les sauts de lignes sont doublés dans le corps du message récupéré depuis Outlook. Pour résoudre ce problème, la nouvelle option "Réduire les sauts de lignes dans le corps du message" a été ajoutée dans les paramètres du connecteur Divalto pour Outlook.