Skip to main content
Skip table of contents

Kalkulation (C12ANKAFIX_KALKULATION)

Voraussetzungen für die Verwendung des Prozesses

  • Die Lizenz EVI-AnKa-fix muss eingespielt sein. 

  • Die benötigten Anmeldeinformationen für AKF müssen in den globalen Variablen gepflegt sein.

Technische Dokumentation

Komponentenübersicht

Prozesse

  • C12ANKAFIX_KALKULATION

Skriptbibliothek

  • SC12AnkafixUtils

  • SC12AnkafixTestUtils

Globale Variablen

  • C12VarianteVerwenden

  • C12AnkafixClientId

  • C12AnkafixClientSecret

  • C12AnkafixTokenURL

  • C12AnkafixURL

Administrationsmöglichkeiten

Name

Eigenschaft

Typ

C12VarianteVerwenden

true = Varianten im Kalkulationsprozess verwenden

false = Varianten nicht verwenden

Globale Variable

C12AnkafixClientId

Hier muss die Client-Id aus AnKa-fix hinterlegt werden, die für die Authentifizierung genutzt werden soll

Globale Variable

C12AnkafixClientSecret

Hier muss das Client-Secret aus AnKa-fix hinterlegt werden, das für die Authentifizierung genutzt werden soll

Globale Variable

C12AnkafixURL

URL zu AnKa-fix

Globale Variable

C12AnkafixTokenURL

URL zum Tokenabruf aus AnKa-fix

Globale Variable

C12AnkafixStatusURL

URL für die Statusänderung in AnKa-fix

Globale Variable

Übersteuerungsmöglichkeiten


Methodenname

Funktionalität

SC12AnkafixUtils



















addCustomFieldsCustomer

Diese Methode kann genutzt werden, um weitere Felder zu den bestehenden Standardfeldern hinzuzufügen. Dazu muss man lediglich in die Map currentValues weitere Wertepaare einfügen. Der Schlüssel muss hierbei dem Eingabeparameter im Webservice entsprechen.
Beispiel:
currentValues.put("webserviceField", WorkSpaceScriptUtils.getValue(customer, "C2MeinFeld.Customer"));
  
Sollten nicht alle Felder im Container enthalten sein, so können in dieser Methode über die gewohnten Utils weitere Daten ermittelt werden.
Achtung: Datumswerte müssen zwangsweise über die Methode SC12AnkafixUtils.getFormattedTime formatiert werden, da der Webservice diese sonst ablehnt. 

addCustomFieldsInstacc

Diese Methode kann genutzt werden, um weitere Felder zu den bestehenden Standardfeldern hinzuzufügen. Dazu muss man lediglich in die Map currentValues weitere Wertepaare einfügen. Der Schlüssel muss hierbei dem Eingabeparameter im Webservice entsprechen.
Beispiel:
currentValues.put("webserviceField", WorkSpaceScriptUtils.getValue(instacc, "C2MeinFeld.C12INSTACC"));
  
Sollten nicht alle Felder im Container enthalten sein, so können in dieser Methode über die gewohnten Utils weitere Daten ermittelt werden.
Achtung: Datumswerte müssen zwangsweise über die Methode SC12AnkafixUtils.getFormattedTime formatiert werden, da der Webservice diese sonst ablehnt. 

addCustomFieldsQuote

Diese Methode kann genutzt werden, um weitere Felder zu den bestehenden Standardfeldern hinzuzufügen. Dazu muss man lediglich in die Map currentValues weitere Wertepaare einfügen. Der Schlüssel muss hierbei dem Eingabeparameter im Webservice entsprechen.
Beispiel:
currentValues.put("webserviceField", WorkSpaceScriptUtils.getValue(instacc, "C2MeinFeld.Quote"));
  
Sollten nicht alle Felder im Container enthalten sein, so können in dieser Methode über die gewohnten Utils weitere Daten ermittelt werden.
Achtung: Datumswerte müssen zwangsweise über die Methode SC12AnkafixUtils.getFormattedTime formatiert werden, da der Webservice diese sonst ablehnt. 

addCustomFieldsVariant

Diese Methode kann genutzt werden, um weitere Felder zu den bestehenden Standardfeldern hinzuzufügen. Dazu muss man lediglich in die Map currentValues weitere Wertepaare einfügen. Der Schlüssel muss hierbei dem Eingabeparameter im Webservice entsprechen.
Beispiel:
currentValues.put("webserviceField", WorkSpaceScriptUtils.getValue(instacc, "C2MeinFeld.C12VARIANT"));
  
Sollten nicht alle Felder im Container enthalten sein, so können in dieser Methode über die gewohnten Utils weitere Daten ermittelt werden.
Achtung: Datumswerte müssen zwangsweise über die Methode SC12AnkafixUtils.getFormattedTime formatiert werden, da der Webservice diese sonst ablehnt. 

