Harmony 2016 [400] : notes de version

interface 1341, harmony power foundation, infinity, izy, 2016

Solution

Module

Version

Service Pack

Date

auteur

harmony



infinity et izy 7



24/11/2016

Thierry LORENTZ


Harmony Power Foundation 2016
Une nouvelle plateforme unique pour toutes les versions 7 des ERP Divalto infinity et Divalto izy.

Aperçu des possibilités offertes par cette version

L'assistant de personnalisation des impressions pour les utilisateurs De nouveaux objets graphiques compatibles avec le client léger Html Un objet graphique Gantt
Le zoom liste avec un entête permettant le tri des colonnes L'export des impressions vers Excel
Des améliorations de l'IA
Un connecteur Outlook pour le client léger Html L'accès à la console d'administration pour tous les sites L'objet tableau dans les masques d'impression
L'exécution d'un programme Diva dans un navigateur depuis une URL
Attention : elle nécessite le framework .net 4.6.2.
La version de démonstration pour le partenaire nécessite une demande de licence.

Email d'origine

Interface #1341



Plateforme Harmony unique

La version 2016 d'Harmony Power Foundation est la plateforme unique pour toutes les versions 7 et suivantes des ERP infinity et izy de Divalto.
En effet, cette version d'Harmony permet l'exécution des applications de toutes les versions 7 et suivantes, ainsi que le développement d'applications pour toutes ces versions cible.
Nous avons donc décidé de mettre à disposition un master unique d'Harmony pour toutes ces versions. Les versions antérieures du runtime ne sont donc plus maintenues et les sites équipés de ces versions devront, en cas de nécessité, évoluer vers ce master. La version 2016 du master porte le numéro 400. Le master est téléchargeable à partir du site MyDivalto.
Le master 211 de la version X.1 de l'ERP contient également le master 400. L'installateur d'Harmony du master 211 sait installer Harmony, ainsi que l'ERP, comme pour les versions précédentes du master.
Le master 400 ne contient que Harmony. Il pourra être téléchargé pour effectuer des mises à jour de sites existants en version 7.

Avantages utilisateur



Assistant de personnalisation des masques d'impression


L'assistant permet à un utilisateur de personnaliser lui-même ses masques d'impression. Il dispose pour cela d'un éditeur puissant et simple d'usage lui permettant :
De masquer ou d'afficher des objets,
De déplacer ou de redimensionner des objets, De changer la police d'un objet,
De modifier la valeur d'un objet texte,
De valider ou d'invalider l'impression de certains blocs, De masquer des colonnes d'un tableau,
De redimensionner ou déplacer les colonnes d'un tableau.

L'impression de la maquette lui permet immédiatement de vérifier la mise en page des modifications apportées. Par exemple ici, la désactivation du cartouche d'entête.


L'utilisateur ne peut pas ajouter d'objets qui n'ont pas été prévus dans le masque d'origine par le designer. Celui-ci peut néanmoins ajouter des objets dans le masque modèle qui ne s'imprimeront que si l'utilisateur active leur impression dans l'assistant de personnalisation.

Report des personnalisations vers une nouvelle version.

Le choix « Reporter vos personnalisations sur la nouvelle version du masque » de l'assistant de personnalisation permet à un utilisateur, en cas de mise à jour du masque original ou de sa surcharge, de bénéficier des modifications du masque original tout en conservant ses personnalisations. Certaines personnalisations ne pourront cependant pas être reportées, car leur report pourrait entrainer une incompatibilité avec la nouvelle version du masque. Un journal détaillé des opérations indique les reports réussis et ceux qu'il sera nécessaire de refaire. Un choix permet de revenir à la version précédente du masque.

Objets Graphes


Une panoplie très riche d'objets graphiques, compatibles à la fois avec le client léger Wpf et le client Html.

Objet Gantt


Un objet Gantt notamment mis en œuvre dans la gestion à l'affaire.



Zonage pour l'impression de tableaux


L'activation de l'option zonage d'un tableau d'un masque d'impression permet très simplement des impressions avec zonage.

Zoom liste avec entête


Le zoom liste affiche une entête de colonne. Il permet également de trier les informations par un simple clic sur l'entête de la colonne.


