none
Debatching eingehender Flatfile Nachrichten mit unterschiedlichen Belegarten

    Allgemeine Diskussion

  • Hallo zusammen,

    Mal ein paar Gedanken zum Thema Zerlegung eingehender Transfers mittels
    Flatfile Parser bei Übermittlung von Paketen mit unterschiedlichen
    Belegarten:

    Beispielsweise ist folgender Transfer gegeben (z. B. als EMail oder
    Flatfile):

    RECHNUNG1
    POS1
    POS2
    POS3
    AUFTRAGSBESTAETIGUNG1
    POS1
    POS2
    POS3
    RECHNUNG2
    POS1
    POS2
    POS3

    D. h. unterschiedliche Belegarten in einem Dokument übermittelt. Ziel ist,
    ein eingehendes Debatching in Einzelbelege durchzuführen.

    Bei XML wäre das einfach zu machen: einfach einen XML Envelope definieren,
    in dem die eingehenden Dokumente eingehängt sind. Diese Herangehensweise
    scheitert jedoch beim Flatfile Disassembler, da er zwar intern auch den XML
    Disassembler verwendet, diesesn jedoch zu stringend parametrisiert (Beim
    Zerlegen in Einzeldokumente wird angemerkt dass die eingegangenen Dokumente
    nicht erwartet sind).

    Ein Herangehensmodell:

    1. Definition von Flatfile Schemata auf Basis Einzelbelegebene (also ein
    Schema für AUFTRAGSBESTAETIGUNG, eines für RECHNUNG).
    2. Definition eines "Dokument" Schemas. Es beinhaltet ein Root Element
    "Document", der eine Choice Group mit Group Max Occurs = unbound
    untergehängt ist. In der Choice werden nun die Root Elemente der
    Einzelbelege referenziert. Damit definiert man logisch ein Flatfile, welches
    erweiterbar Einzelbelge beinhalten kann.
    3. Definition eines "Envelope" Schemas. Es gleicht dem vorhergehenden, hat
    jedoch einen anderen Root Element Namen (jetzt "Envelope", gleicher
    Namespace) und ist als XML Envelope markiert mit der Choice Group als Body
    XPath.
    3. Custom Disassembler Pipeline Komponente, welche den Flatfile Disassmbler
    nutzt. Dabei wird zuerst das eingehende Dokument mittels des Dokument
    Schemas geparst, dann das Root Element in "Envelope" umbenannt und
    anschliessend der XML Disassembler für die Zerlegung der Übermittlung
    verwendet.

    Hoffe damit einen Denkanstoss gegeben zu haben!

    Grüße

    Jörg Fischer




    Jörg Fischer
    Mittwoch, 14. April 2010 10:40
    Moderator