Beispiel: Verwenden von Dateinamen als Mapping-Parameter

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Erstellen von Mappings > Bereitstellen von Parametern für das Mapping >

Beispiel: Verwenden von Dateinamen als Mapping-Parameter

In diesem Beispiel wird Schritt für Schritt beschrieben, wie Sie ein Mapping ausführen, das zur Laufzeit Input-Parameter erhält. Sie finden die in diesem Beispiel verwendete Mapping-Design-Datei unter dem Pfad: <Dokumente>\Altova\MapForce2019\MapForceExamples\FileNamesAsParameters.mfd.

 

In dem Mapping werden zwei Input-Komponenten verwendet: InputFileName und OutputFileName. Diese Komponenten stellen den Input-Datei-Namen (bzw. den Output-Dateinamen) der XML-Quell- und der XML-Zieldatei bereit. Aus diesem Grund wurden Sie mit dem Datenelement Datei: <dynamisch> verbunden.

FileNamesAsParameters-MFBAS

FileNamesAsParameters.mfd (MapForce Basic Edition)

Bei den beiden Komponenten InputFileName und OutputFileName handelt es sich um einfache Input-Komponenten im Mapping, sodass sie bei der Ausführung des Mappings als Input-Parameter bereitgestellt werden können. In den folgenden Abschnitten wird beschrieben, wie Sie dies in den folgenden Transformationssprachen bewerkstelligen:

 

XSLT 2.0 mit Hilfe von RaptorXML Server
Built-in (MapForce Server-Ausführungsdatei) mit Hilfe von MapForce Server
Java

 

XSLT 2.0

Wenn Sie Code in XSLT 1.0 oder XSLT 2.0 generieren, werden die Input-Parameter in die Batch-Datei DoTransform.bat geschrieben, um mit RaptorXML Server (siehe Automatisierung mit RaptorXML Server) ausgeführt zu werden. Um eine andere Input- (oder Output-) Datei zu verwenden, können Sie die benötigten Parameter entweder bei Aufruf der Datei DoTransform.bat über die Befehlszeile übergeben oder diese Datei bearbeiten, damit diese die erforderlichen Parameter enthält.

 

So stellen Sie benutzerdefinierte Input-Parameter für die Datei DoTransform.bat zur Verfügung:

 

1.Generieren Sie den XSLT 2.0-Code (Datei | Code generieren in | XSLT 2.0) anhand der Beispieldatei FileNamesAsParameters.mfd.
2.Kopieren Sie die Datei Altova_Hierarchical.xml aus dem Verzeichnis <Dokumente>\Altova\MapForce2019\MapForceExamples\ in das Verzeichnis, in dem Sie XSLT 2.0-Code generiert haben (in diesem Beispiel c:\codegen\examples\xslt2\). Diese Datei dient als benutzerdefinierter Parameter.
3.Bearbeiten Sie DoTransform.bat, sodass diese den benutzerdefinierten Input-Parameter entweder vor oder nach %* enthält (siehe unten markierten Code). Beachten Sie, dass der Parameterwert innerhalb von einfache Anführungszeichen gesetzt wird. Die verfügbaren Input-Parameter werden im Abschnitt rem (Remark) aufgelistet.

 

@echo off

 

RaptorXML xslt --xslt-version=2 --input="MappingMapToAltova_Hierarchical.xslt" --param=InputFileName:'Altova_Hierarchical.xml' %* "MappingMapToAltova_Hierarchical.xslt"

rem --param=InputFileName:

rem --param=OutputFileName:

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

 

 

Wenn Sie die Datei DoTransform.bat ausführen, stellt RaptorXML Server die Transformation unter Verwendung von Altova_Hierarchical.xml als Input-Parameter fertig.

cmd_run_dotransform

 

MapForce Server-Ausführungsdatei

So stellen Sie für eine MapForce Server-Ausführungsdatei benutzerdefinierte Input-Parameter zur Verfügung:

 

1.Kompilieren Sie FileNamesAsParameters.mfd zu einer MapForce Server-Ausführungsdatei (siehe Kompilieren von Mappings zu MapForce Server-Ausführungsdateien ). Wenn Sie dazu aufgefordert werden, speichern Sie die .mfx-Ausführungsdatei in einem Verzeichnis auf Ihrem Rechner (in diesem Beispiel unter c:\codegen\examples\mfx\ ).
2.Kopieren Sie die Datei Altova_Hierarchical.xml aus dem Verzeichnis <Dokumente>\Altova\MapForce2019\MapForceExamples\ in das Verzeichnis, in dem Sie die Datei .mfx gespeichert haben. Diese Datei dient als benutzerdefinierter Parameter für die Mapping-Ausführungsdatei.
3.Führen Sie MapForce Server mit dem folgenden Befehl aus:

 

MapForceServer.exe run "C:\codegen\examples\mfx\FileNamesAsParameters.mfx" -p=InputFileName:"C:\codegen\examples\mfx\Altova_Hierarchical.xml" -p=OutputFileName:"C:\codegen\examples\mfx\OutputFile.xml"

 

In obigen MapForce Server-Befehl sind -p=InputFileName und -p=OutputFileName die Input-Parameter für das Mapping. Sie können als Wert von -OutputFileName jeden beliebigen Dateinamen verwenden, der im Parameter -InputFileName angegebene Dateiname muss jedoch als physische Datei vorhanden sein, da das Mapping sonst fehlschlägt.

 

Anmerkung:Wenn Sie die Meldung "MapForceServer.exe wird nicht als interner oder externer Befehl, Programm oder Batch-Datei erkannt", ändern Sie das aktuelle Verzeichnis in das Verzeichnis, in dem die ausführbare MapForce Server-Datei installiert ist. Damit Sie den Pfad nicht bei jeder Mapping-Ausführung ändern müssen, fügen Sie den Pfad zum Verzeichnis, in dem die ausführbare MapForce Server-Datei installiert ist (z.B. C:\Program Files (x86)\Altova\MapForceServer2019\bin), zur PATH-Umgebungsvariablen Ihres Betriebssystems hinzu.

 

Java

So stellen Sie für eine Java .jar-Applikation einen benutzerdefinierten Input-Parameter zur Verfügung:

 

1.Generieren Sie den Java-Code (Datei | Code generieren in | Java) anhand der Beispieldatei FileNamesAsParameters.mfd.
2.Kompilieren Sie den Java-Code zu einer ausführbaren JAR-Datei (eine Anleitung für Eclipse finden Sie unter Beispiel: Erstellen einer Java-Applikation mit Eclipse und Ant).
3.Kopieren Sie die Datei Altova_Hierarchical.xml aus dem Verzeichnis <Dokumente>\Altova\MapForce2019\MapForceExamples\ in das Verzeichnis, in dem sich die .jar-Datei befindet. Diese Datei dient als der benutzerdefinierte Parameter, der für die Java-Mapping-Applikation bereitgestellt wird.
4.Geben Sie in der Befehlszeile folgenden Befehl ein: java -jar Mapping.jar /InputFileName "InputFile.xml"

 

Wenn Sie bei der Übergabe von Parametern an .jar-Dateien Platzhalterzeichen verwenden, setzen Sie die Platzhalterparameter in Anführungszeichen. Z.B:

 

java -jar Mapping.jar /InputFileName "altova-*.xml"

 

 


© 2019 Altova GmbH