Altova MapForce Server 2024 Advanced Edition

L'exemple suivant illustre comment exécuter un fichier d'exécution de mappage (.mfx) depuis le code VBScript. Sous Windows, les fichiers d'exemple sont disponibles sous le chemin suivant : C:\Program Files\Altova\MapForceServer2024\etc\Examples.

 

Avant de tester cet exemple, assurez-vous que les conditions préalables suivantes sont correctes :

 

MapForce Server est installé et mis sous licence

MapForce Server est disponible en tant qu'objet de serveur COM (normalement, ce processus a lieu automatiquement pendant l'installation MapForce Server ; pour vérifier si l'enregistrement a bien réussi, voir Interface COM).

 

Option Explicit
 
REM This script produces extensive output.
REM It is best called from a cmd.exe console with "cscript MapForceServerAPI_sample.vbs"
 
'Create the MapForce Server object
Dim objMFS
' Since we load a COM-DLL we need care about the process architecture
On Error Resume Next   ' ignore any COM errors avoiding uncontrolled script termination
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     ' re-enble default error promotion
 
'Set a working directory - used as a base for relative paths (you may need to adapt the path to the installation folder)
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)
'set working folder to parent of this script
objMFS.WorkingDirectory = fso.GetParentFolderName( currDir )
 
'Default path to the MapForce Server executable is the installation path (same dir with the MapForceServer.dll)
'In case you moved the binaries on the disk, you need to explicitly set the path to the .exe file
'objMFS.ServerPath = "C:\Program Files (x86)\Altova\MapForceServer2024\bin\MapForceServer.exe"
 
'Set global resource file and configuration, if your mapping uses global resources
'Call objMFS.SetOption("globalresourcefile", "GlobalResources.xml") '"gr" can be used as short name for "globalresourcefile"
'Call objMFS.SetOption("globalresourceconfig", "Config2") '"gc" can be used as short name for "globalresourceconfig"
 
WScript.Echo( "Running " & objMFS.ProductNameAndVersion & vbCrlf )
 
' The Run method will return 'True' if the execution of the mfx file was successful otherwise 'False'.
' In the case of fundamental errors like termination of the server process a COM error will be raised which
' can be handled using the VBScript Err object.
On Error Resume Next   ' ignore any COM errors avoiding uncontrolled script termination
Err.Clear
 
REM ----------------------------------------------------------------------------
REM run an example with input and output paths stored inside the MFX file
' the path to the mfx file can be absolute or relative to the working directory
' depends on existence of file AltovaTools.xml in working direcory
' creates output file AltovaToolFeatures.csv in working directory
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
  'execution failed (e.g. somebody deleted file AltovaTools.xml)
  WScript.Echo( objMFS.LastExecutionMessage )
End If
WScript.Echo("")
' handle COM errors
If Err.Number <> 0 Then
  WScript.Echo("Internal error - " & Err.Description )
  WScript.Quit -1
End If
 
REM -----------------------------------------------------------------------------------------
REM this is an example creating a simple output so that we can retrieve the result explicitly
' depends on inpuz XML file 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
  'execution failed (e.g. somebody deleted file ipo.xml)
  WScript.Echo( objMFS.LastExecutionMessage )
End If
WScript.Echo("")
' handle COM errors
If Err.Number <> 0 Then
  WScript.Echo("Internal error - " & Err.Description )
  WScript.Quit -1
End If
 
REM ----------------------------------------------------------------------------
REM This is an example with parameterized input
' the default of 'lower=5' gets changed to the value '10'
' mfx reads file Temperatures.xml and writes its output to 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
  'execution failed (e.g. somebody locks file Temperatures_out.xml)
  WScript.Echo( objMFS.LastExecutionMessage )
End If
call objMFS.ClearParameterList()
WScript.Echo("")
 
' handle COM errors
If Err.Number <> 0 Then
  WScript.Echo("Internal error - " & Err.Description )
  WScript.Quit -1
End If
 
On Error Goto 0     ' re-enble default error promotion

© 2018-2024 Altova GmbH