Beispiel: Mappen von Textdateien mit fester Länge auf Datenbanken

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

Startseite >  Datenquellen und -ziele > CSV- und Textdateien >

Beispiel: Mappen von Textdateien mit fester Länge auf Datenbanken

In diesem Beispiel wird eine Datenmapping-Operation zwischen einer Textdatei mit Feldern fester Länger (FLF-Datei) und einer Microsoft Access-Datenbank beschrieben. Die in diesem Beispiel verwendeten Dateien stehen im Ordner <Dokumente>\Altova\MapForce2019\MapForceExamples\ zur Verfügung. Sowohl in der Text-Quelldatei als auch in der Zieldatenbank ist eine Liste von Mitarbeitern gespeichert. Die Datensätze in der Quelldatei sind implizit durch Ihre Zeichenlänge getrennt:

 

Feldposition und -name

Größe (in Zeichen)

Field 1 (First name)

8

Field 2 (Last name)

10

Field 3 (Phone extension)

3

Field 4 (Email)

25

Field 5 (Position)

25

 

In diesem Mapping soll die Durchwahl (phone extension) der einzelnen Mitarbeiter in der Datenbank durch diejenige in der Quelldatei aktualisiert werden, wobei zu jeder Durchwahl das Präfix "100" hinzugefügt werden soll. Gehen Sie vor, wie unten beschrieben.

 

Schritt 1: Einfügen und Konfigurieren der Textkomponente

1.Wählen Sie die Menüoption Einfügen | Textdatei oder klicken Sie auf das Symbol "Textdatei einfügen" ic-text. Daraufhin wird das Dialogfeld "Textkomponente einfügen" geöffnet.

mf_flf_01

Wählen Sie die Option Einfache Verarbeitung....verwenden und klicken Sie auf Weiter.

2.Klicken Sie auf die Schaltfläche Eingabedatei und wählen Sie die Datei <Dokumente>\Altova\MapForce2019\MapForceExamples\Altova-FLF.txt aus. Sie werden sehen, dass die Datei aus einem einzigen String besteht, der Füllzeichen vom Typ # enthält.

mf_flf_02

3.Aktivieren Sie die Option Feste Länge.

mf_flf_03

4.Deaktivieren Sie das Kontrollkästchen Datensatz-Trennzeichen als vorhanden annehmen.

mf_flf_04

5.Die drei gelb markierten Zeilen können bearbeitet werden. Sie können hier i) den Feldnamen, ii) den Datentyp und iii) die Feldgröße angeben. Geben Sie 8 als die neue Feldgröße ein und drücken Sie die Eingabetaste. In der ersten Spalte, die nun als 8 Zeichen breit definiert wurde, sind nun mehr Daten zu sehen.

mf_flf_05

6.Klicken Sie auf Feld anhängen, um ein neues Feld hinzuzufügen und definieren Sie als Länge für das zweite Feld 10 Zeichen.

mf_flf_06

7.Erstellen Sie auf diese Art und Weise drei weitere Felder mit der folgenden Länge: 3, 25 und 25 Zeichen und ändern Sie die Feldüberschriften in First, Last, Tel.-Ext, Email, Title, um das Mappen zu erleichtern. Die Vorschau sieht nun folgendermaßen aus:

mf_flf_07

8.Wählen Sie in der Gruppe "Felder mit fester Länge - Einstellungen" die Einstellung "Benutzerdef." aus und geben Sie die Raute (#) als Zeichen ein. Dadurch behandelt MapForce das Raute-Zeichen als Füllzeichen.

mf_flf_08

9.Klicken Sie auf OK.

mf_flf_09

10.Klicken Sie auf Komponentennamen ändern. Daraufhin wird die Textdateikomponente im Mapping-Fenster angezeigt. Sie können nun Daten von und auf diese Komponente mappen.

 

mf_flf_10

 

Schritt 2: Einfügen der Datenbankkomponente

1.Wählen Sie den Menübefehl Einfügen | Datenbank, wählen Sie Microsoft Access aus und klicken Sie auf Weiter.
2.Wählen Sie die Datenbank altova.mdb aus dem Ordner <Dokumente>\Altova\MapForce2019\MapForceExamples\ aus und klicken Sie auf Verbinden.
3.Wählen Sie die Tabelle Person aus und klicken Sie auf OK.

mf_flf_11

 

Schritt 3: Erstellen des Mappings

1.Ziehen Sie die core | concat-Funktion aus dem Fenster "Bibliotheken" in das Mapping.
2.Wählen Sie den Menübefehl Einfügen | Konstante, wählen Sie als Typ "Zahl" aus und gebe Sie als Wert "100" ein. In dieser Konstante wird das Präfix für die neue Telefondurchwahl gespeichert.

mf_flf_12

3.Erstellen Sie das Mapping, wie unten gezeigt.

mf_flf_13

4.Klicken Sie in der Datenbankkomponente auf die Tabellenaktionsschaltfläche btn_dbcomp_action_in neben Person.
5.Wählen Sie neben Aktion an Datensatz, die Option Aktualisieren, wenn und stellen Sie sicher, dass die Aktion für die Felder First und Last auf gleich gesetzt ist. Dadurch aktualisiert MapForce die Tabelle "Person" nur, wenn der Vor- und Nachname (First und Last) in der Quelldatei mit dem entsprechenden Datenbankfeld übereinstimmt. Wenn diese Bedingung zutrifft, wird die durch das Mapping definierte Aktion ausgeführt. In diesem Fall wird der Telefondurchwahl die Zahl 100 vorangestellt und in das Feld PhoneExt der Tabelle "Person" kopiert.

mf_flf_14

 

Schritt 4: Ausführen des Mappings

Um die SQL-Anweisung (für die Vorschau in MapForce) zu generieren, klicken Sie auf das Register "Ausgabe". Um die SQL-Anweisungen an der Datenbank auszuführen, klicken Sie auf die Schaltfläche "SQL-Script ausführen" ic-start-sel.


© 2019 Altova GmbH