Ermitteln des Kalkulationsergebnisses
Technische Dokumentation
Komponentenübersicht
Prozesse
C12SYNPull
Skriptbibliothek
SC12SYNUtils
SC12SYNTests
Globale Variablen
C12SYN_ClientID
C12SYN_URL_requestToken
C12SYN_ClientCredentials
C12SYN_URL
Administrationsmöglichkeiten
Administrationsmöglichkeiten durch folgende globale Variablen:
Die Werte für diese Variablen sind bei Syneco zu erfragen/beantragen.
Globale Variable | Beschreibung |
---|---|
C12SYN_URL_requestToken | URL zur Abfrage des Tokens |
C12SYN_ClientID | ClientID zur Abfrage des Tokens |
C12SYN_ClientCredentials | Passwort zur Abfrage des Tokens |
C12SYN_URL | URL zum Zugriff auf Synection |
Ü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 Skriptmethoden im Projekt übersteuert wurden und ob die Methodenänderung aus dem Standard im Projekt übernommen werden soll.
Ablaufbeschreibung
Ermitteln des Kalkulationsergebnisses
Nach der Übertragung der Kalkulationsparameter zu einem Angebot startet Synection die Kalkulation. Dies kann einige Zeit in Anspruch nehmen und erfolgt deshalb asynchron. Als Ergebnis der Übertragung wird deshalb nur eine URL zurückgeliefert, die im Angebot eingetragen wird (siehe 4. Ergebnis eintragen).
Um das eigentliche Ergebnis von Synection zu ermitteln, wird deshalb der Prozess C12SYNPull in zyklischen Abständen gestartet. Er ermittelt alle Angebote mit dem Status "IN KALKULATION", die eine Vorgangs-ID (C12InstanceID.Quote) besitzen, die den Text "syneco.net" enthält.
Die in der Vorgangs-ID gespeicherte URL wird dann aufgerufen, um das Ergebnis von Synection zu lesen. Wie beim Übertragen der Kalkulationsparameter wird hier in 3 Schritten gearbeitet:
1. Token anfordern
Hierzu wird wie bei den Kalkulationsparametern die Methode SC12SYNUtils.getToken() aufgerufen.
2. Webservice aufrufen
Dies geschieht ebenfalls mit der Methode SC12SYNUtils.httpTransfer(). Im Gegensatz zur Übertragung der Kalkulationsparameter wird hier jedoch die Aktion GET verwendet. Da die URL bereits alle Informationen enthält, sind keine weiteren Parameter mehr notwendig.
3. Ergebnis eintragen
Dazu wird die Methode SC12SYNUtils.storeCalculatedResult() aufgerufen. Sie ermittelt die Komponente "status" aus der Antwort des Webservices. Im Fall status=OFFERED oder status=EXPIRED trägt sie das Ergebnis in EVI ein. Dazu werden folgende Werte gesetzt:
Ergebnis Webservice | Zielfeld EVI |
---|---|
calculatedQuantity | C12MengeLZ.C12VARIANT, C12MengeLZ.PriceCalc |
price | C12EP_CTKWH.C12VARIANT, C12EP_CTKWH.PriceCalc |
externalId | enthält den PK und dient zur Ermittlung der Variante (C12VARIANT) |
Außerdem wird der Status des Angebots, der Varianten und der Preiskalkulationen auf "KALKULIERT" gesetzt.
Liefert der Webservice den status = ERROR, dann wird der Status des Angebots, der Varianten und der Preiskalkulationen auf "IN BEARBEITUNG" gesetzt. Der Benutzer kann dann die Daten ändern und erneut zur Kalkulation übertragen.
4. Event als Ergebnis erzeugen
Da der Prozess asynchron läuft, wird der Benutzer über ein Event informiert. Je nach Wert status, den der Webservice liefert, wird ein Event mit anderem Namen und anderem Eventresult erzeugt:
Status | Event |
---|---|
OPEN | Noch kein Ergebnis. Wird komplett ignoriert und beim nächsten mal nochmal abgefragt. |
CALCULATED | QUOTE_CALCULATION_CLEARING |
OFFERED | QUOTE_CALCULATION_FINISHED |
EXPIRED | QUOTE_CALCULATION_FINISHED |
REJECTED | Sollte nicht vorkommen und wird ignoriert. |
CONTRACTED | Sollte nicht vorkommen und wird ignoriert. |
DISCARDED | Sollte nicht vorkommen und wird ignoriert. |
ERROR | QUOTE_CALCULATION_INPUTDATAERROR |