Test Pzn
Zuletzt geändert: 27.07.2026 09:08

Übersicht

Test-Pzn #

ÜBERSICHT #

Prüft, ob eine Zeichenkette eine gültige achtstellige PZN ist.

SYNTAX #

Test-Pzn [[-Pzn] <string>] [<CommonParameters>]

BESCHREIBUNG #

Die PZN (Pharmazentralnummer) der IFA GmbH besteht seit 2013 aus acht Ziffern: sieben Stellen Nummernkern und eine Prüfziffer. Die Prüfziffer entsteht über ein gewichtetes Modulo-11-Verfahren. Die sieben Kernstellen werden von links mit 1 bis 7 gewichtet, aufsummiert und modulo 11 gerechnet. Ergibt die Rechnung den Wert 10, ist die Nummer nicht vergebbar und damit ungültig.

Die alte siebenstellige PZN entspricht der achtstelligen mit führender Null, denn die erste Stelle hat das Gewicht 1 und eine Null liefert keinen Beitrag. Ein Präfix “PZN” mit Bindestrich oder Leerzeichen wird toleriert, weil es in Katalogen und Artikelstämmen häufig mitgeführt wird.

PARAMETER #

-Pzn #

Type: string

Die zu prüfende Nummer. Ein Präfix “PZN”, “PZN-” oder “PZN " sowie umgebende Leerzeichen und Bindestriche werden vor der Prüfung entfernt.

AUSGABEN #

bool

Gibt $true zurück, wenn Länge, Ziffernvorrat und Prüfziffer stimmen.

BEISPIELE #

# Prüft eine PZN mit gültiger Prüfziffer.
Test-Pzn -Pzn "00000017"
# Toleriert das in Katalogen übliche Präfix.
Test-Pzn -Pzn "PZN-00000017"

HINWEISE #

  • Die Funktion beweist nicht, dass ein Wert eine PZN IST, sondern nur, dass er eine sein KANN. Eine achtstellige GTIN-8 kann die PZN-Prüfziffer zufällig ebenfalls erfüllen, das trifft auf rund jede elfte gültige GTIN-8 zu. Für die Unterscheidung wird deshalb zusätzlich eine ausdrückliche Weiche benötigt, siehe Registry-Wert “PznMixedMode”.
  • Das Verfahren entspricht “PZ_Modulo11PZN” aus “elChecksumModulo.pas” der EulandaLib, dort noch in der alten sechsstelligen Variante mit den Gewichten 2 bis 7.