Get-EdiMessageLines #
ÜBERSICHT #
Liest eine EDIFACT-Datei zeichen- und segmentgenau ein, unabhängig von Encoding und Zeilenumbrüchen.
SYNTAX #
Get-EdiMessageLines [-Path] <string> [-KeepControlSegments] [<CommonParameters>]
BESCHREIBUNG #
Diese Funktion analysiert eine EDIFACT-Datei, erkennt automatisch das Zeichenencoding (UTF-8 mit/ohne BOM, Windows-1252 als Fallback) und bereitet die Datei für die strukturierte Verarbeitung vor. Dabei spielt es keine Rolle, ob die EDIFACT-Datei klassische Zeilenumbrüche (CR, LF, CRLF) verwendet oder einzeilig mit Apostroph-Segmenttrenner geliefert wird.
Die Funktion erzeugt ein Array von Segment-Strings, wobei jedes Element genau einem EDIFACT-Segment entspricht – inklusive abschließendem Apostroph. Segmenttrenner im Dateninhalt (z. B. ?') werden korrekt erkannt und maskiert.
Standardmäßig werden Steuersegmente wie UNA, UNB, UNZ ausgefiltert, da diese zumeist nur für Transportzwecke benötigt werden. Alternativ können sie mit dem Schalter -KeepControlSegments erhalten bleiben.
PARAMETER #
-Path #
Type: string
Pfad zur EDIFACT-Datei, die eingelesen werden soll. Die Datei wird als Byte-Array geladen und dekodiert.
-KeepControlSegments #
Type: switch
Wenn gesetzt, bleiben die Steuersegmente UNA, UNB, UNZ im Ausgabe-Array enthalten. Standardmäßig werden diese entfernt.
AUSGABEN #
string[]
Array von Segmentstrings, z. B. “NAD+BY+123456789::92'”
BEISPIELE #
# Liest die Datei zeilenunabhängig ein und gibt ein Segment-Array zurück (ohne UNA/UNB/UNZ).
$segments = Get-EdiMessageLines -Path 'C:\edi\rechnung.edi'
# Gibt alle Segmente inklusive Steuerköpfen zurück, z. B. auch "UNB+..."
$segments = Get-EdiMessageLines -Path 'C:\edi\auftrag.edi' -KeepControlSegments
HINWEISE #
- Die Funktion wird u. a. vom EDIFACT-Entpacker und vom Parser-Modul verwendet.
- Sie stellt sicher, dass alle Zeichenfolgen segmentweise analysierbar sind – unabhängig von Zeilenlayout oder Encoding.
- Ideal auch für eigene Prüfungen, Debugging, Logging oder Vorvalidierung.