Comment effectuer un transfert du paramétrage d'un signalétique d'un Mercator vers un autre ?

0000002408     -      16/12/2016

Le paramétrage d'un signalétique se trouve dans la table CTL (les onglets, les différentes zones composant ces onglets, ...) ainsi que dans la table ASSEMBLIES en ce qui concerne le code C# compilé des boutons et expressions.

Nous allons illustrer ce transfert de paramétrage pour le signalétique clients (CLI).

Dans le Mercator de départ

On extrait les données nécessaires via ces requêtes exécutées dans un onglet SQL de l'éditeur de code.

select * from CTL where module='.CLI'
select * from ASSEMBLIES where (id like'BTN-CLI%') or (id like 'EXP-CLI%')
 
Dans la grille en dessous, via clic-droit : "Exporter Grille", choisir le format XML et exporter vers CTL_TMP.xml
Ensuite, dans cette même grille, toujours via clic-droit : "Table Suivante" et "Exporter Grille", choisir le format XML et exporter vers ASSEMBLIES_TMP.xml
 
Dans le Mercator de destination :
 
On va charger les fichiers XML via la fonctionnalité de bulk load.
  • Charger le premier fichier XML en maintenant les valeurs par défaut et en spécifiant "CTL" en tant que "Classement de cette table".
  • Charger le second fichier XML en maintenant les valeurs par défaut et en spécifiant "ASSEMBLIES" en tant que "Classement de cette table".

A partir de ce moment, la base de données SQL contient une table CTL_TMP et ASSEMBLIES_TMP reprenant les données des fichiers XML.

Il suffit ensuite d'exécuter ce script SQL :

delete from CTL where module='.CLI'
delete from ASSEMBLIES where (id like'BTN-CLI%') or (id like 'EXP-CLI%')
insert into CTL (-1-) select -1- from CTL_TMP
insert into ASSEMBLIES (-2-) select -2- from ASSEMBLIES_TMP

La valeur de -1- et -2- doit être remplacée par l'énumération des champs de chacune de ces tables. Pour obtenir cette énumération facilement, il suffit de

  • Choisir "Base de données" dans le bouton en bas à droite. Cela montre le DataBase Viewer.
  • Etendre le noeud "Tables"
  • Etendre le noeud CTL
  • Faire un drag&drop de l'étoile qui se situe en haut de la liste des champs vers l'éditeur à la place de -1-
  • Recommencer la même opération pour la table ASSEMBLIES et -2-

Remarque : il faut bien utiliser cette énumération de champs et non *, car rien n'assure que l'ordre des colonnes de ces tables soit le même dans ces 2 Mercator.

Une fois le script SQL exécuté, il suffit de fermer l'éditeur de commandes. Mercator proposera de supprimer les 2 tables bulkées, ce qu'il convient d'accepter puisqu'elles n'ont plus d'utilité.