Par défaut, le texte de l'entête de la colonne est le nom du champ dans la table. Il peut être paramétré par la balise <L> dans le paramétrage du zoom liste de la table des zooms.

Le texte de la balise <L> est importé dans le dictionnaire de traduction par le choix d'extraction des libellés à traduire de Xwin. Si la balise <L> est absente, l'entête de colonne ne contient pas de libellé. L'utilisateur peut néanmoins trier le résultat en cliquant sur l'entête.
Rappel : Les champs multilingues doivent être précédés de la balise <T>.

Interface d'accueil


Plusieurs améliorations dans l'interface d'accueil :

Recherche dans les widgets


Le nombre croissant de widgets standard fournis par l'ERP nous a amené à ajouter une fonction de recherche dans la gestion des widgets de l'IA.

Navigation au clavier


La navigation au clavier est désormais complète. Toutes les fonctionnalités de l'IA sont accessibles au clavier.

Actualiser tous les widgets


Le raccourci F5 permet d'actualiser tous les widgets de l'espace d'accueil. Il apparait également dans le piano.

Actualiser l'agenda


Un bouton permet d'actualiser l'agenda. Il apparait dans le coin sud-est du widget, à côté de celui permettant de le maximiser.

Sauvegarde des paramètres des tableaux par version


Lorsque les développeurs ajoutaient ou supprimaient des colonnes d'un tableau, le paramétrage des utilisateurs (largeur des colonnes, positions des colonnes) était perdu.
L'objet tableau comporte dorénavant un numéro de version.
Si les nouvelles colonnes sont ajoutées à la fin (ce qui est recommandé, en particulier pour les surcharges), il n'est pas nécessaire de faire évoluer la version du tableau, ainsi les utilisateurs ne perdent plus leur paramétrage lors de mises à jour.

Perte de connexion avec le serveur en client léger HTML


Lors d'une perte de connexion avec le serveur http, le programme Diva était arrêté. Désormais, la boite suivante apparait, puis disparait lorsque la connexion est rétablie.

Export des impressions vers Excel à partir de DivaltoViewer



Lors de l'impression, DivaltoViewer conserve les numéros des blocs imprimés. L'export Excel permet de choisir les blocs que l'on souhaite exporter vers Excel.

Raccourci pour la recherche par Divalto Power Search dans le zoom


Le zoom permet d'effectuer une recherche en utilisant Divalto Power Search. Cette fonctionnalité est souvent méconnue des utilisateurs. Nous avons donc ajouté ce choix dans le menu « Edition » du zoom.
Il n'est actif que lorsque le paramétrage de Divalto Power Search est effectué.

Connecteur Outlook pour un client léger Html.


Nous avons développé un connecteur pour Outlook gérant l'interface avec l'ERP sans qu'Harmony soit installé sur le poste client, permettant ainsi une utilisation avec un client léger Html. Le connecteur dialogue avec le serveur par un service Web. Les trois fonctionnalités offertes par le connecteur Outlook classique sont disponibles :
L'affichage de la fiche tiers
La génération d'un événement L'accès aux contacts.

Installation et paramétrage



xDivaltoMajini


Lorsque xDivaltoMajini n'est pas exécuté en mode administrateur et que l'on souhaite consulter ou modifier les paramètres de la base de registre globale à l'ordinateur, le message suivant apparait :
Ceci permet de visualiser ou de modifier les paramètres effectifs, et non une copie de ceux-ci.

Environnement


La gestion des environnements est prise en compte par les services Web.
Pour cela, il convient de créer une page asmx d'accueil pour chaque environnement :
Dupliquer le répertoire C:\divalto\Internet\WebServiceDiva dans un autre répertoire du serveur IIS,
Créer une application pointant sur ce répertoire,
Créer un fichier DivaltoEnv.txt par répertoire qui contient la balise <ENV> au format Hmp.
Exemple : <env>PROD
Les services résidents travaillent pour un environnement donné lors de leur chargement initial.

Mode de connexion avec un compte Windows


Nous avons ajouté un nouveau mode de connexion dans les options avancées de la boite de connexion. L'option « Saisir un compte Windows » permet de saisir un compte Windows pour la connexion à l'ERP, Ce compte est utilisé également pour l'impersonnation Windows. Cela permet en particulier à plusieurs utilisateurs de se connecter à l'ERP avec leur propre compte Windows depuis une session Windows ouverte avec un autre compte. Ce mode de connexion est équivalent à la connexion avec un client léger Html.


