Adressen in Geschäftsobjekten

Adressen sind Referenzierte Objekte. Um die Zusammenhänge hier zu verstehen, sollte das Prinzip der referenzierten Objekte verstanden worden sein.

Adressen werden in Geschäftsobjekten in Firmen- und Adressattributen gespeichert. Dabei gibt es pro Firmentyp jeweils nur ein mögliches Firmen- und Adressattribut.

Das Firmen- und Adressattribut kann entweder eine Adresse (address-Knoten), eine Firma (company-Knoten) oder sowohl eine Adresse und eine Firma enthalten.

Eine Firma enthält immer auch eine Adresse.

Hinweis: Die eigentlich verwendete Klasse des Attributes ist abhängig vom Geschäftsobjekt, im nachfolgendem Beispiel-XML z.B. ShipmentCompanyAddress in Sendungen


Beispiel Sendungs-XML (verkürzt ...)
<?xml version="1.0" encoding="UTF-8"?>
<shp:Shipment ...>
...
<attributes>
<shp:ShipmentCompanyAddress >
<value companyType="CNE">
<!-- Nur Adresse -->
<address name1="Hans Huber e.K." name2="Metallbau" street1="Hauptstraße" streetNo="15" ...>
<attributes/>
</address>
</value>
</shp:ShipmentCompanyAddress>
<shp:ShipmentCompanyAddress ...>
<!-- Nur Firma incl. Adresse-->
<value companyType="RFW">
<company ...>
...
<address name1="Zentrallager 1" street1="Musterstraße" streetNo="20" ...>
<attributes/>
</address>
</company>
</value>
</shp:ShipmentCompanyAddress>
<shp:ShipmentCompanyAddress ...>
<value companyType="FWD">
<!-- Firma incl. Adresse und zusätzlich mit abweichender Adresse -->
<company ...>
...
<attributes/>
<address name1="Smart Logistics" street1="Neue Straße" streetNo="11" ...>
<attributes/>
</address>
</company>
<address name1="Smart Logistics" street1="Alte Straße" streetNo="7a" ...>
<attributes/>
</address>
</value>
</shp:ShipmentCompanyAddress>
</attributes>
<lineItems/>
</shp:Shipment>


Das Prinzip der referenzierten Objekte hat dabei folgende Auswirkungen:

Ändert sich die Adresse einer Firma, hat das keine Auswirkungen auf die Adresse in den adress-Knoten des Firmen- und Adressattributes.

Ändert sich die Adresse des address-Knotens im Firmen- und Adressattribut hat das keine Auswirkungen auf einen möglichen Eintrag in einem Adressbuch.

Ändert sich ein Eintrag in einem Adressbuch hat das keine Auswirkung auf die Adresse im address-Knoten von Geschäftgsobjekten, die auf diese Adresse verweisen. Im Adressbuch ensteht in diesem Fall eine neue Adresse.

Ändert sich die Adresse des address-Knotens im Firmen- und Adressattribut hat das keine Auswirkungen auf die Adresse der Firma innerhalb des gleichen Firmen- und Adressattributes.

Vor allem bei der Verwendung der Daten in Druckdokumenten muss auf diesen Unterschied geachtet werden.

Will man zum Zeitpunkt des Drucks immer die aktuelle Adresse einer Firma verwenden (z.B. als aktuellen Briefkopf), muss auf den address-Knoten innerhalb des company-Knotens zugegriffen werden.

Möglicher X-Path-Ausdruck attributes/shp:ShipmentCompanyAddress/value[@companyType='FWD']/company/address/@street1

Der ermittelte Wert aus dem Beispiel-XML ist hier: Neue Straße.

Will man zum Zeitpunkt des Drucks die zuletzt in der Sendung verwendete Adresse verwenden (z.B. als gespeicherte Lieferadresse), muss auf den address-Knoten zugegriffen werden.

Möglicher X-Path-Ausdruck attributes/shp:ShipmentCompanyAddress/value[@companyType='FWD']/address/@street1

Der ermittelte Wert aus dem Beispiel-XML ist dann: Alte Straße.