ene't Rest Webservices (Admin)
Verfügbare ene't Webservices in EVI
Fremdkosten/Netzentgelte:
Netzentgeltermittlung Gas
Netzentgeltermittlung Strom
Marktversorgung/Grundversorgung
Grundversorgungsermittlung Gas
Grundversorgungsermittlung Strom
Marktpartnerermittlung
Marktpartnerermittlung Gas
Marktpartnermittlung Strom
Standorteigenschaften
Webservice zur Ermittlung von regionalen und energiewirtschaftlichen Eigenschaften eines Standortes oder Bereichs, z.B. eines Postleitzahlbereiches
https://ws.enet-navigator.de/standorteigenschaften/jsondoc-ui.html#
Die vorliegende Seite bietet eine Übersicht über die Funktionen der ene't Webservices inkl. allgemeinem Nutzungsschema, Administrations- und Übersteuerungsmöglichkeiten.
Detaillierte Informationen zu den einzelnen Webservices, befinden sich auf den jeweiligen Unterseiten.
Installation
Installationsaufwand | ~0,25h Einrichtung der kundenindividuellen LogIn-Daten in den globalen Variablen muss erfolgen. |
---|
Voraussetzungen für die Verwendung des Moduls
Modul-Lizenz EVI-BASIS liegt im System vor.
Nutzungsvereinbarung mit der Ene't liegt vor.
Einrichtung der kundenindividuellen LogIn-Daten in den globalen Variablen muss erfolgt sein. Sollte der Kunde keinen Zugang zu den ene't-Webservices haben, muss der Inhalt der globalen Variablen "C12EnetWsPassword" und "C12EnetWsUsername" leer sein. Der SLP-Angebotsprozess erkennt diese Situation und zeigt dem Anwender eine Suchmaske auf die im System hinterlegten ServiceProvider an.
Update
Zum 01.01.2021 wurden die SOAP Services durch die ene't abgeschaltet. Für EVI wurden daher ene't-Webservices implementiert, die bei einem Update folgendes Handeln nötig machen:
Im Rahmen eines Updates muss geprüft werden, ob die folgenden Methoden in Verwendung sind. Diese müssen dann geprüft und durch die passende neue Methode ersetzt werden.
SC12EnetUtils.callEnetNetztarif
SC12EnetUtils.getDefaultProviderRate
SC12EnetUtils.getGridOperator
SC12EnetUtils.getGridOperatorPkFromNumber
SC12EnetUtils.getNetNumber
SC12EnetUtils.getValueFromResultFirstLevel
SC12EnetUtils.getValueFromResultSecondLevel
SC12SLPUtils.getDefaultProviderRate
Es ist zu prüfen, ob die folgenden Methoden übersteuert wurden und ggf. wieder der Standard verwendet werden kann. Sollte nicht der Standard verwendet werden können, so ist die Verwendung der Methode SC12EnetUtils.debug zu prüfen.
createParameterBasicSuppliesElectricityV1
createParameterBasicSuppliesGasV1
createParameterLocationPropertiesV1
createParameterMarketPartnerGasV1
createParameterMarketPartnerGasV1
createParameterMarketPartnerGasV1
createParameterThirdPartyCostsRlmGasV1
createParameterThirdPartyCostsSlpElectricityV1
createParameterThirdPartyCostsSlpGasV1
createResponse
putTotalValueIfAbsent
Um die neue REST-basierte Variante der SLP- und RLM-Utils zu verwenden, müssen die Anmeldedaten des ene't-Maschinenkontos hinterlegt werden.
Die Anmeldedaten werden in den globalen Variablen C12EnetRestUser und C12EnetRestPassword hinterlegt. Die passenden Werte sind dem Enet-Navigator nach erfolgreicher Registrierung und Aktivierung der passenden Lizenz zu entnehmen.
Die Verwendung von HAUSHALT in den Prozessen und Skriptmethoden ist im Projekt zu prüfen und ggf. durch PRIVAT zu ersetzen.
Technische Dokumentation
Komponentenübersicht
Module
EVI-BASIS
Skriptbibliothek
SC12EnetUtils
Globale Variablen
C12EnetRestUser
C12EnetRestPassword
Administrationsmöglichkeiten
Administrationsmöglichkeiten über die globalen Variablen:
Globale Variable | Beschreibung |
---|---|
C12EnetRestPassword | Passwort der ene't-REST-Schnittstelle |
C12EnetRestUser | Benutzer der ene't-REST-Schnittstelle |
Übersteuerungsmöglichkeiten
Grundsätzlich können die mit dem Modul bereitgestellten Komponenten wie BPM-Prozesse, -teilprozesse, Suchen und Skriptbibliotheksmethoden übersteuert werden, um diese an individuelle Anforderungen und Bedürfnisse anzupassen.
Nach dem Einspielen eines Moduls sollte geprüft werden, ob bereits Methoden im Projekt übersteuert wurden und ob die Methodenänderung aus dem Standard im Projekt übernommen werden sollte.
Webservice | Skriptklasse | Methodenname | Funktionalität |
---|---|---|---|
SC12EnetUtils | createParameterBasicSuppliesElectricityV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung des Grundversorgungstarifes Strom | |
createParameterBasicSuppliesGasV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung des Grundversorgungstarifes Gas | ||
createParameterLocationPropertiesV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Standorteigenschaften | ||
createParameterMarketPartnerElectricityV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Marktpartner Strom | ||
createParameterMarketPartnerGasV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Marktpartner Gas | ||
createParameterNetCostsRlmElectricityV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Netzkosten RLM Strom | ||
createParameterNetCostsRlmGasV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Netzkosten RLM Gas | ||
createParameterNetCostsSlpElectricityV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Netzkosten SLP Strom | ||
createParameterNetCostsSlpGasV1 | Generiert die Eingabeparameter für den Webservice zur Ermittlung der Netzkosten SLP Gas |
Die Kernlogiken rund um den REST-Aufruf sind in der Klasse
SC12EnetUtils
abgebildet. Sie bietet die Möglichkeit, die Parameter aufzubereiten, zu validieren, den Aufruf abzusetzen und die Antwort auszuwerten. Alle diese Schritte sind elementar gestaltet, sodass diese wiederverwendet werden können. Der für den Anwendungsfall interessante Aufruf wird in der KlassenSC12RLMUtils
undSC12SLPUtils
unter Hilfenahme derSC12EnetUtils
abgebildet.Alle Methoden, die die REST-Schnittstelle bedienen, erwarten als Aufrufparameter eine vor gefüllte Map. Diese Map ist von jeweiligen Aufrufer im Vorfeld zu füllen. Welche Einträge erwartet werden ist der jeweiligen Methodendokumentation zu entnehmen. Dieser Ansatz - im Gegensatz zu explizit angegebenen Parametern - wurde gewählt, um eine Erweiterbarkeit zu gewährleisten. Sollte der Bedarf bestehen, die Methoden zu übersteuern, da kundenspezifische Anforderungen abgedeckt werden müssen, so können kundenspezifische Parameter über die Map an die Logik gereicht werden.
Skriptmethoden
Skriptklasse | Methodenname | Funktionalität |
---|---|---|
SC12EnetUtils | getNetCostsV1 | Validierung der Eingabewerte und Aufruf des Webservices |
createParameterNetCostsRlmElectricityV1 | Diese und die folgenden drei Methoden schreiben die Eingabewerte in die von der ene't vorgesehene Struktur, damit diese an den Webservice übergeben werden kann. | |
createParameterNetCostsRlmGasV1 | ||
createParameterNetCostsSlpElectricityV1 | ||
createParameterNetCostsSlpGasV1 | ||
readNetCostsV1 | Liest Werte aus dem Webservice-Ergebnis aus und schreibt diese in einen virtuellen Container der Entität Preiskalkulation zur weiteren Verwendung in EVI. | |
resolveGasMeterType | Mapping der Schlüsselwerte für die Zählergröße Standardmäßig wird, sofern kein anderer Wert übergeben wird, G4 zurückgeliefert |
Anmerkung für ene't Webservices
Jede Methode ist generell übersteuerbar, an dieser Stelle macht es aber wenig Sinn, da immer die gesamte Response geliefert wird.
Man sollte eher die entsprechenden Methoden aus SC12SLPUtils übersteuern, sollte man weitere Werte benötigen, als die, die die Methoden liefern.
Nutzungsschema
Design
Die Kernlogiken rund um den REST-Aufruf sind in der Klasse SC12EnetUtils
abgebildet. Sie bietet die Möglichkeit, die Parameter aufzubereiten, zu validieren, den Aufruf abzusetzen und die Antwort auszuwerten. Alle diese Schritte sind elementar gestaltet, sodass diese wiederverwendet werden können.
Der für den Anwendungsfall interessante Aufruf wird in der Klassen SC12RLMUtils
und SC12SLPUtils
unter Hilfenahme der SC12EnetUtils
abgebildet.
Aufrufparameter
Alle Methoden, die die REST-Schnittstelle bedienen, erwarten als Aufrufparameter eine vor gefüllte Map. Diese Map ist von jeweiligen Aufrufer im Vorfeld zu füllen. Welche Einträge erwartet werden ist der jeweiligen Methodendokumentation zu entnehmen.
Dieser Ansatz - im Gegensatz zu explizit angegebenen Parametern - wurde gewählt, um eine Erweiterbarkeit zu gewährleisten. Sollte der Bedarf bestehen, die Methoden zu übersteuern, da kundenspezifische Anforderungen abgedeckt werden müssen, so können kundenspezifische Parameter über die Map an die Logik gereicht werden.
Ergebniswerte
Die Ergebnisstruktur folgt immer einem Schema:
Map |
|
Im Eintrag status
lässt sich ein Statuswert auslesen, der den Staus des Aufrufs abbildet:
200 | Erfolgreicher Aufruf |
400 | Kein gültiges Medium (momentan Gas oder Elektrizität) |
401 | Keine Anmeldedaten |
404 | Kein Ergebnis |
500 | Keine gültigen Aufrufdaten |
Im Eintrag response
findet sich das eigentliche Ergebnis des Aufrufes. Je nach Aufruf bildet diese Wert eine andere Struktur ab.
Aufrufschema
Den Einstieg bieten die SC12RLMUtils
und SC12SLMUtils
.
Die Methoden beinhalten die Logik, um einen kompletten Aufruf abzubilden. Möchte man selbst weitere Aufrufe konstruieren, so kann man sich am dem Schema orientieren.
Beispielablauf anhand getThirdPartyCosts
1 |
|
Logging
Debug-Logging
Innerhalb der Methoden sind mittels ScriptUtils.debug()
Debug-Ausgaben eingebaut worden, die bei Bedarf aktiviert werden können, um einen Einblick in den technischen Ablauf zu erlangen.
Interface-Detail
Innerhalb der eigentlichen REST-Schnittstellen-Aufrufe in der Klasse SC12EnetUtils
werden über die SC12EVIBaseUtils
Log-Einträge angelegt, um die Kommunikation zwischen dem CRM und der REST-Schnittstelle zu protokollieren.
Allgemeiner Aufbau
Einstieg in Services über Methoden in SC12SLPUtils
Netzbetreiberermittlung: getGridOperator
Grundversorgungstarif: getBasicSupplyRate
Standorteigenschaften: getLocationProperties
Fremdkostenermittlung: getThirdPartyCosts
Methoden zum Erzeugen der Übergabedaten an den Webservice in SC12EnetUtils
createParameter<Servicename><Medium>V1
Grundversorgungstarif Strom: createParameterBasicSuppliesElectricityV1
Methoden zum Abruf der einzelnen Services
get<Servicename>V1
getBasicSuppliesV1