Get-EdiMessageLines

EulandaXtools — Funktionsreferenz

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