Allgemeines

Allgemeines

Kommunikationswege & Meldungsfluss

Grundsätzlich wird zwischen zwei Kommunikationswegen unterschieden. Jeder Meldungstyp kann genau einem Kommunikationsweg zugeordnet werden. Der Eingang (Incoming) und Ausgang (Outgoing) von Meldungen ist hierbei eine Frage der Perspektive.

Typ

Sender/Auslöser
(Vom)

Empfänger
(An)

Bedeutung

Einschränkung

Typ

Sender/Auslöser
(Vom)

Empfänger
(An)

Bedeutung

Einschränkung

Incoming Message

Kundensystem

BAZG

Eine Nachricht vom Verfahrensbeteiligten an das BAZG.

Eine Meldung, die von einem Gegenüber übermittelt wird (put), kann nur von einer Fachanwendung seitens BAZG abgerufen werden (Incoming).

Outgoing Message

BAZG

Kundensystem

Eine Nachricht vom BAZG an den Verfahrensbeteiligten.

Eine Meldung, die eine BAZG-Fachanwendung für Gegenüber übermittelt wird, kann nur von einem Gegenüber via get abgerufen werden (Outgoing).

Formate

Die Meldungen werden im xml-Format übermittelt. Die Struktur einer Meldung ist wie folgt dokumentiert:

  • als Schema-Diagramm (pdf)

  • in Tabellenform (xlsx)

  • als xsd (zwecks Validierung der einzelnen Meldung im xml-Format)

  • als xml (Beispiel)

xsd Prinzipien

xsd Konventionen

Die xsd Schemata können zwei verschiedenen Gruppen zugewiesen werden.

Kategorie

Beschreibung

Kategorie

Beschreibung

geteilte xsd

Sie enthalten Definitionen zu einfachen (Datenfelder) und komplexen (Datengruppen) Typen, die in mehreren Nachrichten vorkommen.

spezifische xsd

Dabei handelt es sich um die strukturelle Definition einzelner Meldungen. Sie referenzieren dabei auf die geteilten xsd, damit diese verwendet werden können.

Datenstruktur der xsd

Die folgende Auflistung zeigt die Abhängigkeiten der einzelnen Schemata auf, die nachfolgend detailliert erläutert werden.

Bereich

Schemata

Filename

Beschreibung

Bereich

Schemata

Filename

Beschreibung

Passar

Simple Types

stypes_ch.xsd

Datenfelder: Enthält die Definition zum Typ, Format und Musterdefinition

Common Complex Types

ctypes_ch.xsd

Datengruppen: Enthält die Definition zu den Datengruppen. Datengruppen die in mehreren Meldungen vorhanden sind, werden lediglich in einer Definition aufgeführt. In beiden Fällen gibt es Informationen zu welche Datenfelder sind enthalten, die Angaben zu Pflichtfeldern, maximale Wiederholungen, Regeln & Bedingungen und Codelisten.

Header Types

htypes_ch.xsd

Enthält die Definitionen der Datenfelder und -gruppen für das technische Kopfelement und kommt in allen Meldungen vor.

Technical Codelist

tcl_ch.xsd

Gibt den Typ von Datenfeldern an inkl. einer Aufzählung der möglichen Werte.

Chartera Ouput

All Types

 

 



Um die Schemata miteinander zu verknüpfen, wird das XML-Element <import> verwendet.

Beispiel xsd Beschränkung

xml Struktur 

Eine Meldung besteht aus Datengruppen und Attributen. 

Datengruppen (Data Group)

Eine Datengruppe besteht aus einer oder mehreren Daten(Unter)gruppen (Verschachtelung) und/oder aus einem oder mehreren Attribute.

Namenskonventionen xml-Tag

Wenn es ein Acronym ist, dann alles Gross, sonst PascalCase Format. Beispiele:

  • GNSS → GNSS

  • Goods Shipment → GoodsShipment

  • Transport Equipment → TransportEquipment

  • Additional Supply Chain Actor → AdditionalSupplyChainActor

Datentyp

Eine Datengruppe ist keinem Datentyp zugewiesen.

Art der Erforderlichkeit