Remarque : ce mode de connexion n'est opérationnel qu'avec un profil de connexion par les sockets ou les services Web. Il n'est pas pris en compte pour un profil de connexion local.

Page d'accueil de l'installation du client léger


La page d'accueil de l'installation des clients léger est actualisée.



Annuaire LDAP


Un nouveau choix de la console LDAP permet de répercuter les modifications apportées à un modèle à tous les utilisateurs ayant été importés avec ce modèle. Cela concerne les confidentialités et les applications du modèle.

Propagation des paramètres par groupe d'utilisateurs


DivaltoViewer, xDivaltoMajini et xDivaltoPrinters permettent de propager des modifications de paramètres pour un groupe d'utilisateurs. Le nom du groupe était obligatoirement préfixé par divalto_. Cette contrainte tombe avec la version 2016.


Cette boite de dialogue permet de saisir les groupes vers lesquels l'on souhaite propager les modifications de paramétrage.

La propagation demande une confirmation avec l'affichage des groupes concernés.

Paramétrage pour l'Export Excel dans DivaltoViewer


Un nouveau choix permet de paramétrer l'export tableur depuis les impressions.
Générer les données pour l'export tableur dans le dhvw.
Par défaut, cette option est validée.
Attention, si vous décochez cette case, les états imprimés ultérieurement ne pourront plus être exportés (voir la rubrique Export tableur des états imprimés).
Afin d'accélérer les impressions, on pourra notamment invalider la génération sur un poste qui produit de nombreux états non exportés (en particulier s'ils contiennent de gros fichiers .rtf).
Ouvrir le fichier à la fin de l'export.
Par défaut, cette option est validée.
Si vous décochez cette case, le logiciel tableur ne sera pas automatiquement exécuté à la fin de l'export. Il est évidemment conseillé d'invalider cette option sur un poste produisant des exports tableur mais ne disposant pas de ce logiciel.

xConsole.dhop


La console d'administration xConsole.dhop est incluse en standard dans la version 2016. Elle est librement accessible par l'utilisateur ROOT. Pour les autres utilisateurs, elle nécessite le droit HCO. La console permet notamment de consulter les fichiers ferror.log et fevent.log avec une mise en forme plus facile à lire que le fichier dans le bloc-notes.

Table des licences


La valeur par défaut de Nblicences est passée à 3000.

Traduction de masques de surcharge dans une langue étrangère


La création de nouveaux masques spécifiques nécessitait de traduire tous les libellés de ces masques. Nous avons ajouté un nouveau choix dans xTranslate permettant d'injecter dans le source d'un dictionnaire spécifique des liens vers un dictionnaire objet traduit, et ainsi de bénéficier des termes déjà traduits dans un dictionnaire standard.
Pour chaque texte du dictionnaire spécifique, xTranslate cherche si ce texte existe dans le dictionnaire de référence.
Utiliser les traductions d'autres dictionnaires objets

Connecteur Outlook pour un client léger Html


Nous avons développé un connecteur pour Outlook gérant l'interface avec l'ERP, sans qu'Harmony soit installé sur le poste client.
Sur le poste client, il faut néanmoins installer les éléments suivants :
Le connecteur Outlook, qui ajoute l'onglet Divalto dans le client de messagerie.
Le composant Divalto pour Outlook, qui permet à Outlook de dialoguer avec le serveur Divalto par un Web Service.



Sur le serveur IIS


Il est nécessaire de mettre en œuvre :
Le « Serveur pour le client léger Web ». En effet, les traitements de l'interface avec l'ERP lancés depuis Outlook s'exécutent dans un navigateur client du serveur Divalto.
Le « Service Web pour programmes Diva » car le client Outlook dialogue avec le serveur grâce aux services Web.
Cette installation s'effectue par le choix « Installation Serveur Client léger Web » du menu « Paramétrage » d'Harmony.

Puis par l'onglet « Autre Services Web ».
Dans Outlook du poste client, il est nécessaire d'effectuer les paramétrages particuliers suivants :


Attention : les URL du service web et du client léger Html5 doivent rigoureusement correspondre au paramétrage effectué sur le serveur.

