Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-54: Jedem Artikelattribut sowohl einen Namen als auch einen Wert geben

Jede cac:AdditionalItemProperty muss ein cbc:Name und ein cbc:Value haben. Hat der Artikel für ein Attribut keinen Wert, lassen Sie das Attribut weg.

EN 16931Fehler: Das Dokument ist ungültigPositionen und PreiseKernfelder

Auf dieser Seite

Die kurze Antwort

BR-54 schlägt fehl, wenn einer cac:AdditionalItemProperty im Artikel einer Position ihr cbc:Value oder ihr cbc:Name fehlt. Im aufgezeichneten Beispiel heißt das Attribut Service level und hat keinen Wert. Ergänzen Sie den Wert aus den Artikeldaten oder entfernen Sie die gesamte cac:AdditionalItemProperty, wenn der Artikel für dieses Attribut keinen hat.

Ein fehlender Name erreicht diese Regel in der Praxis nicht. cbc:Name ist in diesem UBL-Element Pflicht, daher wird eine Eigenschaft ohne ihn am XSD-Prüfschritt abgewiesen, bevor eine Geschäftsregel läuft.

Was die Regel prüft

Die Regel läuft für jede cac:AdditionalItemProperty im Dokument und ist erfüllt, wenn sie sowohl ein Kindelement cbc:Name als auch ein Kindelement cbc:Value hat. Jede Eigenschaft wird für sich beurteilt: Im Versuch meldete ein Artikel mit zwei Eigenschaften ohne Werte die Regel zweimal, einmal für jede.

Geprüft wird nur, ob die beiden Elemente vorhanden sind. Ein leeres cbc:Value erfüllt diese Regel und wird stattdessen von PEPPOL-EN16931-R008 gemeldet; ein leeres cbc:Name verhielt sich im Versuch genauso.

Nur cbc:Value zählt als Wert. Im Versuch meldete eine Eigenschaft mit cbc:ValueQuantity an dessen Stelle diese Regel und die Warnung UBL-CR-611, die cbc:ValueQuantity als Element außerhalb des Modells von EN 16931 kennzeichnet.

Die Reihenfolge der Elemente ist für das Schema wichtig, nicht für diese Regel. Im Versuch scheiterte eine Eigenschaft, bei der cbc:Value vor cbc:Name stand, am XSD-Prüfschritt.

BegriffBedeutungUBL-Element
BG-32Artikelattributecac:InvoiceLine/cac:Item/cac:AdditionalItemProperty (cac:CreditNoteLine/cac:Item/cac:AdditionalItemProperty in a credit note)
BT-160Name des Artikelattributscac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Name
BT-161Wert des Artikelattributscac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Value

Wie es in einer Integration dazu kommt

Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:

  • Attribute werden aus einer Produktvorlage mit festen Attributnamen erzeugt, und der Wert ist für dieses Produkt leer.
  • Der Serialisierer lässt Werte ohne Inhalt weg, schreibt aber weiterhin die umschließende cac:AdditionalItemProperty und ihren Namen.
  • Ein numerisches Attribut wie ein Gewicht wird als cbc:ValueQuantity geschrieben, weil UBL es anbietet, und es wird kein cbc:Value übermittelt.
  • Attributnamen und -werte stammen aus verschiedenen Quellen, etwa einem Katalog und einer Bestellung, und die Verknüpfung findet für diese Position keinen Wert.

So korrigieren Sie das Dokument

  1. Verwenden Sie die Fundstelle des Befunds, zum Beispiel cac:InvoiceLine[1]/cac:Item[1]/cac:AdditionalItemProperty[1], um die Eigenschaft zu finden.
  2. Hat der Artikel einen Wert für das Attribut, schreiben Sie ihn als Text in cbc:Value, direkt nach cbc:Name. Setzen Sie bei einer Messgröße die Zahl und ihre Einheit in diesen Text, da cbc:Value das einzige Wertelement ist, das das Modell von EN 16931 verwendet.
  3. Gibt es keinen Wert, lassen Sie die gesamte cac:AdditionalItemProperty weg. Ein leeres cbc:Value tauscht diesen Befund nur gegen PEPPOL-EN16931-R008.
  4. Verhindern Sie, dass der Serialisierer eine Eigenschaft schreibt, deren Wert leer ist, damit nie ein Name allein übermittelt wird.

Korrigierte Rechnung prüfen

Vorher und nachher

Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.

Ausschnitt der fehlerhaften Rechnung: Das Artikelattribut hat einen Namen und keinen Wert

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <!-- standard identifier, classification and tax category omitted from this fragment -->
  <cac:AdditionalItemProperty>
    <cbc:Name>Service level</cbc:Name>
  </cac:AdditionalItemProperty>
</cac:Item>

Ausschnitt der korrigierten Rechnung: Das Attribut Service level hat den Wert Standard

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <!-- standard identifier, classification and tax category omitted from this fragment -->
  <cac:AdditionalItemProperty>
    <cbc:Name>Service level</cbc:Name>
    <cbc:Value>Standard</cbc:Value>
  </cac:AdditionalItemProperty>
</cac:Item>

Nur cbc:Value unterscheidet sich: Es fehlt am Artikelattribut der fehlerhaften Rechnung und lautet Standard in der korrigierten. Das fehlerhafte Dokument meldet nur BR-54. Sein Peppol-Prüfschritt besteht, weil das Wertelement fehlt, statt leer zu sein, sodass PEPPOL-EN16931-R008 kein Element zu melden hat.

Was der Validator gemeldet hat

Aufgezeichnet mit phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, der Engine hinter dem kostenlosen Validator, mit synthetischen Daten. Ein aufgezeichnetes Ergebnis ist ein Regressionsnachweis für diese Dokumente, keine Zertifizierung.

Wo die Regel gilt

  • Gilt für cac:InvoiceLine/cac:Item in einer UBL Invoice und cac:CreditNoteLine/cac:Item in einer CreditNote. Im Versuch meldete eine Gutschrift mit entferntem Wert denselben einzelnen Befund bei cac:CreditNoteLine[1].
  • Artikelattribute sind optional. Eine Position ganz ohne cac:AdditionalItemProperty besteht, weshalb das Entfernen eines Attributs, das Sie nicht füllen können, eine zulässige Korrektur ist.
  • Die Regel liest nur das Attribut. Artikelname, Standardkennung und Klassifizierung desselben Artikels haben eigene Regeln.

Umfang und Quelle

Geschrieben für Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, angewendet auf Invoice- und CreditNote-Dokumente in UBL 2.1. Andere Profile, Syntaxen und Releases können diese Kennung anders definieren. Version des Hinweiskatalogs 2026-09-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-24.

Die offizielle Definition von BR-54 (auf Englisch) enthält den normativen Wortlaut und den Test. Diese Seite ist unsere Erklärung dazu, keine Kopie.

Die Erklärung ändert das Urteil der Engine nicht. Dass Sie diesen Befund beheben, heißt nicht, dass das Dokument jeden Prüfschritt besteht. Die Validierung bescheinigt keine rechtliche oder steuerliche Konformität und überträgt kein Dokument über Peppol.