Was kann die Konvertierung von MSCONS zu Csv Velocity

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