L'exemple suivant illustre comment exécuter un fichier d'exécution de mappage (.mfx) à partir d'un code VBScript. Sous Windows, les fichiers d'exemple sont disponibles à l'emplacement suivant : C:\Program Files\Altova\MapForceServer2026\etc\Examples.
Avant d'exécuter le code ci-dessous, assurez-vous que les prérequis suivants sont remplis :
•MapForce Server est installé et sous licence
•MapForce Server est disponible en tant qu'objet serveur COM (normalement, ce processus se déroule automatiquement lors de l'installation de MapForce Server ; pour vérifier si l'enregistrement a réussi, voir À propos de l'interface COM).
Option Explicit REM Ce script produit une sortie volumineuse. Il est préférable de l'appeler à partir d'une console cmd.exe avec "cscript MapForceServerAPI_sample.vbs" 'Créer l'objet MapForce Server Dim objMFS ' Comme nous chargeons une DLL COM, nous devons prêter attention à l'architecture du processus On Error Resume Next ' ignorer toutes les erreurs COM afin d'éviter l'arrêt incontrôlé du script Dim WshShell Dim WshProcEnv Set WshShell = CreateObject("WScript.Shell") Set WshProcEnv = WshShell.Environment("Process") Dim process_architecture process_architecture= WshProcEnv("PROCESSOR_ARCHITECTURE") If process_architecture = "x86" Then Set objMFS = WScript.GetObject( "", "MapForce.Server" ) If Err.Number <> 0 then WScript.Echo("You are running in a 32-bit process but MapForce Server COM-API 32-bit seems not to be installed on your system.") WScript.Quit -1 End If Else Set objMFS = WScript.GetObject( "", "MapForce_x64.Server" ) If Err.Number <> 0 then WScript.Echo("You are running in a 64-bit process but MapForce Server COM-API 64-bit seems not to be installed on your system.") WScript.Echo("If you have installed 32-bit MapForce Server consider calling your script from the 32-bit console 'C:\Windows\SysWOW64\cmd.exe.'") WScript.Quit -1 End If End If On Error Goto 0 ' Réactiver la promotion d'erreur par défaut 'Définir un répertoire de travail - utilisé comme base pour les chemins relatifs (vous devrez peut-être adapter le chemin d'accès au dossier d'installation) REM objMFS.WorkingDirectory = "C:\Program Files (x86)\Altova\MapForceServer2020\etc\Examples" Dim currDir Dim fso Set fso = CreateObject("Scripting.FileSystemObject") currDir = fso.GetParentFolderName(Wscript.ScriptFullName) 'définissez le dossier de travail comme parent de ce script objMFS.WorkingDirectory = fso.GetParentFolderName( currDir ) 'Le chemin par défaut vers l'exécutable MapForce Server est le chemin d'installation (même répertoire que MapForceServer.dll). 'Si vous avez déplacé les binaires sur le disque, vous devez définir explicitement le chemin vers le fichier .exe. 'Le ServerPath doit être défini avant toute autre propriété, car il réinitialise le serveur et réinitialise toutes les propriétés. 'objMFS.ServerPath = "C:\Program Files (x86)\Altova\MapForceServer2026\bin\MapForceServer.exe" 'Définissez le fichier de ressources global et la configuration si votre mappage utilise des ressources globales 'Appeler objMFS.SetOption("globalresourcefile", "GlobalResources.xml") '"gr" peut être utilisé comme nom abrégé pour "globalresourcefile" 'Appeler objMFS.SetOption("globalresourceconfig", "Config2") '"gc" peut être utilisé comme nom abrégé pour "globalresourceconfig" WScript.Echo( "Running " & objMFS.ProductNameAndVersion & vbCrlf ) ' La méthode Run renverra 'True' si l'exécution du fichier mfx a réussi, sinon 'False'. ' En cas d'erreurs fondamentales telles que l'arrêt du processus serveur, une erreur COM sera générée, qui ' peut être gérée à l'aide de l'objet VBScript Err. On Error Resume Next ' ignore toutes les erreurs COM, évitant ainsi l'arrêt incontrôlé du script Err.Clear REM ---------------------------------------------------------------------------- REM exécute un exemple avec les chemins d'entrée et de sortie stockés dans le fichier MFX ' Le chemin d'accès au fichier mfx peut être absolu ou relatif au répertoire de travail ' en fonction de l'existence du fichier AltovaTools.xml dans le répertoire de travail ' Crée le fichier de sortie AltovaToolFeatures.csv dans le répertoire de travail WScript.Echo( "Processing TokenizeString.mfx..." ) If ( objMFS.Run( "TokenizeString.mfx" ) ) Then 'WScript.Echo( objMFS.LastExecutionMessage ) ' execution log WScript.Echo( "Successfully generated file AltovaToolFeatures.csv." ) Else 'échec de l'exécution (par exemple, quelqu'un a supprimé le fichier AltovaTools.xml) WScript.Echo( objMFS.LastExecutionMessage ) End If WScript.Echo("") ' Gérer les erreurs COM If Err.Number <> 0 Then WScript.Echo("Internal error - " & Err.Description ) WScript.Quit -1 End If REM ----------------------------------------------------------------------------------------- Il s'agit d'un exemple créant une sortie simple afin que nous puissions récupérer le résultat explicitement ' Dépend du fichier XML inpuz ipo.xml WScript.Echo( "Processing SimpleTotal.mfx..." ) If ( objMFS.Run( "SimpleTotal.mfx" ) ) Then 'WScript.Echo( objMFS.LastExecutionMessage ) WScript.Echo( "Mapping result is: " & objMFS.GetOutputParameter("total") ) Else 'échec de l'exécution (par exemple, quelqu'un a supprimé le fichier ipo.xml) WScript.Echo( objMFS.LastExecutionMessage ) End If WScript.Echo("") ' gérer les erreurs COM If Err.Number <> 0 Then WScript.Echo("Internal error - " & Err.Description ) WScript.Quit -1 End If REM ---------------------------------------------------------------------------- Voici un exemple avec une entrée paramétrée ' la valeur par défaut 'lower=5' est remplacée par la valeur '10' ' mfx lit le fichier Temperatures.xml et écrit son résultat dans Temperatures_out.xml. WScript.Echo( "Processing ClassifyTemperatures.mfx with parameter 'lower' set to '10' ..." ) call objMFS.AddParameter("lower", "10") If ( objMFS.Run( "ClassifyTemperatures.mfx" ) ) Then 'WScript.Echo( objMFS.LastExecutionMessage ) WScript.Echo( "File Temperatures_out.xml has been written successfully." ) Else 'Échec de l'exécution (par exemple, quelqu'un verrouille le fichier Temperatures_out.xml) WScript.Echo( objMFS.LastExecutionMessage ) End If call objMFS.ClearParameterList() WScript.Echo("") ' gérer les erreur COM If Err.Number <> 0 Then WScript.Echo("Internal error - " & Err.Description ) WScript.Quit -1 End If On Error Goto 0 ' Réactiver la promotion d'erreur par défaut |