Beispiel: Zählen von Datenbanktabellenzeilen
Das in diesem Beispiel beschriebene Mapping finden Sie unter dem Namen DB_UserList.mfd im Ordner <Dokumente>\Altova\MapForce2025\MapForceExamples\. In diesem Mapping werden Benutzerdatensätze aus einer Datenbanktabelle namens "Users" extrahiert und in eine XML-Datei geschrieben. Die Datenbankspalte "Username" enthält den Vor- als Zunamen einer Person (z.B. "Vernon Callaby"). Dieses Mapping hat folgende Ziele:
1.Für jeden Datensatz in der Tabelle "Users" soll ein neues Person-Element in der XML-Datei erstellt werden.
2.Der aus dem Datenbankfeld "Username" extrahierte Wert soll in der XML-Datei auf zwei separate Felder aufgeteilt werden ("First" und "Last").
3.Für jeden Datensatz soll die fortlaufende Nummer aus der Gesamtanzahl aller Datensätze in der Datenbank extrahiert werden (z.B. "Datensatz 1 von 4") und in das Datenelement Details geschrieben werden.
DB_UserList.mfd
Wie oben gezeigt, wird eine Verbindung zwischen der Quelltabelle "Users" und dem Element Person der XML-Zieldatei gezogen. Auf diese Art wird für jeden Datensatz in der Quelltabelle ein neues Person-Element in der Zielkomponente erstellt (erster Punkt der Mapping-Ziele).
Der Wert des Felds "Username" wird durch die Funktionen substring-before und substring-after bereitgestellt. Diese beiden Funktionen extrahieren den Text vor und nach dem Leerzeichen (" "). Damit wird der zweite Punkt der Mapping-Ziele erfüllt.
Zur Erreichung des dritten Ziels wird die count-Funktion verwendet. Das Ergebnis der count-Funktion wird an eine Variable übergeben. Mit der Variablen wird sichergestellt, dass das Ergebnis im Mapping gespeichert wird und zur Verfügung steht, wenn die "Details"-Elemente der einzelnen Personen in die XML-Zieldatei geschrieben werden. Beachten Sie, dass Datenbankdatensätze aus Gründen der Effizienz nur einmal gezählt werden sollten, daher ist der Geltungsbereich der Variablen auf compute-when=once gesetzt (siehe Ändern von Kontext und Geltungsbereich von Variablen)