Referenzieren von Java in .mff
In diesem Beispiel wird gezeigt, wie Sie eine Java-Beispielbibliothek erstellen und in einer MapForce Function File (.mff) referenzieren. Diese .mff-Datei kann anschließend als MapForce-Bibliothek importiert werden. Eine Java-Bibliothek in einer .mff-Datei zu referenzieren, ist nur eine der Methoden, um Java-Bibliotheken in MapForce zu importieren. Eine einfachere Alternative wäre der direkte Import von Java .class-Dateien. Nähere Informationen dazu finden Sie unter Beispiel: Import einer benutzerdefinierten Java-Klasse.
Konfigurationsschritte
Um eine C#-Bibliothek in einer .mff-Datei zu referenzieren, gehen Sie vor, wie unten beschrieben.
Schritt 1. Erstellen eines neuen Projekts
Erstellen Sie in der Entwicklungsumgebung Ihrer Wahl (z.B. in Eclipse) ein neues Java-Projekt.
Schritt 2. Hinzufügen des com.mylib-Pakets
Fügen Sie zum Projekt ein neues Paket namens com.mylib hinzu, welches aus einer Klasse namens Greetingsbesteht. Beachten Sie im Codefragment unten, dass die Funktion SayHello als public static definiert wurde.
package com.mylib;
public class Greetings {
public static String SayHello ( boolean isMorning ) {
if( isMorning )
return "Good Morning!";
return "Good Day!";
}
}
Schritt 3. import com.altova.types
Wenn Sie in Ihrem Projekt Unterstützung für spezielle Schematypen wie date, time und duration benötigen, können Sie optional das Paket com.altova.types importieren. Um dieses Paket zu erhalten, generieren Sie Java-Code anhand eines Mappings ohne benutzerdefinierte Funktionen: import com.altova.types.*;.
Schritt 4. Kompilieren Ihrer benutzerdefinierten Bibliothek
Kompilieren Sie Ihre benutzerdefinierte Bibliothek zu einer Klassendatei und fügen Sie sie zum Java Classpath hinzu.
Schritt 5. Erstellen der .mff-Datei und Referenzieren Ihrer Java-Bibliothek
Erstellen Sie mit Hilfe eines XML-Editors eine neue .mff-Datei und validieren Sie diese anhand des Schemas C:\Programme\MapForceLibraries\mff.xsd. Stellen Sie sicher, dass alle Referenzen unter implementation language="java" auf die korrekten Java-Member und die zuvor erstellen Pfade verweisen. Die Zeile function name="SayHello" muss den Funktionsnamen außerdem genau, wie er in Java definiert war, referenzieren, siehe auch Konfigurieren der .mff-Datei.
<?xml version="1.0" encoding="UTF-8"?>
<mapping version="9" library="custom" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="mff.xsd">
<implementations>
<implementation language="java">
<setting name="package" value="com.mylib"/>
<setting name="class" value="Greetings"/>
</implementation>
</implementations>
<group name="greetings">
<component name="sayhello">
<sources>
<datapoint name="ismorning" type="xs:boolean"/>
</sources>
<targets>
<datapoint name="result" type="xs:string"/>
</targets>
<implementations>
<implementation language="java">
<function name="SayHello"/>
</implementation>
</implementations>
<description>
<short>result = sayhello(ismorning)</short>
<long>Returns "Good morning" or "Good day", depending on the input parameter.</long>
</description>
</component>
</group>
</mapping>
Schritt 6. Importieren der .mff-Datei als Bibliothek
Nachdem Sie Ihre benutzerdefinierte Bibliothek in der .mff-Datei referenziert haben, können Sie die .mff-Datei nun als Bibliothek in MapForce importieren. Nähere Informationen finden Sie unter Importieren der .mff-Dateien.