Harmony 2018 [402] : notes de version

harmony, 1420, interface

Divalto harmony - Harmony Power Foundation infinity 2018 Master 402

A partir de la version :

Date

Auteur

Commentaire

2018

17/11/2017

Thierry LORENTZ




Harmony Power Foundation - interface 1420 :

Cher partenaire,

Nous avons le plaisir de vous annoncer la disponibilité de Harmony Power Foundation infinity 2018 Master 402.


Cette version comporte de nombreuses améliorations, notamment pour l'hébergement des applications sur le SAAS Divalto.
Le compilateur Diva permet d'effectuer des contrôles plus stricts des affectations de champs afin de faciliter la migration vers la version 10 de l'ERP.
Vous trouverez le détail de toutes les évolutions dans l'interface complète.

Remarques



  • Le master 402 annule et remplace le master 401.

  • Le client léger Xwpf de la version 2017 est compatible avec un serveur d'applications 2018.

  • Pour la gestion de licences nommées, le service DhsXlanServer doit disposer du droit administrateur.



Cordialement, Thierry Lorentz
Directeur R&D système

Avantages utilisateur




Messagerie avec Exchange Web Services


Un nouveau paramètre des options permet d'indiquer que l'on souhaite utiliser une boîte de dialogue Divalto plutôt que celle du client Outlook pour accéder au carnet d'adresses.

Ensuite, le bouton « Carnet d'adresses » du choix « Envoyer vers » de DivaltoViewer ouvre la boîte de dialogue ci-dessous :





Installation et paramétrage




Installation d'Harmony


L'installateur propose d'installer Harmony et l'ERP sur des lecteurs distincts.




Gestion de 6000 tâches



Harmony permet désormais de gérer jusqu'à 6000 tâches sur un serveur (les versions précédentes étaient limitées à 2000 tâches). Cette amélioration est surtout importante sur un serveur XLAN accueillant un nombre important de sessions ouvertes par des serveurs d'applications.


Impersonnation des services Web d'Harmony


Les services Web peuvent désormais s'exécuter sous un compte utilisateur particulier. Cela permet éventuellement de cloisonner l'exécution de différents services Web sur le même serveur. Il faut pour cela mettre en œuvre :

  • Des URL différentes pour les différents services Web.

  • Un environnement différent pour chacun des services.

  • Un fichier des actions par environnement, qui figurera dans les chemins implicites propres à cet environnement.

  • Un compte d'utilisateur de Windows pour l'exécution des programmes Diva.

Cette dernière fonctionnalité est mise en œuvre par de nouvelles balises dans le fichier DivaltoEnv.txt situé dans le répertoire de la page asmx : la balise <user> permet d'indiquer le compte, la balise
<password> son mot de passe. Exemple :




Paramétrage des tables des serveurs et des chemins


Les tables des chemins et des serveurs peuvent désormais être alimentées par des fichiers paramètres en mode texte. La table des serveurs est alimentée par le fichier DivaltoServer.cfg, celle des chemins par DivaltoPath.cfg. Lorsque ces fichiers sont présents, le fichier fconfig.dhfi n'est plus utilisé. Les deux fichiers doivent alors obligatoirement être présents. Le fichier des chemins peut éventuellement être vide s'il n'y a pas de chemins spécifiques à définir sur le serveur (le chemin Divalto existe de manière implicite).
Ces fichiers peuvent être créés à partir du zoom des serveurs.

Le fichier DivaltoServer.cfg contient :

Le fichier DivaltoPath.cfg contient :

Remarque : Pour la création initiale, le plus simple est d'effectuer un export depuis le zoom des serveurs.



Numéro de version du client léger



Cette boîte de dialogue apparait suite à un clic sur l'icône du coin nord-ouest de la fenêtre, puis en demandant le choix « Version ».
L'Assembly Version est un numéro unique correspondant à l'année et au mois de production, suivis d'un identifiant unique.
Le Path permet de vérifier que l'on affiche bien la version du bon exécutable.
Operating System et .Net Framework indiquent la version du système Windows et celle du Framework .Net.


