Frage

Ich habe ein Flat-File-Schema, das einen Header und Detail Records hat. Es sieht etwa so aus:

HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***

Ich brauche zwei Leerzeilen am Ende der Nachricht anzuhängen. Gerade jetzt, wenn ich mehrere Datensätze habe ich erhalten die folgende Ausgabe:

HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***
HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***

Was will ich sehen, geschehen ist so etwas wie folgt aus:

HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***


HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***

Ich kann eine benutzerdefinierte Pipelinekomponente bauen, dies zu tun, aber ich frage mich, ob es ein einfacherer Weg zu bekommen, was ich brauche ist?

War es hilfreich?

Lösung

Es soll möglich sein, zu erreichen, was Sie wollen, indem Sie die Trennzeichen Eigenschaften des Flat-File-Schema verwendet wird.

Auf der Basis Ihrer Beispieldatei erstellt ich ein Schema mit der folgenden Satzstruktur:

<Schema>    
  <Root>    
    <HDRGroup>    
      <HDR>    
      <LIN>    

Wenn Sie auf den Wurzelknoten Ihres Schemas klicken, sollten Sie eine Liste der Eigenschaften für diesen Stammknoten sehen. Ein Abschnitt Eigenschaften hat den Header ‚Flat File‘. In diesem flachen Abschnitt Datei die ersten drei Eigenschaften, die Sie sind Child Trennzeichen, Kind Trennzeichentyp und Kinder Auftrag einstellen können.

Hier können Sie das Schema konfigurieren Sie die Leerzeilen erstellen (in diesem Fall CR LF, aber Sie können verschiedene Dinge einstellen, wie Sie benötigen) Für Ihr Beispiel I nachfolgende Einstellungen vor:

Child Delimiter: 0x0D 0x0A 0x0D 0x0A    
Child Delimiter Type: Hexadecimal    
Child Order: Infix

0x0D 0x0A ist eine CRLF, so dass die oben einfach zwei Leerzeilen erzeugt, zwischen jedem Kind des Wurzelknotens Infix.

Die dann Funktionen, um sicherzustellen, dass jeder Header und seine Linien zusammen gehalten wird. Für seine Begrenzungseinstellungen I gesetzt:

Child Delimiter: 0x0D 0x0A    
Child Delimiter Type: Hexadecimal    
Child Order: Postfix

Das und Datensätze enthalten dann die eigentliche Schema-Definition für Ihre Nachricht Zeilen, die mit einem Sternchen begrenzt.

Dieses Schema arbeitet für etwas, das sieht für mich wie das, was Sie gefragt haben - diese Art von Flatfile-Schema und wie es eine Datei analysiert ist in hohem Maße abhängig von den kleinen Details, aber wie, welche Art von Zeilenumbrüchen sind und wenn es bricht Zeile am Ende der Datei.

Die princples die Trennzeichen der Verwendung stehen wird, werden Sie wahrscheinlich finden Sie mit den Einstellungen basteln müssen.

Andere Tipps

Für alle, die sich interessiert, habe ich endlich nachgegeben und schrieb dies eine benutzerdefinierte Pipelinekomponente zu erreichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top