Verwenden von FlexText als Zielkomponente

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

Startseite >  Datenquellen und -ziele > MapForce FlexText >

Verwenden von FlexText als Zielkomponente

Hauptsächlich werden FlexText-Komponenten verwendet, um Textdateien zu reduzieren oder Abschnitte daraus herauszutrennen und die relevanten Einträge der FlexText Komponente auf andere Zielkomponenten zu mappen. FlexText kann jedoch auch als Zielkomponente verwendet werden, um separate Dateien zu einer einzigen Datei zusammenzusetzen bzw. neu zusammenzusetzen. Oft sind jedoch einige Versuche erforderlich, um das gewünschte Ergebnis zu erzielen.

 

Wenn Sie eine FlexText Komponente als Zielkomponente verwenden, werden die zuvor darin definierten Operationen umgekehrt. Anstatt eine Datei in verschiedene Unterabschnitte aufzuteilen, wird sie zu einer einzigen Datei zusammengesetzt bzw. erneut zusammengesetzt.

 

Im Allgemeinen werden die einzelnen in der FlexText Vorlage definierten Operationen (von unten nach oben) umgekehrt, wenn sie als Ziel verwendet werden:

 

eine Trennung wird zu einer Zusammenführung, so wird z.B. ein Mapping auf wiederholt durch "," getrennte Dateien zu einer Zusammenführung von Datenelementen, die durch "," getrennt sind.
aus "Speichern" wird "Laden"
aus "Aufteilen" wird "Wähle die erste Übereinstimmung"

 

Beachten Sie beim Verwenden von FlexText als Zielkomponente die folgenden Punkte:

 

Sobald eine Verbindung zwischen einer Datenquell-Komponente und einem der Input-Datenelemente einer FlexText Komponente hergestellt wurde, wird die Datenquelle der FlexText Komponente ignoriert. Vorrang haben nun die Daten aus der neu gemappten Quellkomponente.
Wenn Text auf einen "Speichern als..."-Container gemappt wird (Als CSV und FLF speichern), wird das Trennzeichen beibehalten. Es kann jedoch vorkommen, dass Text abgeschnitten wird, wenn in einem Node oberhalb des "Speichern als..." Node eine Trennung mit fester Länge vorkommt.
Bei Trennungen mit fester Breite wird der linke/obere Abschnitt auf die vordefinierte Länge abgeschnitten, wenn Trennbeginn=Anfang, bzw. der rechte/untere Abschnitt bei Trennbeginn=Ende. Der abgeschnittene Abschnitt entspricht der in Zeichen definierten Länge. Wenn der Text zu kurz ist, werden Leerzeichen als Füllzeichen eingefügt.
FlexText würde normalerweise Trennzeichen (bzw. bei Trennungen mit fester Länge Leerzeichen) zwischen den Elementen einer Trennungsoperation einfügen. Dies ist allerdings bei Trennungen mit der Operation 'getrennt (zeilenbasiert)' nicht der Fall. Die Operation 'getrennt (zeilenbasiert)' kann nicht wieder vollständig rückgängig gemacht werden. Der "getrennte" Text kann an jeder beliebigen Stelle in der ersten Zeile vorkommen und ist im Text inkludiert, daher kann der Text durch einen automatischen Vorgang nicht zuverlässig hinzugefügt werden.
omit "getrennt (zeilenbasiert)" wird kein Trennzeichen zur ersten Zeile hinzugefügt, wenn es fehlt.
omit "getrennt (beliebig)" wird ein Trennzeichen zwischen zwei Abschnitten hinzugefügt.
Die Operation "Aufteilen" kann - außer in einfachen Fällen - nicht auf sinnvolle Weise umgekehrt werden. Dabei werden die Verzweigungen nach der ersten Verzweigung durchsucht, die Daten enthält, und diese Daten werden verwendet/einfügt.

Nur die erste Verbindung einer Aufteilungsoperation wird gemappt. Um Daten in die restlichen "Aufteilen"-Container zu transferieren, müssen Filter für die restlichen Konnektoren definiert werden und das übergeordnete Datenelement der Operation "Aufteilen" muss dupliziert werden, sodass jedes "Aufteilen"-Datenelement ein einziges Datenelement zurückgibt, welches anschließend in ein wiederholtes "Trenn"-Datenelement eingespeist wird, um alle Elemente zusammenzuführen.

Wenn auf einen Subeintrag eines einzigen Trenn-Containers gemappt wird, werden alle Mapping-Ergebnisse mit Ausnahme des letzten Datenelements verworfen. Nur ein einziges Ergebnis wird beibehalten, selbst wenn mehrere Ergebnisse generiert wurden.

 

 

Die folgende Analogie zum XML-Schema Content Model zeigt, wie  FlexText sich verhält, wenn es als Zielkomponente verwendet wird:

 

eine wiederholte Trennung ist ein wiederholbares Element.
eine einzige Trennung bildet Teil einer 'sequence' Content Model-Gruppe.
Bei einer Aufteilung wird eine 'choice' Content Model-Gruppe gebildet, wobei es sich bei jedem Fall um ein mögliches Subelement handelt.
Mit "Speichern" wird ein Element vom Typ simpleType erstellt.

 


© 2019 Altova GmbH