Numéro de version des exécutables


Depuis la version 2017 d'Harmony, tous les exécutables d'Harmony sont signés. Un clic-droit sur un exécutable à partir de l'explorateur de fichiers de Windows permet d'afficher ses propriétés.
L'onglet « détails » contient ses numéros de version.




xConsole : Licences nommées


Avec la gestion des licences nommées, un utilisateur ne peut pas ouvrir simultanément des sessions sur deux postes différents. Il peut arriver qu'un utilisateur se connecte sur un poste et oublie de se déconnecter : dans ce cas, il ne pourra donc plus se connecter à partir d'un autre poste. Afin de débloquer cette situation, un administrateur d'Harmony peut, à partir de la console d'administration, débloquer l'utilisateur pour lui permettre de se connecter.




Développement

Aide à la migration vers la génération 10


Au passage vers la génération 10 de l'ERP, un certain nombre de champs ont été agrandis. Par exemple le champ Dossier, qui est passé de 3 positions numériques à 20 positions alphanumériques.
De tels changements peuvent entraîner des problèmes à l'exécution, si le développement des surcharges n'a pas été effectué selon les règles de l'art. Par exemple, lorsqu'une donnée interne décrivant un dossier a été réservée par :
1 dossier 3,0
au lieu de
1 dossier >GTFDD.dhsd DOS

L'affectation du champ DOS d'une table de l'ERP dans le champ interne dossier ne génère pas d'erreur au moment de la compilation car cette écriture est admise par le langage Diva. Par contre, à l'exécution du programme, le champ DOS initial sera tronqué et converti en numérique dans la variable dossier
Pour détecter ce genre de problème dès la compilation, nous avons modifié le compilateur Diva pour permettre un contrôle plus strict des affectations.

Principe :

Un fichier paramètre contient les noms des champs dont on veut surveiller l'affectation.
Si le compilateur détecte qu'on affecte dans un tel champ une donnée plus grande, le compilateur génère une erreur.
Si le compilateur a un doute (affectation d'un calcul ou d'une zone flottante), le compilateur génère un warning.

Mise en œuvre

Ce contrôle est demandé par la nouvelle option de compilation T : T+nom du fichier paramètre

Format du fichier paramètre :


Détails
Le compilateur surveille :
•Les champs de n'importe quel Record ou RecordSql.
•Les données déclarées en >dico champ Exemple : 1 mondos >gtfdd.dhsd dos
•Les champs de Structures Diva déclarés en >dico champ
•Ces champs dans des tableaux.
La surveillance s'exerce lors de l'affectation et lors du passage de paramètres avec un paramètre formel de taille fixe.
Le fichier FIELD_X2 livré sur le master 212 de l'ERP contient la liste des champs concernés pour la version X.2.


Editeur de textes de l'atelier de développement Xwin





Désactivation de l'espace virtuel


L'activation de l'espace virtuel permet de cliquer au-delà de la fin effective d'une ligne de source et d'y saisir du texte. Cette fonctionnalité est en particulier utile pour placer directement des commentaires à un point précis en regard du code.
Jusqu'à présent, c'était le seul mode géré par l'éditeur de textes de Xwin. Dorénavant, une option permet de le désactiver (choix Options du menu Outils ; chapitre Editeur de texte : Tabulations
/ Espace virtuel).
Voici les différences majeures entre ces deux modes d'édition :

Espace virtuel activé
  • Flèche à droite tapée en fin de ligne déplace le curseur d'une position vers la droite (donc hors texte effectif).

  • Flèche à gauche tapée en début de ligne ne déplace pas le curseur.

  • Un clic souris effectué au-delà de la fin effective d'une ligne positionne le curseur à l'endroit cliqué.

  • La coloration d'une ligne sélectionnée ou contenant un commentaire ne s'interrompt pas à la fin de la ligne.

