velocityMscons Content
Mit Hilfe der Mscons2CsvGenerator Velocity NLC Contents können aus MSCONS Edifact Nachrichten verschiedene CSVs generiert werden.
Das Format der Ziel CSV kann in großem Maße(mit Hilfe Velosity) konfiguriert werden.
Allgemeine Konfiguration und Funktion
Dieser Content wird per NLCAction2 verwendet. Diese benötigt als Konfiguration die Angabe des zu ladenden Contets und eine Extension, in welcher die Konfiguration für die CSV hinterlegt ist.
TEMPLATE_EXTENSION = <Name der Extension>
Konkrete Konfiguration
Action: NLCAction2 Eigenschaften an der Action
TEMPLATE_EXTENSION = <Name der Extension>
B3P_USE_MAPPING_FEATURE = true
B3P_USE_REGISTRY = true
B3P_USE_VALIDATION_FEATURE = false
content-nlc-out = <Name unter dem der Content hochgeladen wurde> z.B. CSV
content-nlc-provider = <eingestellter Provider des Contens, normalerweise NLI>
content-nlc-version = <version, unter der der Conten hochgeladen wude, normalerweise 1.0>
Die in TEMPLATE_EXTENSION hinterlegte Extension wird als Apache Velocity konfiguriert. Apache Velocity definiert eine eigene Beschreibungssprache für Schablonen, die Velocity Template Language (VTL). Dabei leiten Doppelkreuze („#“) die zu füllenden Platzhalter ein, doppelte Doppelkreuze („##“) beginnen Kommentare und Dollarzeichen („$“) dienen als Markierung von Referenzen.
Beispiel 1.
UNB-ID;$mscons.UNBReferenceNumber
UNB-Sender-ID;$mscons.sender;UNB-Sender-ID-Typ;#agencyName($mscons.senderAgency)
UNB-Empfänger-ID;$mscons.receiver;UNB-Empfänger-ID-Typ;#agencyName($mscons.receiverAgency)
MSCONS-Sender-ID;$mscons.sender;MSCONS-Sender-ID-Typ;#agencyName($mscons.senderAgency)
MSCONS-Empfänger-ID;$mscons.receiver;MSCONS-Empfänger-ID-Typ;#agencyName($mscons.receiverAgency)
MSCONS-Version;$context.FORMAT.version
Zählpunkt-Bezeichnung nach Metering-Code#foreach( $block in $mscons.msconsBlocks );$block.meldepunkt;#end
OBIS-Code#foreach( $block in $mscons.msconsBlocks );$block.obisCode;#end
Einheit#foreach( $block in $mscons.msconsBlocks );#unit($block.obisCode);#end
Datum/Uhrzeit (UTC)#foreach( $block in $mscons.msconsBlocks );#valueHeader($block.obisCode);Status#end
#foreach( $timeRow in $mscons.timeRows )
$dateTool.format('dd.MM.yyyy HH:mm', $timeRow.to, $GERMANY, $TimeZone.getTimeZone("UTC"))#foreach( $quantity in $timeRow.quantities );$numberTool.format('0.########', $quantity.value, $GERMANY);#status($quantity.code)#end
#end
#macro( agencyName $agencyCode )
#if($agencyCode == "502")
DVGW##
#elseif($agencyCode == "501")
EDIGAS##
#elseif($agencyCode == "500")
BDEW##
#elseif($agencyCode == "14")
GS1##
#else
ILN##
#end
#end
#macro( unit $obisCode)
#if($obisCode.startsWith("7-10") || $obisCode.endsWith("1.29.0"))
kWh##
#elseif($obisCode.endsWith("1.4.0"))
kW##
#elseif($obisCode.contains(":3.29."))
kvarh##
#else
##
#end
#end
#macro( valueHeader $obisCode)
#if($obisCode.startsWith("7-0:54"))
Brennwert##
#elseif($obisCode.startsWith("7-0:52"))
Z-Zahl##
#else
Wert##
#end
#end
#macro( status $code)
#if($code == "220" || $code == "79")
W##
#elseif($code == "67" || $code == "201")
E##
#elseif($code == "187")
V##
#elseif($code == "20")
G##
#else
F##
#end
#end
Beispiel 2.
#foreach( $block in $mscons.msconsBlocks )#if($block.linPos == "1");$block.bgmReference#end#end
#foreach( $timeRow in $mscons.timeRows )
$dateTool.format(' dd.MM.yyyy HH:mm:ss ', $timeRow.from, $GERMANY)#foreach( $quantity in $timeRow.quantities )#if($quantity.linPos == "1");$numberTool.format('#0', $quantity.value, $GERMANY)#end#end
#end
Entwickler Hinweise
relevante Klassen
com.nextlevel.nlc.velocityMscons
(der IHPC Konverter des Contents)
org.b2bbp.edi.mscons.MsconsEdiParser
(beinhaltet die meiste Logik und liegt in der B2B Core)
org.b2bbp.edi.mscons.vo.MsconsMessage
Weiterte Velocity Converter siehe hier:
com.nextlevel.nlc.velocityAlocat
com.nextlevel.nlc.velocityUtilmd
com.nextlevel.nlc.velocitySchedl
>com.nextlevel.nlc.velocityNomint
Befehle
Hier sind die wichtigsten Befehle der Velocity Template Language #if… #elseif… #else… #end
Weitere Informationen zur Sprache, einschließlich der Syntax für weniger häufig verwendete Anweisungen, finden Sie im Velocity-Benutzerhandbuch.
View Me Edit Me