BR-54EN 16931

BR-54: Artikel-Attribut ohne Name oder Wert

Jedes Artikel-Attribut (BG-32) braucht beides: einen Namen (BT-160) und einen Wert (BT-161). Halb gefüllte Attribute wie „Farbe:“ ohne Angabe lehnt der Validator ab.

Regeltext im Prüfregelwerk

Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161).

BG-32BT-160BT-161

Artikel-Attribute sind Name-Wert-Paare wie „Farbe: verzinkt" oder „Länge: 120 mm". Die Regel schlägt an, wenn eines der beiden Enden fehlt.

Was die Regel prüft

Die Gruppe BG-32 (Item attributes) beschreibt Eigenschaften eines Rechnungsartikels. BG steht für Business Group, ein Feldbündel der Norm; BT für Business Term, das einzelne Feld. Jede solche Gruppe muss vollständig sein: ein Attributname (BT-160) und ein Attributwert (BT-161). Nur Name ohne Wert oder nur Wert ohne Name ist unzulässig.

Im CII-Format ist BG-32 das Element ram:ApplicableProductCharacteristic unterhalb von ram:SpecifiedTradeProduct; BT-160 steht in ram:Description, BT-161 in ram:Value.

Warum sie in der Praxis fehlschlägt

Der Klassiker ist ein Artikelstamm mit vordefinierten Attributfeldern: Die Software exportiert alle angelegten Attribute, auch die, bei denen der Wert im Stammsatz leer geblieben ist. Dann steht „Farbe" ohne Wert in der XML.

Zweiter Fall: Freitextfelder werden als Attributwert ohne Namen exportiert, weil das Mapping nur eine Spalte kennt. Dritter Fall: Die Software legt die Struktur ApplicableProductCharacteristic immer an, auch wenn es gar keine Attribute gibt; das leere Element löst dann zusätzlich Meldungen über leere Elemente aus (bei PEPPOL R008).

So behebst du den Fehler

Prüfe die betroffene Rechnungsposition: Welche Attribute sollen wirklich übermittelt werden? Fülle bei jedem davon Name und Wert, und lösche Attribute, die keinen Wert haben, komplett aus dem Artikelstamm oder dem Export. Ein leeres Attribut trägt keine Information und darf schlicht wegfallen.

Attribute sind in der EN 16931 komplett optional. Im Zweifel ist die richtige Lösung also nicht „irgendeinen Wert erfinden", sondern die halbe Gruppe entfernen.

XML-Beispiel: vorher und nachher

<ram:SpecifiedTradeProduct>
  <ram:Name>Sechskantschraube M8x120</ram:Name>
  <ram:ApplicableProductCharacteristic>
    <!-- verletzt BR-54: ram:Value (BT-161) fehlt -->
    <ram:Description>Oberfläche</ram:Description>
  </ram:ApplicableProductCharacteristic>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedTradeProduct>
  <ram:Name>Sechskantschraube M8x120</ram:Name>
  <ram:ApplicableProductCharacteristic>
    <ram:Description>Oberfläche</ram:Description>
    <ram:Value>verzinkt</ram:Value>
  </ram:ApplicableProductCharacteristic>
</ram:SpecifiedTradeProduct>

Rechnung selbst prüfen

Lade deine Datei hoch und sieh in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.

Regeln, die oft zusammen auftreten

← Alle Fehlermeldungen im Überblick