Espace virtuel désactivé
  • Flèche à droite tapée en fin de ligne déplace le curseur au début de la ligne suivante.

  • Flèche à gauche tapée en début de ligne déplace le curseur à la fin de la ligne précédente.

  • Un clic souris effectué au-delà de la fin effective d'une ligne positionne le curseur en fin de ligne .

  • La coloration d'une ligne sélectionnée ou contenant un commentaire s'interrompt à la fin de la ligne. De manière générale, il devient donc impossible de placer le curseur au-delà de la fin effective d'une ligne de texte. Toutefois, les mises en retrait (en mode Intelligent ou en mode Bloc) restent actives dans une ligne vierge.




Déplacement du curseur en haut et en bas de l'écran


Les touches Ctrl+Page-Up et Ctrl+Page-Down permettent dorénavant de positionner le curseur respectivement en haut et en bas de l'écran.

Raccourcis clavier pour les commandes


Mettre en commentaire et Rétablir les instructions Les raccourcis Ctrl+K et Ctrl+Maj+K activent dorénavant ces deux commandes.


Surbrillance des éléments courants optionnelle


Une commande du menu Edition ainsi qu'un bouton dans la barre d'outils permettent maintenant de désactiver ou réactiver l'option d'affichage des éléments courants en surbrillance.


Recherche au fur et à mesure de la frappe dans la fenêtre de recherche


Le changement de la chaîne recherchée ou d'une option de recherche relance automatiquement une nouvelle recherche à partir de la position de départ.


Boucle de recherche


