Get Invoice Attachment
Zuletzt geändert: 19.10.2026 17:10

Übersicht

Get-InvoiceAttachment #

ÜBERSICHT #

Sammelt die Anlagen für eine E-Rechnung (BG-24) aus Dateien oder einem Ordner und prüft Typ und Größe.

SYNTAX #

Get-InvoiceAttachment [-Path] <object[]> [-Folder] <string>

BESCHREIBUNG #

Eine XRechnung kann Dateien eingebettet mitführen (BG-24, rechnungs- begründende Unterlagen wie Aufmaß oder Stundenbericht). Diese Funktion liefert die Liste, die ‘Export-InvoiceXml’ und ‘Export-Invoice’ dafür brauchen: je Datei Pfad, Anzeigename, MIME-Typ, Kennung (BT-122) und Beschreibung (BT-123).

Mit ‘-Folder’ nimmt sie alle Dateien des Ordners, nicht rekursiv, sortiert nach Name; versteckte und Systemdateien (Thumbs.db, desktop.ini) übergeht sie. Fehlt der Ordner oder ist er leer, kommt eine leere Liste zurück, kein Fehler. Mit ‘-Path’ nimmt sie die angegebenen Einträge in der angegebenen Reihenfolge.

Die Prüfung bricht ab (CN 19.10.2026), damit der Anwender den Fehler am Bildschirm sieht und den Ordner aufräumt:

  • Dateiendung nicht in der Codeliste zu BT-125-1 (PDF, PNG, JPEG, CSV, XLSX, ODS). Maßgeblich ist die Endung des Anzeigenamens.
  • Summe der Rohdaten über 15 MB. Base64 macht daraus rund 20 MB, die Mail bleibt unter den 22 MB der hessischen Rechnungsannahme.
  • Zwei Anlagen gleichen Namens (ohne Groß- und Kleinschreibung), weil der Anzeigename die Kennung BT-122 ist.

Kennung ist der Anzeigename, Beschreibung ist die mitgegebene Description oder, wenn keine da ist, der Anzeigename ohne Endung. In der Klassik steuert der Anwender so über den Dateinamen, was der Empfänger in seiner Anlagenliste sieht (“Aufmaß Los 3”, “Stundenbericht KW 40”); die X-Suite gibt Titel aus ihrer Ablage mit. Die Norm kennt keinen Typcode für die Art der Anlage, der Typ 916 ist fest.

PARAMETER #

-Path #

Type: object[]

Eine oder mehrere Anlagen. Jeder Eintrag ist ein Dateipfad, ein FileInfo-Objekt (aus Get-ChildItem) oder eine Hashtable mit den Schlüsseln Path (Pflicht), FileName (Anzeigename, Standard ist der Name der Datei) und Description (Beschreibung BT-123, Standard ist der Anzeigename ohne Endung). Die Hashtable ist der Weg für Aufrufer, die Bytes aus einer Ablage in eine Arbeitsdatei schreiben und Titel und Namen aus der Datenbank kennen.

-Folder #

Type: string

Ein Ordner, dessen Dateien die Anlagen sind. In der Klassik ist das der Unterordner ‘Annex’ im DMS-Ordner der Rechnung.

AUSGABEN #

hashtable[]

Je Anlage: Path, FileName, MimeType, Reference, Description, Length. Leeres Array, wenn es nichts einzubetten gibt. Die Einträge lassen sich unverändert wieder an ‘-Path’ geben.

BEISPIELE #

# Alle Anlagen aus dem Annex-Ordner einer Rechnung
$items = Get-InvoiceAttachment -Folder 'C:\DMS\Adresse\13383\Rechnung\20260852\Annex'
$items | ForEach-Object { $_['FileName'] }
# Zwei Dateien ausdrücklich, eine mit eigener Beschreibung
Get-InvoiceAttachment -Path 'C:\Temp\Aufmass.pdf', @{ Path = 'C:\Temp\x1.bin'; FileName = 'Stundenbericht.pdf'; Description = 'Stundenbericht KW 40' }

HINWEISE #

Entwurf und Entscheidungen: docs/internal/einvoice-attachments.md. Die Tabelle der Endungen und die Grenze liegen in ‘Get-InvoiceAttachmentConstants’.