addCustomFieldsVariantMeteringPoint

Diese Methode kann genutzt werden, um weitere Felder zu den bestehenden Standardfeldern hinzuzufügen. Dazu muss man lediglich in die Map currentValues weitere Wertepaare einfügen. Der Schlüssel muss hierbei dem Eingabeparameter im Webservice entsprechen.
Beispiel:
currentValues.put("webserviceField", WorkSpaceScriptUtils.getValue(instacc, "C2MeinFeld.PriceCalc"));
  
Sollten nicht alle Felder im Container enthalten sein, so können in dieser Methode über die gewohnten Utils weitere Daten ermittelt werden.
Achtung: Datumswerte müssen zwangsweise über die Methode SC12AnkafixUtils.getFormattedTime formatiert werden, da der Webservice diese sonst ablehnt. 

addSettingsToVariant

Diese Methode kann genutzt werden, um Settings zu einer Variante hinzuzufügen. Man kann über den Eingabeparameter Daten ermitteln und diese über die Methode SC12AnkafixUtils.createSetting(type, name, value) in ein setting überführen. Jedes Setting muss zur Liste result hinzugefügt werden. Folgende Werte sind zulässig:
type: LONG, DECIMAL, TEXT, BOOLEAN, TIMESTAMP

checkStartCalculation

Kann verwendet werden, um eine erweitere Startprüfung zu implementieren.

getMandatoryFieldsCaseCustomer

Kann anhand des Geschäftspartners die geforderten Pflichtfelder unterscheiden und den entsprechend benannten Fall zurückgeben.

getMandatoryFieldsCaseInstacc

Kann anhand des Anlagenkontos die geforderten Pflichtfelder unterscheiden und den entsprechend benannten Fall zurückgeben.

getMandatoryFieldsCaseQuote

Kann anhand des Angebotes die geforderten Pflichtfelder unterscheiden und den entsprechend benannten Fall zurückgeben.

getMandatoryFieldsCaseVariant

Kann anhand der Variante die geforderten Pflichtfelder unterscheiden und den entsprechend benannten Fall zurückgeben.

getMandatoryFieldsCaseVariantMeteringPoint

Kann anhand der Anlagekontonzuordnung zur Variante die geforderten Pflichtfelder unterscheiden und den entsprechend benannten Fall zurückgeben.

getMeasuringMethodForAnkafix

Liefert das Messverfahren für AnKa-fix zurpck. Hier kann das Mapping angepasst werden.

getMediumForAnkafix

Liefert das Medium für AnKa-fix zurpck. Hier kann das Mapping angepasst werden.

getSearchForCustomer

Liefert die Suche bzw. den Suchnamen zurück, der für die Ermittlung der Geschäftspartnerdaten genutzt werden soll.

getSearchForInstacc

Liefert die Suche bzw. den Suchnamen zurück, der für die Ermittlung der Informationen zum Anlagenkonto genutzt werden soll.

getSearchForQuote

Liefert die Suche bzw. den Suchnamen zurück, der für die Ermittlung der Angebotsdaten genutzt werden soll.

getSearchForVariant

Liefert die Suche bzw. den Suchnamen zurück, der für die Ermittlung der Variantendaten genutzt werden soll.

getVariantStatus

Liefert zu einem Angebotsstatus den passenden Status für AnKa-fix zurück. Hier kann das Mapping angepasst werden.


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.

Skriptmethoden

Skriptklasse

Methodenname

Funktionalität

SC12AnkafixUtils









checkStartCalculation

Kann verwendet werden, um eine erweitere Startprüfung zu implementieren.

getJSONCustomers

Ermittlung der Geschäftspartnerinformationen und erzeugen der Übergabestruktur für AnKa-fix

getJSONInstaccs

Ermittlung der Anlagenkontoinformationen und erzeugen der Übergabestruktur für AnKa-fix

getJSONQuote

Ermittlung der Angebotsinformationen und erzeugen der Übergabestruktur für AnKa-fix

getToken

Abholen des Authentifizierungstokens

post

Senden der Daten an AnKa-fix

createUrl

Erzeugen der URL für einen Aufruf basierend auf der übergebenen Entität

getQuoteValuesFromWebserviceResult

Verarbeiten der Angebotswerte aus der Webservice-Antwort

getVariantsFromQuote

Auslesen der Variantenliste aus der Webservice-Antwort

getVariantValuesFromWebserviceResult

Verarbeiten der Variantenwerte aus der Webservice-Antwort

getPricecalcsFromVariant

Auslesen der Preiskalkulationen aus der Webservice-Antwort

Prozessablauf

