Legen Sie die Eigenschaft
Datensatzerkennung und andere Eigenschaften auf der
Registerkarte Datensätze und Elemente des Knotens fest, um Dateien in verschiedenen
Formaten zu lesen.
Die folgenden Beispiele basieren auf den Beispielen in den Abschnitten
Lokale Datei als Eingabe für Nachrichtenfluss verwenden und
Datei eines fernen FTP oder SFTP-Verzeichnisses lesen.
Für jedes Beispiel werden die zu verwendende Eingabedatei, die Einstellungen der Eigenschaften und das erwartete Ergebnis beschrieben.
Die Beispiele für den
FileInput-Knoten gelten mit folgenden Ausnahmen auch für den
FTEInput-Knoten:
- Der FTEInput-Knoten besitzt keine Registerkarte 'Grundeinstellungen'.
- Zur Übertragung von Dateien an einen FTEInput-Knoten werden weder FTP noch SFTP verwendet.
Die Beispiele gelten mit folgenden Ausnahmen auch für den
FileRead-Knoten:
- Der FileRead-Knoten gibt nur einen Datensatz aus der Datei weiter. Dieser Datensatz ist standardmäßig der erste Datensatz in der Datei. Der FileRead-Knoten kann für die Weitergabe eines bestimmten Datensatzes konfiguriert werden. Weitere Informationen hierzu finden Sie unter Weiterleitung und Aufbereitung von Nachrichten abhängig vom Inhalt einer Datei.
- Zur Übertragung von Dateien an einen FileRead-Knoten werden weder FTP noch SFTP verwendet.
Beispiel 1. Datensätze sind durch ein DOS- oder UNIX-Zeilenende getrennt
Folgende Eigenschaften müssen eingestellt werden:
Registerkarte |
Eigenschaft |
Wert |
Datensätze und Elemente |
Datensatzerkennung |
Mit Begrenzer |
Begrenzer |
DOS- oder UNIX-Linienende |
Begrenzertyp |
Postfix |
Der
FileInput-Knoten erkennt Datensätze auf Basis von DOS- oder UNIX-Zeilenendezeichen und erstellt für jeden gefundenen Datensatz eine eigene Nachricht.
Als Ergebnis werden die drei folgenden Nachrichten weitergeleitet:
Die DOS- bzw. UNIX-Zeilenenden sind in den weitergeleiteten Nachrichten nicht enthalten.
Beispiel 2. Datensätze sind durch einen angepassten Begrenzer getrennt
Erstellen Sie eine Eingabedatei mit dem Namen
test_input2.xml und folgendem Inhalt:
<Message>test01</Message>,<Message>test001</Message>,<Message>test0001</Message>
Am Ende dieser Datei darf kein Zeilenbegrenzer stehen. Der XMLNSC-Parser würde diesen ohnehin ignorieren.
Der Hexadezimal-Code X'2C' stellt in ASCII ein Komma dar. Auf
anderen Systemen müssen Sie einen anderen Hexadezimalcode verwenden.
Der
FileInput-Knoten erkennt das Komma und verwendet es zum
Trennen von Datensätzen. Da die Eigenschaft Begrenzertyp
auf Infix gesetzt ist, muss am Ende der Datei kein
Komma stehen.
Als Ergebnis werden die drei folgenden Nachrichten weitergeleitet:
- Nachricht 1:
<Message>test01</Message>
- Nachricht 2:
<Message>test001</Message>
- Nachricht 3:
<Message>test0001</Message>
Das Komma
ist in den weitergeleiteten Nachrichten nicht enthalten. Die Nachrichtenhauptteile dieses Beispiels
enthalten keine Kommas. Enthielten sie Kommas, würden die Datensätze an diesen Stellen getrennt.
Dies würde wiederum bedeuten, dass an den verbleibenden Teil des Nachrichtenflusses falsch
gebildete Nachrichten weitergeleitet würden.
Beispiel 3. Datensätze sind durch eine feste Byteanzahl getrennt
Erstellen Sie eine Eingabedatei mit dem Namen
test_input3.xml und folgendem Inhalt:
<Message>123456789</Message><Message>abcdefghi</Message><Message>rstuvwxyz</Message>
Am Ende dieser Datei darf kein Zeilenbegrenzer stehen.
Der
FileInput-Knoten unterteilt die Eingabedatei in
Datensätze mit jeweils 28 Bytes.
Als Ergebnis werden die drei folgenden Nachrichten weitergeleitet:
- Nachricht 1:
<Message>123456789</Message>
- Nachricht 2:
<Message>abcdefghi</Message>
- Nachricht 3:
<Message>rstuvwxyz</Message>
Jede Nachricht ist 28 Byte lang. Wenn die Datei abschließende Bytes enthält, zum Beispiel ein Rücklauf-/Zeilenvorschub-Paar, wird
eine weitere Nachricht, die diese Bytes enthält, weitergeleitet. Die abschließenden Bytes werden unter Umständen von der Nachrichtendomäne, der Nachrichtengruppe und dem Nachrichtentyp, die für die Analyse der Nachricht
verwendet werden, nicht erkannt.
Beispiel 4. Datensätze sind vollständige Dateien
Erstellen Sie eine
Eingabedatei mit dem Namen
test_input4.xml und folgendem Inhalt:
<Message>Textzeichenfolge von beliebiger Länge, auch mit Zeilenbegrenzern, solange am Ende
dieser Tag steht.</Message>
Am Ende dieser Datei darf kein Zeilenbegrenzer stehen. Falls doch, hätte dieser keine Wirkung.
Der
FileInput-Knoten teilt diese Datei nicht in mehrere
Datensätze auf. Er leitet den gesamten Inhalt der Datei als einzelnen Datensatz zur Analyse an die im
Knoten festgelegte Nachrichtendomäne, die Nachrichtengruppe und den Nachrichtentyp weiter. In diesem Beispiel werden der XMLNSC-Parser und die Nachrichtengruppe
xml1
verwendet, sodass die Nachricht erkannt wird.
Als Ergebnis wird die folgende Nachricht weitergeleitet:
Es sind abschließende Bytes (z. B. Zeilenbegrenzer) enthalten.
Beispiel 5. Datensätze werden von dem in der Eigenschaft
Nachrichtendomäne angegebenen Parser als separate
Nachrichten erkannt
Erstellen Sie eine Eingabedatei mit dem Namen
test_input5.xml und folgendem Inhalt:
<Message>Textzeichenfolge von beliebiger Länge</Message><Message>und eine weitere Textzeichenfolge</Message>
<Message>und noch eine Textzeichenfolge in jeweils einer neuen Zeile</Message>
An den Zeilenenden und am Ende der Datei dürfen Zeilenbegrenzer eingegeben werden.
Der
FileInput-Knoten überlässt es dem Parser, die Datensatzgrenzen zu ermitteln. Die Nachrichtengruppe
xml1 der XMLNSC-Domäne muss bei diesem Beispiel das vollständige
<Message>-XML-Format erkennen. XMLNSC übernimmt nachfolgende Leerzeichen (z. B. Zeilenbegrenzer).
Als Ergebnis werden die drei folgenden Nachrichten weitergeleitet:
- Nachricht 1:
<Message>Textzeichenfolge von beliebiger Länge</Message>
- Nachricht 2:
<Message>und eine weitere Textzeichenfolge</Message>
- Nachricht 3:
<Message>und noch eine Textzeichenfolge in jeweils einer neuen Zeile</Message>
In die Nachrichten sind abschließende Leerzeichen (z. B. Zeilenbegrenzer) eingeschlossen.