Altova MapForce 2024 Enterprise Edition

Generiert Ganzzahlen in einer Sequenz (z.B. 1,2,3,4,...). Mit Hilfe von Parametern können Sie eine Anfangszahl (Ganzzahl), den Inkrementierungswert und andere Optionen angeben.

mf-func-auto-number

Die genaue Reihenfolge, in der Funktionen vom generierten Mapping-Code aufgerufen werden, ist nicht definiert. MapForce kann die berechneten Ergebnisse zur Wiederverwendung im Cache aufbewahren oder Ausdrücke in jeder beliebigen Reihenfolge auswerten. Im Gegensatz zu anderen Funktionen gibt die Funktion auto-number ein anderes Ergebnis zurück, wenn sie mehrmals mit denselben Input-Parametern aufgerufen wird. Es wird daher dringend empfohlen, die Funktion auto-number mit Vorsicht zu verwenden. In einigen Fällen erzielen Sie mit der Funktion position dasselbe Ergebnis.

 

Sprachen

Built-in, C++, C#, Java, XQuery, XSLT 1.0, XSLT 2.0, XSLT 3.0..

 

Parameter

Argument

Beschreibung

global-id

Optionaler Parameter. Wenn ein Mapping mehrere auto-number-Funktionen enthält, generieren diese Sequenzen mit doppelt vorhandenen Zahlen. Damit alle auto-number-Funktionen voneinander wissen und dadurch keine Sequenzen mit doppelten Werten generieren, verbinden Sie einen gemeinsamen String (z.B. eine Konstante) mit dem global-id-Input jeder auto-number-Funktion.

start-with

Optionaler Parameter. Definiert die Ganzzahl, mit der die generierte Sequenz beginnt. Der Standardwert ist 1.

increment

Optionaler Parameter. Definiert den Inkrementierungswert. Der Standardwert ist 1.

restart-on-change

Optionaler Parameter. Setzt den Zähler auf start-with zurück, wenn sich der Inhalt des damit verbundenen Datenelements ändert.

 

Beispiel

Das folgende Mapping ist eine Variante des im Beispiel: Ändern des Parent-Kontexts beschriebenen Mappings ParentContext.mfd.

 

Ziel des unten gezeigten Mappings ist es, mehrere XML-Dateien zu generieren, eine für jede Abteilung (department) in der XML-Quelldatei. Es gibt einige Abteilungen mit demselben Namen (da diese zu unterschiedlichen übergeordneten Büros gehören). Aus diesem Grund muss jeder generierte Dateiname mit einer sequenziellen Nummerierung beginnen, z.B. 1-Administration.xml, 2-Marketing.xml, usw.

mf-func-auto-number-example

Um das gewünschte Mapping-Resultat zu erhalten, wurde die Funktion auto-number verwendet. Das Ergebnis dieser Funktion wird mit Hilfe eines Bindestrichs, gefolgt vom Abteilungsnamen, gefolgt vom String ".xml" verkettet, um für die generierte Datei einen eindeutigen Namen zu erstellen. Beachten Sie, dass auf den dritten Parameter der concat-Funktion (den Abteilungsnamen) ein Prioritätskontext angewendet wurde. Dadurch wird die Funktion auto-number im Kontext jeder einzelnen Abteilung aufgerufen und erzeugt die erforderlichen Sequenzwerte. Würde kein Prioritätskontext verwendet, würde die Funktion auto-number (in Abwesenheit irgendeines Kontexts) immer wieder die Zahl 1 generieren, wodurch doppelt vorhandene Dateinamen generiert würden.

© 2017-2023 Altova GmbH