Kalkulation starten (EVI → AKF)

  • Die Kalkulation kann über den Schalter "Angebot kalkulieren" in der Aktionsbox des Angebots ausgeführt werden.

  • Wurde noch keine Preiskalkulation erzeugt und der Schalter "Angebot kalkulieren" betätigt, so wird dem User eine Hinweismeldung angezeigt, dass zuerst die Preiskalkulation(en) und Variante(n) erzeugt werden müssen, bevor der Prozess gestartet werden kann.

  • Wenn das Angebot erfolgreich in AFK kalkuliert und zurück in EVI übertragen wurde (Status KALKULIERT) wird bei der Betätigung des Schalter "Angebot kalkulieren" eine Hinweismeldung ausgegeben, dass das Angebot bereits kalkuliert wurde. Eine erneute Übertragung ist in diesem Fall nicht möglich.

  • Bei Betätigung des Schalters "Angebot kalkulieren" wird der aktuelle Benutzer in das Feld "aktueller Bearbeiter" eingetragen. Dies ermöglicht die Benachrichtigung des Users nach erfolgreicher Rückübertragung der Daten aus AnKa-fix ins CRM anhand eines Benutzertasks. Nach dem Eintrag erfolgt die Übertragung der Angebotsdaten an AnKa-fix.

Folgende Entitäten werden übertragen:

Entität

Tabellenblatt aus Anlage "EVI-AnKa-fix_Mapping*.xlsx"

Anmerkung

Geschäftspartner (Interessent/Kunde)

Kunde

Es wird immer der gleiche Service aufgerufen, egal ob der Geschäftspartner in AKF bereits existiert oder nicht.

Anlagenkonto

Zählpunkt


Angebot

Kalkulationsvorgang


Variante

Kalkulationsvariante


Preiskalkulation

Zählpunktkalkulation


Bedingungen

Folgende Bedingungen sind bei der Kalkulation zu beachten:

  • Je Variante kann es 1-n Zählpunkte (ZP) geben.

  • Ein ZP darf maximal einmal mit einer Laufzeit in einer Variante sein.

  • Die Laufzeit der ZP muss innerhalb der Variantenlaufzeit liegen.

Die einzelnen Objekte werden einzeln per REST übertragen (3 Aufrufe für Geschäftspartner, Anlagenkonto, Angebot). Es sind jeweils mehrere Objekte je Ebene/Art möglich.

Event

Außerdem legt die Aktion "Angebot kalkulieren" einen Eintrag "QUOTE_CALCULATION" in der EVENT-Tabelle an.

Der Event-Datensatz beinhaltet folgende Felder:

Feld

Wert

Entität

Quote

Primärschlüssel

PK des Datensatzes aus dem der Prozess ausgelöst wurde

Mitarbeiter

Mitarbeiter, der den Prozess ausgelöst hat

Eventname

QUOTE_CALCULATION

Rückgabewerte

Folgende Werte werden aus AFK an EVI übertragen und als Event-Result festgehalten:

  • Status

  • ID

  • Fehlermeldungen

  • URL

REST-Aufrufe

Nr.

Richtung

Beeinhaltet / Mapping Tabellenblatt

Beispiel / REST Name

Rückgabe

1

EVI=>AKF

Kunde

customer-AllValues.json

OK oder Fehler

2

EVI=>AKF

Zählpunkt

meteringPoints-AllValues_SLP_GAS.json

meteringPoints-AllValues_SLP_POWER.json

OK oder Fehler

3

EVI=>AKF

Vorgang,

Variante,

Zählpunktkalkulation,

Kalkulationseinstellungen

pricingOffer_1.json

  • Im Erfolgsfall siehe Yaml-Dokument

  • Im Fehlerfall wird:

bei allen drei Endpunkten ein JSON mit in der folgenden Struktur zurückgegeben:

"status": 400, 
"code": "JSON_FORMAT_ERROR", 
detail: "Detailed error message" 
}

"status" (number) - The HTTP status code ([RFC7231], Section 6) 

      generated by the origin server for this occurrence of the problem.


"code" (string) - A problem category


"detail" (string) - A human-readable explanation specific to this occurrence of the problem.

Der Aufbau der Fehlermeldung orientiert sich an dem RFC7807 Standard.

4

AKF=>EVI

Kalkulationsergebnisse von AKF nach EVI

AKF startet EVI-BPM-Prozess über REST Service. Kalkulationsergebnis wird per JSON-Struktur übergeben. EVI muss Benutzer über BPM-Aktion informieren. Kalkulationsbenutzer muss am Angebot hinterlegt werden, damit der Prozess dem entsprechendem Benutzer zugeordnet werden kann.

OK oder Fehler

5

EVI=>AKF

Statuswechsel

ChangeState Beschreibung siehe unten Abschnitt "Angebotsstatus aktualisieren (EVI => AKF)"


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.