XLAN 64 bits


Il existe à présent une version 64bits du service DHSXLanServer. En effet, sur les sites avec un nombre important d'utilisateurs, la version 32bits du service pouvait être limitée par sa capacité d'adressage.
L'installateur d'Harmony tient compte de la version du système d'exploitation sur lequel s'effectue l'installation, en installant respectivement le service 64bits sur un système 64bits ou le service 32bits sur un système 32bits.

Création d'un environnement pour la version client


Il est désormais possible de créer un environnement lors de l'installation d'un site client.


Cela permet par exemple de créer un environnement de production et des environnements de test ou de formation.

XBAP


Avant l'existence du client léger HTML5, nous utilisions la technologie XBAP pour permettre la connexion à un serveur Divalto depuis un navigateur.
Cette technologie permettait en fait, de manière transparente pour l'utilisateur, d'installer un client Wpf sur le poste client. Cette technologie étant aujourd'hui obsolète, le connecteur XBAP n'est plus diffusé avec la version 2016.

Déploiement du Framework 4.6.2


La version 2016 d'Harmony Power Foundation nécessite impérativement le Framework 4.6.2 de .Net. Celui-ci doit de préférence être déployé sur les ordinateurs serveurs et clients avant l'installation d'Harmony.
Le Framework peut être déployé sur l'ensemble des postes par une GPO ou à partir d'un serveur WSUS.
L'installation d'un client léger WPF avec le Setup.exe va automatiquement installer le Framework sur le poste s'il n'est pas encore présent.

Développement



Amélioration de la gestion des impressions dans XWIN


La gestion des impressions dans Xwin a fait l'objet de plusieurs améliorations significatives :

L'objet Tableau :


Simplifie le dessin d'un « tableau » dans un masque Xwin.
Permet à l'utilisateur de masquer des colonnes, de modifier la largeur ou d'inverser l'ordre des colonnes.

La propriété « multi-ligne » (objets Texte, Champ & Multi-choix) :


Autorise l'objet à s'imprimer sur deux ou plusieurs lignes si son contenu déborde de la boîte dessinée dans Xwin.
Permet par exemple à l'utilisateur de rétrécir une colonne de tableau sans perte d'information.

La maquette :


Simule l'impression d'un état avec des données « réelles ».
Permet en particulier à l'assistant de personnalisation des impressions de fournir un bon aperçu de l'état personnalisé.

Sauvegarde des paramètres des tableaux par version


Il convient de mettre à jour la propriété Version d'un tableau lorsque l'ajout ou la suppression d'une colonne risque de rendre la sauvegarde des paramètres utilisateurs incompatible.

Objets Graphe et Gantt


