XML Upload - AdditionalData

Warning: Diese Dokumentation befindet sich aktuell im Aufbau und ist nicht final. Sollten Sie Fragen oder Anmerkungen zur Dokumentation besitzen, wenden Sie sich bitte an Ihren Ansprechpartner bei uns.

XML-Upload AdditionalData

Beschreibung

In den AdditionalDataList-Feldern besteht die Möglichkeit zusätzliche Daten, die nicht mit in der UTILMD und dem internen WiM-MasterDataVo Datenobjekt enthalten sind, an definierte Backendsysteme zu übergeben. Im Nachfolgenden sind die einzelnen Feldkonfigurationen zu den Backendsystemen beschrieben.

Beispiel XML-Ausschnitt für die AdditionalData:

<?xml version="1.0" encoding="UTF-8"?>
<BdewTemplateInit>
	<WimProcessConfiguration>
		<DatePattern>yyyy-MM-dd</DatePattern>
	</WimProcessConfiguration>
	<WimProcessList>
		<WimProcessData>
			<processData>
				...			
			</processData>
			<processOverview>
				...
			</processOverview>
			<additionalDataList>
				<additionalData>
					<position>/logical/current/descendants[node/meteringPointNmbr ='DE0000000000000000000000000000000']/children[check:type('MountingPlace')]</position>
					<key>Lagezusatz</key>
					<value>Over The Rainbow</value>
				</additionalData>
				<additionalData>
					<position>/wim/wfm</position>
					<key>orderType</key>
					<value>530 Verwaltung</value>
				</additionalData>
				<additionalData>
					<position>/logical/current/descendants[check:type('DeBusinessProcessMarktlokation')/ConsumptionPoint/enduserAddress and node/marktlokationsID ='20190115']</position>
					<key>name</key>
					<value>530 Verwaltung</value>
				</additionalData>
			</additionalDataList>
		</WimProcessData>
	</WimProcessList>
</BdewTemplateInit>

Felder für das Workforce Managementsystem - WFM

Diese Felder werden zusätzlich in dem MeterReplacementRequestBIP ausgelesen und an das WFM übergeben.

Parameter Beschreibung Festwert oder Beispiel
orderType Art des Wechselauftrages PERIODIC_REPLACEMENT (default) | REPARATION-REPLACEMENT | SAMPLE-REPLACEMENT | UPGRADE_TO_METERING_SYSTEM | ASSEMBLY
orderSubType    
annotation zusätzliche Anmerkungen Schlüssel für Keller im Zimmer 502 abholen.
priority Priorität des Auftrages HIGH | NORMAL (default) | LOW
articleNr Artikelnummer  
manufacturerId Hersteller-ID  
installGateway Installation des Gateways no (default) | yes | use existing
equipmentTypeSmgw Typ des Gateways  
scheduledDate Datum zum geplanten Umbau 2021-04-01T15:30:00.000+01:00 (das Datum muss in dem vom WTM erwarteten Format angegeben werden, <DatePattern> wird nicht auf die Datumsfelder in <additionalDataList> angewendet!)
<?xml version="1.0" encoding="UTF-8"?>
...
			<additionalDataList>
				<additionalData>
					<position>/wim/wfm</position>
					<key>orderType</key>
					<value>PERIODIC_REPLACEMENT</value>
				</additionalData>
				<additionalData>
					<position>/wim/wfm</position>
					<key>priority</key>
					<value>NORMAL</value>
				</additionalData>
				<additionalData>
					<position>/wim/wfm</position>
					<key>installGateway</key>
					<value>use existing</value>
				</additionalData>
				<additionalData>
					<position>/wim/wfm</position>
					<key>equipmentTypeSmgw</key>
					<value>BasicSMGW</value>
				</additionalData>
				<additionalData>
					<position>/wim/wfm</position>
					<key>annotation</key>
					<value>Schlüssel für Keller im Zimmer 502 abholen.</value>
				</additionalData>
					<additionalData>
					<position>/wim/wfm</position>
					<key>scheduledDate</key>
					<value>2021-04-01T15:30:00.000+01:00</value>
				</additionalData>
			<additionalDataList>
...

Felder für das New Device Management - NDM

Für die Übergabe an das NDM sind folgende additionalData Felder von Bedeutung:

Feld Beschreibung Beispiel
position Gibt das Objekt (Netzanschlussnehmer, Kunde des MSB, …) im NDM an. Der Pfadausdruck (XPATH) ist abhängig von dem Objekt welches übergeben werden soll. Die korrekten Objektbeschreibungen finden Sie unten beschrieben. /logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/owner
key Feld welches im Objekt befüllt werden soll. Eine Auflistung aller möglichen Felder erhalten sie unten. Das Feld ist in Anhängigkeit zum Objekt. emailAddress
value Wert das in dem Feld abgespeichert werden soll max.mustermann@email.de
dataType Datentyp des Feldes key mit dem entsprechenden Wert in value STRING

Geschäftspartnerobjekte

Das NDM stellt die folgende definierten Geschäftspartnerobjekte zur Verfügung. Das Element position beschreibt dabei den Typ des Geschäftspartner-Objektes.

