Généralités à propos de la liaison OLE à Mercator

0000002366     -      10/05/2023

Mercator dispose d'un composant OLE permettant une utilisation de certaines fonctionnalités de Mercator depuis des applications externes, dont notamment MS Excel.

Le composant OLE de Mercator consiste en un assembly .net, qui expose au modèle OLE-DCOM ces méthodes :

  • bool Initialize(string mainDir, string idDossier, string userLogin, string userPassword) : initialisation de l'environnement de Mercator
     
  • string Test() : renvoie une chaîne de caractères indiquant si le composant OLE a bien été instancié
     
  • string GetLastError() : obtenir la dernière erreur rencontrée
     
  • void Dispose() ou Terminate() : fermer le composant OLE et décharger l'environnement de Mercator
     
  • object EvalInGlobals(string property) : évaluation d'une propriété de MercatorUi.Globals.
     
  • string EvalInParams(string key) : évaluation d'une option générale de Mercator
     
  • string EvalInParamPos(string key) : évaluation d'une option "matériel caisse" de Mercator
     
  • string EvalInParamParamIdentif : évaluation d'un paramètre de "Outils / Identification"
     
  • object EvalFromCode(string assembly, string className, string method)
    object EvalFromCode_2(string assembly, string className, string method, object parameter1)
    jusque
    object EvalFromCode_10(string assembly, string className, string method, object parameter1, object parameter2, object parameter3, object parameter4, object parameter5, object parameter6, object parameter7, object parameter8, object parameter9) : évaluation d'une méthode quelconque dans un assembly personnalisé et une classe d'objets sur mesure.
     
  • la plupart des xFonctions disponibles dans l'espace de nom MercatorController.xFunctions
     
Installation sur base du framework .net classique
 
Le fichier ZIP repris sur la page mercatorole.net.dll-version-majuro.html contient le composant OLE .net de Mercator, à dézipper dans le répertoire principal de Mercator. (Si les ressources sont installées en local, il convient de changer l'extension dll en dl~, et ensuite de démarrer Mercator pour que cette dll soit copiée dans le répertoire local de Mercator. Le fichier tlb et les fichiers cmd doivent aussi être copiés dans ce répertoire des ressources locales.)
 
Le composant doit ensuite être inscrit dans le registry de chaque poste sur lequel il va être utilisé. Cela se fait par le déclenchement de 
  • Register32.cmd pour une utilisation à partir d'un programme externe 32 bits (par exemple MS Excel 32 bits)
  • Register64.cmd pour une utilisation à partir d'un programme externe 64 bits (par exemple MS Excel 64 bits)
Nous fournissons un programme simple permettant de tester si l'installation a correctement été effectuée.

Si ce programme de test affiche une boîte de dialogue montrant le nom de licence Mercator, alors l'installation locale est fonctionnelle.

 

Installation sur base du framework .net Core
 
Il existe une version 32 bits et une version 64 bits de MercatorOle.

A dézipper dans le répertoire principal de Mercator.

Le composant doit ensuite être inscrit dans le registry de chaque poste sur lequel il va être utilisé. Cela se fait par le déclenchement de 
  • Register32.cmd pour une utilisation à partir d'un programme externe 32 bits (par exemple MS Excel 32 bits)
  • Register64.cmd pour une utilisation à partir d'un programme externe 64 bits (par exemple MS Excel 64 bits)

Le fichier cmd doit être adapté avec le chemin vers le répertoire Mercator.


Remarques :
  • c'est bien le programme externe qui va instancier le composant OLE qui détermine le choix 32 ou 64 bits (et non pas uniquement l'OS - Un Excel 32 bits utilisé sur un Windows 64 bits demandera l'utilisation du composant OLE 32 bits)
  • sur un même poste, il n'est pas possible d'installer et d'utiliser simultanément les versions 32 et 64 bits.

Le programId de ce composant OLE est mercatorole.net.xmercator. Cela signifie que son instanciation, en fonction du langage utilisé, se fera avec une commande :

Set ox = CreateObject("mercatorole.net.xmercator")

Ensuite, il convient d'initialiser l'environnement propre à Mercator via cette commande :

ox.Initialize("M:\Test\Mercator", "", "Guy", "guy")

La méthode Initialize renvoie true ou false, indiquant ainsi le succès de la commande. Si false est renvoyé, l'erreur pourra être obtenue via

ox.lastError ou ox.GetLastError'()

Après usage du composant, il faut exécuter

ox.Terminate()
Set ox = Nothing

 

Exemples et applications :