Folgende Ausprägungen sind möglich:

  • R (required): muss immer/in jedem Fall angegeben werden

  • O (optional): ist optional - sind Daten vorhanden, sollten diese der Vollständigkeit halber angegeben werden

  • D (dependent): kann entweder R, O oder N sein - ist abhängig von den Regeln und Bedingungen und wechselt entsprechend den Zustand

  • N (nicht anwendbar): darf nicht vorhanden sein

Hinweise

  • In der Spezifikation einer Meldung ist eine Datengruppe hellblau markiert.

  • Die Namen der Datengruppen sind nicht einzigartig und können in unterschiedlichen Meldungen vorkommen. Deren Inhalt kann sich aber von Meldung zu Meldung unterscheiden und muss inhaltlich nicht übereinstimmen.

  • Die übergeordnete Datengruppe ist jeweils anzugeben, wenn eine untergeordnete ausgefüllt wird.

  • Einer Datengruppe werden keine, eine oder mehrere Rules & Conditions zugewiesen.

Attribut (Data Item)

Ein Datenfeld enthält die eigentliche Information.

Namenskonventionen xml-Tag

Wenn es ein Acronym ist, dann alles Gross, sonst camelCase Format. Beispiele:

  • Declaration date → declarationDate

  • MRN → MRN

  • Presentation notification rejection date → presentationNotificationRejectionDate

Datentyp & Länge

Jedes Datenfeld hat ein zugewiesenes Format und eine bestimmte Länge:

  • numerisch

  • alphanumerisch

  • dezimal

  • Zeit

  • Datum

  • Zeitdatum

Generelles zur Längenangabe

  • Zwischen dem Typ und der Längenangabe können zwei Punkte stehen. Dies bedeutet, dass die Anzahl Zeichen flexibel ist, aber maximal.

  • Ein Komma bei der Längenangabe gibt an wie viele Zeichen vor und nach dem Komma stehen dürfen (sofern notwendig). Dies ebenfalls in Verbindung mit der flexiblen Anzahl (sofern 2 Punkte vorhanden sind) und dem Maximum.

Beispiel

Beschreibung

Beispiel

Beschreibung

a1

1 Buchstabe, fixe Länge

n2

2 Zahlen, fixe Länge

an3

3 alphanumerische Zeichen, fixe Länge

a..4

bis zu 4 Buchstaben

n..5

bis zu 5 Zahlen

an..6

bis zu 6 alphanumerische Zeichen

n..7,2

bis zu 7 Zahlen Total und davon bis zu 2 Zahlen nach dem Komma

Numerische Felder

  • Die Inhalte sind positive Ganzzahlen oder positive Dezimalzahlen, sofern durch die Codelisten oder eine Regel nicht weiter spezifiziert.

  • Für die Dezimalzahlen ist der Punkt (.) zu verwenden. Weitere Zeichen sind nicht erlaubt.

  • Die Zahl Null (0) darf den Ganzzahlen nicht vorangestellt werden.

  • Dezimalzahlen sind nur zu verwenden, wenn die Präzisierung notwendig ist. Vor und nach dem Punkt ist mindestens eine Zahl anzugeben.

Beispiele für die Angabe “n..11,3”

Input

Validierung

Begründung

Input

Validierung

Begründung

12345678.123

Gültig

-

123456789.123

Ungültig

zu viele Zeichen vor dem Punkt und im Total

12345678.1234

Ungültig

zu viele Zeichen nach dem Punkt und im Total

0123

Ungültig

Vorangestellte Null ist nicht erlaubt

+123

Ungültig

Pluszeichen ist nicht erlaubt

-123

Ungültig

Minuszeichen ist nicht erlaubt

1,234

Ungültig

Komma ist nicht erlaubt

.3

Ungültig

kein Zeichen vor dem Punkt

12345.

Ungültig

kein Zeichen nach dem Punkt

3

Gültig

-

3E1

Ungültig

nur Zahlen und Dezimalpunkt ist erlaubt

12345678901

Gültig

-

Textfelder

  • Führende oder nachfolgende Leerzeichen sind nicht erlaubt.

  • Zeilenvorschübe (Tabulator) dürfen nicht verwendet werden.

  • Aufgrund des xml-Formates sind gewisse Zeichen nicht erlaubt, da diese als Steuerzeichen verwendet werden und es zu Fehlern kommen kann. Diese sind wie folgt umzuwandeln:

Zeichen

Entität

Bemerkung

Zeichen

Entität

Bemerkung

&

&amp;

MUSS umgewandelt werden

&gt;

Soll umgewandelt werden

&lt;

MUSS umgewandelt werden

"

&quot;

Soll umgewandelt werden

'

&apos;

Soll umgewandelt werden

&amp; wird nicht als 5 Zeichen gewertet, sondern als 1 Zeichen. Dies gilt auch für die anderen.

Datum & Zeit Felder

Für die DateTime und Time Felder ist die UTC Zeit zu verwenden. Das Datum ist analog der UTC Zeit anzugeben, siehe folgendes Beispiel.

  • Zeit in der Schweiz: 27. Oktober 2021 7:48 (UTC+1)

  • Folgende Zeit ist zu übermitteln: 27. Oktober 2021 6:48 (UTC)

Datentyp

Regular Expression

Datentyp

Regular Expression

Date

YYYY ‘-‘ MM ‘-‘ DD

\d{4}-\d{2}-\d{2}

Time

hh ‘:’ mm ‘:’ ss

\d{2}:\d{2}:\d{2}

Date/Time

YYYY ‘-‘ MM ‘-‘ DD ‘T’ hh ‘:’ mm ‘:’ ss

\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}

Der Separator ‘T’ weist darauf hin, dass nach dem Datum noch eine Zeitangabe folgt. Ganze Sekunden ist die kleinste erlaubte Einheit.

Art der Erforderlichkeit

Folgende Ausprägungen sind möglich:

  • R (required): muss immer/in jedem Fall angegeben werden

  • O (optional): ist optional - sind Daten vorhanden, sollten diese der Vollständigkeit halber angegeben werden

  • D (dependent): kann entweder R, O oder N sein - ist abhängig von den Regeln und Bedingungen und wechselt entsprechend den Zustand

  • N (nicht anwendbar): darf nicht vorhanden sein

Hinweise

  • In der Spezifikation einer Meldung ist eine Datengruppe grau markiert.

  • In einzelnen Fällen ist der Wert vorgegeben. Die vorgegeben Werte sind in der jeweiligen Codeliste definiert.

  • Die Felder sind sprachunabhängig, da sie UTF-8 codiert sind.

  • Einem Attribut werden keine, eine oder mehrere Rules & Conditions zugewiesen.

xml Message Header

Folgende Informationen müssen pro Meldung im Message Header übermittelt werden:

Attribut

Beschreibung

Attribut

Beschreibung

Message Sender and Message Recipient

Beim Sender der Meldung ist die Geschäftspartner-ID (n10) anzugeben. Beim Empfänger ist der Wert «PASSAR.CH» anzugeben (Incoming Message). 
Werden die Meldungen vom BAZG versendet, ist der Empfänger die GP-ID und PASSAR.CH der Absender (Outgoing Message).

Message Type

Meldungstyp

Message Timestamp

aktueller Zeitstempel

Message Identification

Jede Meldung benötigt eine eindeutige ID. Bei einem Retry (z.B.: bei einem technischen Problem wie Timeout) einer identischen Meldung muss die gleiche MessageId verwendet werden.

Messages mit unterschiedlichem Inhalt und gleicher MessageId werden abgelehnt. Als eindeutige MessageId kann eine UUID in der Version 4 verwendet werden.

Correlation Identifier

Handelt es sich bei der Nachricht um eine Fehler- oder Antwortmeldung ist die Message Identification der verursachenden Meldung in das Feld Correlation Identifier einzutragen, damit diese eindeutig zugewiesen werden können.

 

Anfrage und Antwort Header Beispiel

Zu jeder Meldung des System Gegenüber wird von Passar eine Antwort Meldung erstellt. Die Message Header Informationen diesen dazu die Meldungen zu korrelieren.

We've encountered an issue exporting this macro. Please try exporting again later.

Nr

Beschreibung

Nr

Beschreibung

1

Initiale Waren Durchfuhr Meldung

2

Meldung ist aktzeptiert (ACCEPTED) oder Abgelehnt (REJECTED) Grund fachliche Fehler.

 


Q&A