Get Edi Message Lines
Zuletzt geändert: 14.03.2026 05:56

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.