En recherche de chaîne depuis la fenêtre de recherche, un temps d'arrêt a lieu dorénavant lorsqu'une boucle complète a été effectuée (avec le message "Le début de la recherche est atteint" affiché en barre d'état).


Compte rendu d'exécution d'une recherche ou d'un remplacement


Des messages sont affichés dorénavant dans la barre d'état lors des recherches / remplacements :

  • En recherche, message rappelant la chaîne recherchée et les options de recherche lorsqu'une occurrence est trouvée. S'il n'existe aucune occurrence de la chaîne recherchée, message spécifiant l'impossibilité de trouver le texte spécifié avec ces options.

  • En remplacement, message spécifiant la chaîne recherchée, la chaîne de remplacement et les options de recherche après le remplacement d'une occurrence. S'il n'existe plus d'occurrence de la chaîne recherchée, message "Aucune autre occurrence".

  • La commande "Remplacer Tout" affiche le nombre total d'occurrences remplacées.




Intégration des fonctions de remplacement à la fenêtre de recherche


La boîte de dialogue qui permettait d'exécuter des remplacements de chaînes est supprimée. De nouveaux éléments (flèche permettant de passer du mode « Recherche » au mode "Remplace", combo de saisie de la chaîne de remplacement et deux boutons de commande) sont ajoutés à la
fenêtre de recherche :



Traitement des milieux de structure


Dans la version actuelle de Xwin, les milieux des structures de contrôle (par exemple, les Case et le Default d'un Switch) n'étaient que partiellement considérés : ils n'étaient pas mis en surbrillance et il n'existait pas de commande permettant de s'y déplacer à partir du début ou de la fin de la structure. C'est le cas dorénavant. Les commandes « Elément de structure suivant » (Ctrl+F7) et « Elément de structure précédent » (Ctrl+Maj+F7) s'ajoutent aux anciennes commandes « Structure Fin » (F7) et « Structure Début » (Maj+F7).


Traitement du profil de licence « Consultation uniquement » dans les objets tableau


Le profil de licence "Consultation uniquement" est maintenant traité dans les objets tableau standard. Dans ce mode :

La fonction XmeListConsultDefault invalide automatiquement les fonctions de création, modification et suppression, ainsi que le Coller et le Couper.
  • L'icône de création n'est plus affiché dans la marge.

  • Le curseur de création d'un arbre n'est plus affiché.




Fonctions Diva pour la signature numérique


Les fonctions préfixées par PrivateKey permettent de signer électroniquement des documents :


Fonction

Commentaire

PrivateKeyCreateFromFile

Création d'une clé privée à partir du fichier spécifié

PrivateKeyCreateToFile

Création d'une clé privée et enregistrement de la clé dans le fichier spécifié

PrivateKeyDestroy

Détruit la clé privée spécifiée

PrivateKeySignFile

Calcule la signature du fichier spécifié à partir d'une clé privée

PrivateKeySignMessage

Calcule la signature du message à partir d'une clé privée



Les fonctions préfixées par PublicKey permettent de vérifier la signature électronique de documents :

Fonction

Commentaire

PublicKeyCreateFromFile

Création d'une clé publique à partir du fichier spécifié

PublicKeyCreateToFile

Création d'une clé publique à partir de la clé privée spécifiée et enregistrement de cette nouvelle clé dans le fichier désiré

PublicKeyDestroy

Détruit la clé publique spécifiée

PublicKeyVerifyFileSignature

Vérifie la signature du fichier spécifié en utilisant la clé publique

PublicKeyVerifyMessageSignature

Vérifie la signature du message spécifié en utilisant la clé publique


Pour le détail de ces fonctions, consultez la documentation de programmation dans Xwin.


Fonctions Diva pour la compression et décompression de fichiers


Les fonctions préfixées par ZipArchive permettent de gérer des archives au format .Zip :


Fonction

Commentaire

ZipArchiveCreate

Création d'une archive au format zip et ajout d'un fichier

ZipArchiveAddFile

Ajoute un fichier dans une archive au format zip

ZipArchiveExtractToDirectory

Extraction de l'ensemble des fichiers de l'archive zip dans un répertoire

ZipArchiveGetLastErrorCode

Récupération du code d'erreur de la dernière fonction en échec

ZipArchiveGetLastErrorMessage

Récupération du message d'erreur de la dernière fonction en échec


Pour le détail de ces fonctions, consultez la documentation de programmation dans Xwin.


RecordSQL pour DB2


Pour certaines requêtes, la syntaxe SQL diffère entre Microsoft SQL server et IBM DB2. Pour assurer la compatibilité de l'ERP avec ces deux fournisseurs de base de données, nous avons ajouté des structures de contrôle dans la description des RecordSQL :

  • #if_DB2 permet d'indiquer la syntaxe DB2.

  • #Default permet d'indiquer la syntaxe Microsoft.

  • #End ferme la structure de contrôle.

La syntaxe retenue est évolutive en cas de prise en compte ultérieure d'autres moteurs de base de données.
Exemple :




Divalto SAAS




Introduction


Divalto propose une offre SAAS permettant d'héberger dans le cloud l'ERP standard, ainsi que les personnalisations ou les verticalisations pour les sites des clients. Dans cette architecture, les serveurs d'applications sont mutualisés pour l'ensemble des utilisateurs de l'offre. Chaque site hébergé dispose de sa propre base de données et de répertoires dédiés pour les données propres au site. Les utilisateurs se connectent aux serveurs à l'aide d'un client léger wpf ou html5.
Cette architecture a demandé quelques évolutions d'Harmony, notamment pour assurer l'étanchéité absolue entre les différents sites hébergés. Ainsi, les serveurs de données disposent de services XLAN s'exécutant sur un compte de service propre à chaque site client. Pour assurer une totale indépendance, chaque service XLAN dispose de sa propre table des tâches, des serveurs, des licences
; les services Telnet disposent d'un fichier paramètre par site ; les services Web s'impersonnent avec un compte de services par site et environnement ; la propagation des paramètres s'effectue par site ou par groupe d'utilisateurs d'un site ; les services Search s'exécutent par environnement d'un site ; les fichiers de log sont stockés par site.


Gestion des licences nommées par Divalto Licenses Management Tool (DLMT)


La gestion des licences nommées dans le cloud diffère légèrement de la gestion standard. En effet, un site dans le cloud Divalto est référencé en tant que tel au niveau de l'ADV Divalto. DLMT, après la connexion, affiche la boîte de dialogue suivante :

Il s'agit d'une boîte permettant d'authentifier l'administrateur des utilisateurs de l'ERP dans le Cloud Divalto. L'identifiant SAAS, ainsi que son mot de passe, sont fournis par l'ADV Divalto.
L'administrateur a ensuite la possibilité de modifier son mot de passe. Il ne s'agit pas d'un utilisateur de l'ERP et il n'existe pas dans l'annuaire LDAP, il permet simplement l'accès à l'utilisation de DLMT pour la gestion des licences et des comptes du site dans le cloud.
DLMT se connecte ensuite au serveur du cloud pour la gestion des utilisateurs et des licences nommées. L'affectation des profils des utilisateurs est rigoureusement identique à celle de DLMT standard, en privilégiant néanmoins la gestion des utilisateurs à partir de l'annuaire LDAP du site dans le cloud.


Gestion des utilisateurs


Ici, nous sommes confrontés à la problématique de la poule et de l'œuf. En effet, pour la gestion des utilisateurs de l'ERP, il est nécessaire de créer ceux-ci dans l'ERP, mais pour qu'ils puissent se connecter, il est nécessaire de créer ceux-ci dans l'annuaire LDAP du Cloud. C'est pourquoi cette opération devra s'effectuer en plusieurs étapes. Ces étapes doivent impérativement être exécutées dans l'ordre suivant :

  • Création d'un utilisateur d'administration de l'ERP dans l'annuaire LDAP.

Cet utilisateur devra être un membre du groupe MODLDAP_admin du site dans le cloud. Le groupe MODLDAP_admin existe dans l'annuaire, ainsi que le modèle correspondant dans l'ERP.

Pour cela, dans la gestion des utilisateurs de l'annuaire, LDAP, il convient d'ajouter un nouvel utilisateur et de l'associer au groupe MODLDAP_admin, ainsi qu'au groupe correspondant à l'environnement.

  • Association de cet utilisateur à un profil de licences ADMINISTRATEUR afin qu'il puisse exécuter toutes les fonctionnalités de l'ERP.

  • Importation des associations de profil de licences et validation de cette association. Ceci a pour effet de créer un fichier de licences valide pour le site concerné. Cette opération doit être antérieure à la synchronisation des utilisateurs avec l'ERP qui nécessite des licences.



Il faut valider le message d'avertissement ci-dessus, puis valider la fenêtre d'association des profils de licences.
Le message « Les licences ont été installées avec succès » doit ensuite apparaître.

  • Synchronisation de cet utilisateur avec l'ERP, afin de pouvoir exécuter l'ERP Divalto.

  • Exécution de l'ERP avec cet utilisateur afin de créer les modèles des autres utilisateurs de l'ERP.

  • Création des groupes d'utilisateurs dans l'annuaire LDAP par DLMT correspondant aux modèles de l'ERP (le nom du modèle correspond au nom du groupe dans l'annuaire LDAP).

  • Création de tous les autres utilisateurs par DLMT dans l'annuaire LDAP du site et association de ces utilisateurs aux groupes correspondants.

  • Association des utilisateurs aux profils de licences.

  • Synchronisation des utilisateurs de l'annuaire LDAP avec l'ERP.


Tous les utilisateurs pourront alors se connecter à l'ERP par un client léger WPF ou Html5.


Installation d'un client léger WPF


L'installateur du client léger propose une option d'installation en mode Cloud.

Ceci a pour effet de créer automatiquement un profil de connexion permettant de se connecter aux serveurs d'applications du Cloud Divalto, et qu'il faudra choisir dans les options avancées de la boite de connexion.

Ce client léger n'est pas une version spécifique au cloud, il est universel et permet également de se connecter à un serveur qui n'est pas dans le Cloud Divalto simplement en changeant de profil de connexion.


Complément dans les environnements pour le cloud


Pour la gestion d'Harmony dans le cloud, nous avons ajouté plusieurs paramètres dans les environnements.

Port du serveur Search

xSearch et les applications Diva dialoguent avec le service Divalto Power Search par les sockets TCP/IP. Il est désormais possible de paramétrer le port de dialogue dans l'environnement.

Serveur de licences

Nom du serveur de licences pour le site.

Port du serveur de licences

Port TCP/IP pour accéder au serveur de licences.

Serveur log

Chemin de stockage des fichiers log.

. HostServerName

Nom du serveur sur lequel se trouve le serveur de données.