Ces deux nouveaux types d'objet se placent dans une page du masque. L'aide de Xwin en détaille la mise en œuvre (ici, l'objet Gantt).

Un exemple de programmation est fourni avec le projet Exemple_v7.

Widgets Liste et Tâche


Dans les actions associées aux widgets liste et tâche, il est désormais possible de savoir si elles ont été déclenchées par un clic gauche ou droit et de connaitre l'état des touches Maj et Ctrl.
Cette nouveauté n'est disponible qu'avec un ERP de version X.1 ou supérieur.
Il est possible de réactualiser par programme la liste des widgets liste et tâche dans la fonction d'action en appelant la fonction PingLocal("IA_UpdateWidget", TRUE).

Xwin


Plusieurs améliorations dans Xwin :

ConsoleWrite


La fonction ConsoleWrite permet d'écrire dans l'onglet compte-rendu de Xwin. Cela peut être utile pour déboguer des applications sans interférer avec les actions clavier ou souris.

Recherche dans le projet


La recherche dans les projets a été entièrement revue.



Recherche dans les onglets compte-rendu, messages, etc.


La recherche permet désormais d'effectuer une recherche dans la fenêtre ayant le focus.
Pour rechercher dans le source des programmes, il faut ensuite redonner le focus à la fenêtre d'édition du texte.

Ouverture du source d'un dictionnaire de RecordSQL


Un clic droit sur la déclaration d'un RecordSQL permet d'ouvrir le source du dictionnaire.

Il est également possible d'ouvrir un dictionnaire de jointures, par un clic droit sur l'extension .dhsd.

Contrôle de la syntaxe d'un RecordSQL


Un clic-droit sur un RecordSQL permet de contrôler sa syntaxe par XRecordSqlCheck.

Exécution d'une Assembly sur le client Wpf

Les fonctions Assembly existent désormais avec le préfixe LC pour exécuter une assembly .NET sur le client léger WPF :
LCAssemblyLoad permet de charger une Assembly.
LCAssemblyGetMethod i permet d'obtenir un pointeur vers une méthode (ou fonction).
LCAssemblyMethodInvoke permet d'exécuter la fonction. LCAssemblyGetError permet de récupérer un message d'erreur complet. LCAssemblyMethodInvokeCP permet d'exécuter la fonction.
Ces fonctions ont été utilisées dans l'ERP pour EBICS TS.

Appel de la procédure HQLFin


Le moteur HQL appelle désormais la procédure HQLFin en fin de traitement (après le PrintEnd).

RecordSql



UpdateValues


Pour modifier des valeurs d'une table avec une expression.

Accès à l'ID des tables issues d'une jointure


La méthode GetId d'un RecordSQL permet de récupérer la valeur du champ table_id de la table déclarée dans le <from> d'un RecordSQL.
L'accès à l'id des tables jointes d'un RecordSQL est maintenant également possible.
L'attribut withid des balises de jointure <xxxxjoin> permet d'ajouter l'id de la table jointe aux champs calculés du RecordSql.
Ce champ contient l'Id de la ligne jointe. Il est directement accessible comme une donnée du RecordSQL en Diva.

Pagination des RecordSQL


La méthode PagingRecordSql permet d'utiliser les fonctionnalités de pagination proposées à partir de la version 2012 de Microsoft SQL server.
Attention : cette fonctionnalité n'est pas supportée par DB2, ni par les versions de Microsoft SQL Server antérieures à la version 2012.

Limite des noms des instances d'un RecordSQL


Le nom de l'instance d'un RecordSQL était limité à 32 caractères en tout avec l'ajout de caractères « système » pour les Records qui le composent, notamment pour les champs calculés. La limite est
désormais de 64 caractères.

Téléchargement d'un fichier depuis un serveur http


Deux nouvelles fonctions permettent de mettre en téléchargement un fichier depuis un serveur d'applications et de le récupérer sur le poste client. Cette fonctionnalité est particulièrement intéressante pour les services Web susceptibles de produire un gros volume d'informations qui ne pourraient pas, compte tenu de leur taille, être renvoyées dans un flux XML.

Coté serveur


Url = DownLoadUrlEncode(chemin,false) Encode le chemin d'un fichier afin qu'il puisse être téléchargé depuis le client. Le serveur renvoie le chemin encodé (Url) au client.

Coté client


Le client télécharge le fichier grâce à la fonction DownloadFromEncodedUrl.

Exécution d'un programme Diva dans un navigateur depuis une URL


L'exécution d'un programme Diva dans un navigateur en invoquant une URL est une fonctionnalité nouvelle offrant des perspectives de développement très vaste. Par exemple, l'envoi d'un mail avec une URL permettant au destinataire, par un simple clic, d'accéder à l'ensemble des fonctionnalités de l'ERP (valider une commande ou une demande de congés, consulter un événement, etc.).
L'Url doit contenir toutes les informations nécessaires au lancement du programme.
Pour sécuriser l'accès à l'ERP, l'Url commence par une phase d'authentification de l'utilisateur. Certaines informations, comme le profil ou l'identifiant, peuvent être pré-garnies.


Deux modes d'exécution du programme sont disponibles :

  1. Le mode « call » : ouvre une fenêtre pop-up dans laquelle s'exécute le programme demandé. La page de login reste affichée avec une image générique.



  1. Le mode « goto » : le programme s'exécute directement dans la page d'accueil.



Le mode « call » est à privilégier car dans la fenêtre pop-up, la barre de boutons du navigateur n'est pas affichée, alors qu'elle l'est en mode « goto » et ne doit pas être utilisée.
L'Url peut comporter des paramètres transmis au programme appelé.

Contraintes


Les programmes qui peuvent être lancés depuis une Url doivent obligatoirement figurer au menu (éventuellement en mode masqué). C'est le menu qui met en place le contexte d'exécution.
La version de l'ERP doit être au minimum X.1.

Un exemple de programme est livré.

Contrôle renforcé des dictionnaires de données


Au chargement d'un dictionnaire, Harmony vérifie qu'il n'y a pas des index définis qui ne correspondent pas à une table du fichier. Ce contrôle est effectué par Xwin.

Migration introduction


La migration des versions anciennes vers la dernière version de l'ERP Divalto est un sujet d'actualité car le support et l'évolution de la version 6 prennent fin en janvier 2017. Conscients que les migrations présentent aujourd'hui des difficultés, notamment pour les sites comportant de nombreuses surcharges, nous avons rassemblé une dizaine de partenaires autour d'un « Atelier Migration » afin de déterminer les axes d'amélioration des outils, dans trois directions :
La migration des données.
La migration des développements spécifiques. La migration des surcharges d'un menu.
Les différents programmes de migration peuvent se lancer depuis le menu Harmony.


Migration des données


La migration des données d'une version 6 vers la dernière version s'effectue en 3 grandes étapes :

La migration d'une version 6.x à la version 7.1a au format .dhfi. Le transfert de données dans la base SQL.


Cette étape était entièrement manuelle et décrite dans l'Orangebook.

La migration de la base de la version 7.1a SQL vers la cible.


Nous avons apporté des améliorations très importantes dans chacune de ces étapes dans le but de simplifier et de fiabiliser la procédure.

  1.  

    1. Migration d'une version 6.x à la version 7.1a au format .dhfi


Cette étape s'effectue par le programme a5pmmaj.dhop et comporte les améliorations suivantes :
Il vérifie que les dictionnaires standard de la version d'origine n'ont pas été modifiés. Bien que la modification d'un dictionnaire standard soit fortement déconseillée, il arrive qu'il le soit pour des raisons pragmatiques, par exemple pour récupérer un filler dans une table lorsque la zone U associée est saturée. Cette opération est la première effectuée par A5pmmaj. En effet, si des modifications ont été effectuées dans le dictionnaire standard, il convient d'adapter les traitements effectués par A5pmmaj afin de ne pas perdre de données spécifiques.
Il effectue une copie du répertoire de travail pour les différentes versions intermédiaires. En effet, un incident quelconque pendant cette étape nécessite de restaurer l'ensemble des répertoires de travail. Le programme crée le fichier .upgrade à la racine du répertoire et le supprime lorsque l'étape s'est terminée normalement. Si l'on relance le programme et que le fichier est toujours présent, a5pmmaj propose de restaurer la sauvegarde du répertoire.
Si le « répertoire de travail pour les fichiers à traiter » est renseigné, a5pmmaj copie les fichiers originaux à migrer dans ce répertoire. Cette opération est facultative si une sauvegarde des fichiers avant migration a déjà été réalisée (ce qui est très fortement recommandé). Le champ est renseigné par défaut avec /divalto/FichiersV6, donc si l'on ne souhaite pas effectuer la copie, il faut effacer le champ.



Contrôle des dictionnaires standard



Si des modifications ont été apportées, il faudra adapter les moulinettes pour récupérer les données spécifiques avant de poursuivre le processus.

Transfert de données dans la base SQL


Cette étape s'effectue par le programme a5pmMigration.dhop.
L'étape précédente a permis de produire des fichiers .dhfi avec les données au format de la version 7.1a. A5pmmigration.dhop va permettre de transférer ces données dans une base SQL.
Il permet d'effectuer les opérations suivantes : Créer un nouvel environnement.
Créer la source de données.
Créer la base de données avec la possibilité de choisir la taille de la base et des fichiers de log. Le programme calcule la taille du répertoire des fichiers de la version d'origine afin de proposer des valeurs pour la création de la base.
Compléter la chaine de connexion pour accéder à la base créée.
Ajouter l'entrée correspondant à la base SQL dans la table des serveurs.
Contrôler la compatibilité des dictionnaires de surcharge de la version d'origine avec la version 7.1a.
Copier les dictionnaires de surcharge dans le répertoire de travail contenant la version 7.1a. Cette opération permet de créer et de transférer les champs spécifiques dans la base de données.
Ajouter les fichiers spécifiques dans le fichier paramètres fhsql. Une liste des fichiers spécifiques est proposée. Pour chacun, il est possible de choisir s'il doit être ajouté dans fhsql. Dans le cadre d'une Sqlisation des traitements spécifiques, il faut impérativement transférer ces fichiers dans la base SQL. La liste des fichiers comprend les fichiers ajoutés en surcharge dans les dictionnaires standard, ainsi que les fichiers en provenance des dictionnaires spécifiques.
Contrôler que les dictionnaires de surcharges et les dictionnaires spécifiques sont compatibles avec le paramétrage nécessaire pour XLANSQL. Ce traitement correspond au choix « Audit » de Xpsql.
Récupérer le paramétrage des décimales variables effectué dans l'ERP de la version d'origine (le module effectuant cette opération peut être surchargé pour traiter des classes de décimales spécifiques). A5pmMigration affiche un tableau avec le paramétrage pour chacun des dossiers de la version d'origine. Si le paramétrage est homogène, il propose les valeurs trouvées pour chaque classe de décimales. S'il y a des valeurs différentes, il affiche les valeurs pour permettre à l'utilisateur de choisir en connaissance de cause. Il met à jour le paramétrage de l'ERP avec les valeurs choisies en effectuant la mise à jour des fichiers avec les nouvelles valeurs.
Créer les tables dans la base de données.
Contrôler l'intégrité des données dans les fichiers d'origine. Ce choix exécute l'utilitaire XFileControl. A5pmmigration permet de lancer plusieurs contrôles de différents fichiers simultanément. Ceci permet d'accélérer notablement le contrôle sur des ordinateurs rapides. Il demande le nombre de contrôles que l'on souhaite lancer en parallèle. Le contrôle d'intégrité consomme du CPU, on lancera autant de contrôle qu'il y a de cœurs logiques.
Copier les données dans la base SQL. Une option (conseillée) permet de désactiver la génération des index au fur et à mesure de la copie. Les index sont générés en fin de copie de toutes les données. Cette option permet un gain de temps considérable, en particulier pour les tables volumineuses. Le traitement doit être exécuté directement sur le serveur XLAN : cela permet également d'optimiser les temps de copie car le service copie directement les données dans les tables sans solliciter les couches réseau. (Remarque : les fichiers .dhfi doivent évidemment aussi se trouver sur le même serveur).
Après la conversion des données dans la dernière version de l'ERP : Convertir les notes en BLOB.
Reprendre les textes de relances pour les convertir en notes.
Attention : Le programme doit être exécuté avec une connexion locale « en tant d'administrateur ». En effet, il permet de création de sources de données ODBC « machine », qui requiert les droits d'administrateur. Pour cela, on exécutera le menu Harmony en tant qu'administrateur.

Ecran d'accueil de A5pmMigration



Les boutons de la barre d'outils permettent d'enchainer les différentes opérations.

Les opérations doivent être enchainées logiquement, en suivant l'ordre des boutons de la barre d'outils de gauche à droite.

Migration de la base de la version 7.1a SQL vers la cible


Cette étape s'effectue par le programme a5pmmaj_sql.dhop et comporte les améliorations suivantes :
Il copie les dictionnaires de surcharge dans le répertoire de travail temporaire de la version d'origine.
Il contrôle la compatibilité des dictionnaires de surcharge de la version d'origine avec toutes les versions intermédiaires entre la version d'origine et la version cible.
Il copie les dictionnaires de surcharges dans tous les répertoires intermédiaires.

Migration des surcharges



Introduction


La difficulté première rencontrée avant de proposer une migration d'un site est d'effectuer un état des lieux des surcharges qui ont été effectuées. Pour cela, nous avons ajouté un nouveau choix dans Xwin7 qui, à partir du projet de surcharge, dresse l'inventaire détaillé de toutes les personnalisations qui ont été effectuées.
La deuxième difficulté est d'évaluer l'impact des modifications et des améliorations apportées par la dernière version de l'ERP sur les personnalisations effectuées précédemment en surcharge. Pour cela, nous avons conçu un outil permettant une évaluation de l'effort de migration tenant compte des évolutions de l'ERP.

Inventaire des personnalisations d'un projet de surcharge


Ce choix permet d'avoir à la fois une vue d'ensemble et une vue détaillée de l'ampleur d'une surcharge. L'inventaire présente les informations sous la forme d'un arbre. L'ouverture des branches permet d'accéder aux détails les plus fins.
L'inventaire concerne :
Les masques d'écran, d'impression et les traitements standard surchargés. Les masques d'écran, d'impression et les traitements spécifiques développés. Les surcharges des dictionnaires de données.
Les dictionnaires de données spécifiques.
Les zooms standard surchargés. Cette liste est obtenue à partir de la table des zooms du fichier A5f.dhfi. L'inventaire indique si le traitement ou le masque ou les deux ont été modifiés.
L'inventaire consulte les fichiers de navigation (browse) pour fournir les informations suivantes : Les fonctions standard utilisées par la surcharge
Les Records utilisés par les traitements de surcharge
Les RecordSQL utilisés par les traitements de surcharge Les Hfile utilisés par les traitements de surcharge
Les champs utilisés en surcharge.

Evaluation de l'effort de migration


Cet outil n'est pas entièrement finalisé dans la version 2016 d'Harmony. Il fera l'objet d'une publication ultérieure dans les mois à venir. Il permettra de valoriser (en points d'effort) l'inventaire des personnalisations afin de chiffrer le travail nécessaire pour réaliser la migration.

Migration Outils



Introduction


En plus de l'évolution des programmes de migration, quelques outils ont aussi fait l'objet d'amélioration.

Migration des surcharges de menu


Cette opération, fastidieuse avec les versions précédentes d'Harmony, devient un jeu d'enfant avec la nouvelle version. En effet, l'outil xMigrationMenu reporte l'ensemble des surcharges d'un menu d'une version d'origine vers une version cible (en général la dernière).

La moulinette traite les enregistrements M1, M2, M4 et M7. Elle identifie champ par champ les modifications apportées par la surcharge, puis convertit les enregistrements dans le format de la version cible en y appliquant les modifications détectées. Elle prend ainsi parfaitement en compte les confidentialités appliquées à des choix de menu.
Elle effectue les opérations suivantes : Migre les choix de menu
Migre la table des zooms
Migre les favoris (v6 ou version IA) Migre les états d'impression.
Elle renumérote les nouveaux choix de surcharge ou de zoom s'ils entrent en conflit avec de nouveaux choix standard. Elle produit un mouchard avec les listes des conflits détectés.
Attention : en cas de renumérotation de zoom ou de choix de menu, il convient de vérifier l'impact sur les appels de ces zooms ou les appels de choix programmés.
Rappel : les zooms spécifiques doivent être numérotés à partir de 60 000 pour éviter les conflits avec de nouveaux zooms standard.

Xpsql : Contrôle d'intégrité


Le programme de contrôle d'intégrité des fichiers, à lancer avant une migration des fichiers vers une base SQL (xfilecontrol.dhop), affiche le paramétrage des décimales variables.





















Lorsque le contrôle est lancé depuis XPSQL, celui-ci transfère le paramétrage lié à la base de données courante.

Affichage des sous-projets surchargés dans Xwin


Dans un projet surchargé, Xwin permet de n'afficher dans l'arbre du projet que les entités ayant fait l'objet d'une surcharge. Cela permet de voir en un coup d'œil l'étendue de la personnalisation qui a été effectuée pour un client.



Chargement d'un projet et de masques V6 par Xwin7


Dans le cadre des migrations, Xwin7 permet d'ouvrir un projet de la version 6.

Le projet est ouvert en lecture seule. Il n'est pas destiné à être utilisé pour un développement avec la version 7 de Xwin mais afin de mettre en œuvre les outils d'aide à la migration.

Cela permet donc :
D'effectuer l'inventaire des modifications d'un projet de surcharge
De copier/coller des objets en provenance de masques V6 vers des masques V7. De visualiser les différences entre un masque de base et sa surcharge.

Comparaison d'un masque de surcharge avec le masque de base


Un clic-droit sur un masque de surcharge d'un sous-projet de surcharge permet de lancer le choix « Comparer avec le masque de base ».
Ce choix affiche les deux masques en mosaïque et la fenêtre de compte-rendu affiche la liste des différences. La validation d'une ligne du compte-rendu visualise dans les deux masques l'objet sur
lequel porte la différence. Les touches de fonction F4 et Maj+F4 permettent de naviguer au clavier dans la liste des différences.