Typ des Geschäftspartnerobjekte XPATH für Feld position Beschreibung
Netzanschlussnehmer /logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="<MaLo>"]/node/owner Im Platzhalter <MaLo> muss die Marktlokationsid von dem Netzanschlussnehmer mitgegeben werden.
Kunde des MSB /logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="<MaLo>"]/node/consumer Im Platzhalter <MaLo> muss die Marktlokationsid von dem Kunde des MSB mitgegeben werden.
Korrespondenzanschrift des Kunden des Messstellenbetreibers /logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="<MaLo>"]/node/alternativeContactPerson Im Platzhalter <MaLo> muss die Marktlokationsid von der Abweichende Rechnungsadresse mitgegeben werden.
Ablesekartenempfänger /logical/current/descendants[check:type("ElectricMountingPlace") and parent/node/meteringPointNmbr = "<MeLo>"]/node/accessContact Im Platzhalter <MeLo> muss die Messlokationsid von dem Ablesekartenempfänger mitgegeben werden.

Für alle Geschäftspartner Objekte können folgende keys (Felder) gesetzt werden:

key Beschreibung
title Akademischer Titel
lastName Nachname
firstName Vorname
emailAddress Emailadresse
phoneNmbr Festnetzummer
cellPhoneNmbr Mobilfunknummer

Adressobjekte

Unterhalb der Geschäftspartnerobjekte kann die Adresse mitgegeben werden. Hierzu erfolgt eine Erweiterung des Geschäftspartnerobjktes mit `/address’. Die Adresse des “Kunde des MSB” wird dann wie folgt abgebildet. Beispiel: ‘’’ /logical/current/descendants[check:type(‘ConsumptionPoint’) and parent/node/marktlokationsID=’231243’]/node/consumer/address ‘’’

key Beschreibung
streetName Straße
poBox Postfact
zipCode Postleitzahl
cityName Stadt
houseNmbr hausnummer
positionSupplement  
streetKey  
structure Z01 Struktur von Personennamen | Z02 Struktur der Firmenbezeichnung

Beispielauszug für Kunde des MSB:


...
	<additionalDataList>
		<additionalData>		
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer</position>
			<key>lastName</key>
			<value>Mustermann</value>
			<dataType>STRING</dataType>
		</additionalData>
		<additionalData>
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer</position>
			<key>firstName</key>
			<value>Max</value>
			<dataType>STRING</dataType>
		</additionalData>
		
		<additionalData>
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer</position>
			<key>emailAddress</key>
			<value>email@mustermann.de</value>
			<dataType>STRING</dataType>
		</additionalData>
		<additionalData>
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer</position>
			<key>phoneNmbr</key>
			<value>0178 90123456</value>
			<dataType>STRING</dataType>
		</additionalData>		
		<additionalData>
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer/address</position>
			<key>streetName</key>
			<value>Musterstraße</value>
			<dataType>STRING</dataType>
		</additionalData>
		<additionalData>		
			<position>>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer/address</position>
			<key>houseNmbr</key>
			<value>1c</value>
			<dataType>STRING</dataType>
		</additionalData>
		<additionalData>
			<position>>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer/address</position>
			<key>zipCode</key>
			<value>04898</value>
			<dataType>STRING</dataType>
		</additionalData>
		<additionalData>
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer/address</position>
			<key>cityName</key>
			<value>Musterhausen</value>
			<dataType>STRING</dataType>
		</additionalData>
		<additionalData>
			<position>/logical/current/descendants[check:type("ConsumptionPoint") and parent/node/marktlokationsID="50900000095"]/node/consumer/address</position>
			<key>structure</key>
			<value>Z01</value>
			<dataType>STRING</dataType>
		</additionalData>
	<additionalDataList>
...

Nicht-Prozessrelevante Z-Felder

Innerhalb des NDM ist es möglich weiter zusätzliche Felder unterhalb der Mess- oder Marktlokation zu setzen. Dies geschieht mittels XPath und einen frei wählbaren Key. Der key repräsentiert dabei das Feld worunter der Wert value unter der Mess- bzw. Marktlokation abgespeichert werden soll.

UNter <MeLo>' wird die zugehörige MesslokationsId und unter ` die zugehörige MarktlokationsId eingetragen werden muss.

key   XPATH für Feld position Beschreibung
frei wählbar /logical/current/descendants[check:type(‘DeBusinessProcessMarktlokation’) and node/marktlokationsID = ‘'] Freitext-Felder an der Marktlokation  
frei wählbar /logical/current/descendants[check:type(‘DeBusinessProcessMesslokation’) and node/meteringPointNmbr = ‘'] Freitext-Felder an der Messlokation  

Beispiel für nicht relevante Z-Felder:


...
	<additionalDataList>
		<additionalData>
               <dataType>STRING</dataType>
               <key>Anlagenart</key>
               <position>/logical/current/descendants[check:type("DeBusinessProcessMarktlokation") and node/marktlokationsID = "50000000000"]</position>
               <value>S002-Privater Haushalt</value>
            </additionalData>
		<additionalData>
               <dataType>STRING</dataType>
               <key>Ablesesteuerung</key>
               <position>/logical/current/descendants[check:type("DeBusinessProcessMesslokation") and node/meteringPointNmbr = "DE0000000000000000000000000000000"]</position>
               <value>0001-allgemein</value>
            </additionalData>
	<additionalDataList>
...