Altova MapForce Server 2024 

Im folgenden Beispiel wird gezeigt, wie Sie eine Mapping-Ausführungsdatei (.mfx) über VB .NET-Code ausführen. Unter Windows stehen die Beispieldateien unter dem folgenden Pfad zur Verfügung: C:\Programme\Altova\MapForceServer2024\etc\Examples.

 

Voraussetzungen

MapForce Server ist installiert und lizenziert.

Wenn Sie ein neues Visual Studio-Projekt erstellen, fügen Sie eine Referenz zur MapForce Server Assembly hinzu (siehe Informationen zur .NET-Schnittstelle). Sie können diesen Schritt überspringen, wenn Sie das vorhandene MapForce Server API-Beispiel ausführen, da die MapForce Server Assembly darin bereits referenziert wird.

Klicken Sie im Menü Build von Visual Studio auf Configuration Manager und definieren Sie eine korrekte Build-Plattform, z.B. Debug | x86 (oder gegebenenfalls Debug | x64). Verwenden Sie nicht "Any CPU" als Plattform.

Wenn Sie eine MapForce Server 64-Bit-Version installiert haben, so muss auch die Applikation, die die API aufruft (wie z.B. die unten gezeigte Beispielapplikation) für die 64-Bit-Plattform in Visual Studio erstellt sein. Außerdem muss der Pfad zur ausführbaren MapForce Server-Datei im Code entsprechend angepasst werden.

 

Die Beispiellösung befindet sich im Verzeichnis "Programme", für das Sie Administratorrechte benötigen. Starten Sie Visual Studio entweder als Administrator oder kopieren Sie die Lösung in einen anderen Ordner, für den Sie keine Administratorrechte benötigen.

 

Ausführen des Mapping-Codes

Mit dem nachstehenden Code werden drei Server-Ausführungsdateien (.mfx) ausgeführt. Die Tabelle unten enthält eine Liste der von den einzelnen .mfx.-Dateien erwarteten Input-Dateien sowie der nach der Ausführung erstellten Ausgabedateien.

 

Ausführungsdatei (.mfx)

Input

Augabe

TokenizeString.mfx

AltovaTools.xml

AltovaToolsFeatures.csv

SimpleTotal.mfx

ipo.xml

String

ClassifyTemperatures.mfx

Temperatures.xml

Temperatures_out.xml

 

Wenn Sie Altova MapForce installiert haben, haben Sie die Möglichkeit, sich zum besseren Verständnis die Original-Mappings, anhand derer die .mfx-Dateien kompiliert wurden, anzusehen. Diese haben die Namen TokenizeString1.mfd, SimpleTotal.mfd bzw. ClassifyTemperatures.mfd. Sie finden die Mapping im folgenden Verzeichnis: C:\Benutzer\<Benutzer>\Altova\MapForce2024\MapForceExamples.

 

In diesem Beispiel geschieht Folgendes:

 

Es wird eine neue Instanz von Altova.MapForceServer.Server erstellt. Dies ist das Objekt, mit dem Sie später arbeiten werden.

Darin wird ein Arbeitsverzeichnis konfiguriert, in dem die Dateien ausgeführt werden. Die Input-Dateien sollten in diesem Verzeichnis vorhanden sein, falls Sie diese über einen relativen Pfad referenziert haben. Auch die Ausgabedateien werden in diesem Verzeichnis erstellt (siehe Tabelle oben).

TokenizeString.mfx wird ausgeführt. Der Dateipfad wird als Argument für die Methode Run bereitgestellt (Beachten Sie, dass der Pfad relativ zum zuvor definierten Arbeitsverzeichnis ist). Nach erfolgreicher Ausführung wird im Arbeitsverzeichnis eine .csv-Datei, die die Mapping-Ausgabe darstellt, erstellt.

SimpleTotal.mfx wird ausgeführt. Auch hier ist der Dateipfad wieder relativ zum Arbeitsverzeichnis. Mit diesem Mapping wird eine String-Ausgabe erzeugt, daher wird die Methode GetOutputParameter aufgerufen, um die String-Ausgabe zu erhalten.

ClassifyTemperatures.mfx wird ausgeführt. In diesem Mapping wird ein Parameter als Input erwartet, der mit Hilfe der Methode AddParameter bereitgestellt wurde.

 

Option Explicit On
 
Module Program
 
  Sub Main()
 
       Try
          'Create a MapForce Server object;
          Dim objMFS As Altova.MapForceServer.Server = New Altova.MapForceServer.Server
 
          'Set a working directory - used as a base for relative paths for the MapForce server execution (.mfx) file.
          'objMFS.WorkingDirectory = "C:\Program Files (x86)\Altova\MapForceServer2020\etc\Examples"
           objMFS.WorkingDirectory = "..\..\.."
 
          '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"
          'objMFS.ServerPath = "C:\Program Files\Altova\MapForceServer2024\bin\MapForceServer.exe"
 
          'Set global resource file and configuration, if your mapping uses global resources
          'objMFS.SetOption("globalresourcefile", "GlobalResources.xml") '"gr" can be used as short name for "globalresourcefile"
          'objMFS.SetOption("globalresourceconfig", "Config2") '"gc" can be used as short name for "globalresourceconfig"
 
          '----------------------------------------------------------------------------------
          'An example with input and output paths stored inside the MFX file
          System.Console.WriteLine(vbCrLf & "Executing TokenizeString.mfx...")
          If (objMFS.Run("TokenizeString.mfx")) Then
              System.Console.WriteLine("Successfully generated file 'AltovaToolFeatures.csv'.")
          Else
              'execution failed. maybe no write permissions in working directory? Run this program as administrator.
              System.Console.WriteLine(objMFS.LastExecutionMessage)
          End If
 
          '----------------------------------------------------------------------------------
          'An example creating a simple output so that we can retrieve the result explicitly
          System.Console.WriteLine(vbCrLf & "Executing SimpleTotal.mfx...")
          If (objMFS.Run("SimpleTotal.mfx")) Then
              System.Console.WriteLine("Mapping result is: " & objMFS.GetOutputParameter("total"))
          Else
              'execution failed (e.g. somebody deleted file ipo.xml)
              System.Console.WriteLine(objMFS.LastExecutionMessage)
          End If
 
          '----------------------------------------------------------------------------------
          '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.
          System.Console.WriteLine(vbCrLf & "Executing ClassifyTemperatures.mfx with parameter 'lower' set to '10' ...")
        objMFS.AddParameter("lower", "10")
          If (objMFS.Run("ClassifyTemperatures.mfx")) Then
              System.Console.WriteLine("File Temperatures_out.xml has been written successfully.")
          Else
              'execution failed. maybe no write permissions in working directory? Run this program as administrator.
              System.Console.WriteLine(objMFS.LastExecutionMessage)
          End If
 
       Catch ex As Exception
          System.Console.WriteLine("Internal Error - " & ex.Message())
      End Try
 
  End Sub
 
End Module

© 2017-2023 Altova GmbH