...
Titel | Auftrag (Providerwechsel / Verbundleistung) anlegen |
---|---|
Kurzbeschreibung | Folgender Ablauf beschreibt die typischen API Interaktionen zwischen dem aufnehmenden Auftrageber (EKPauf und TNBauf, aka AGauf), dem Leistungserbringer (LE, aka ANE) und dem abgebenden Auftraggeber (EKPab und TNBab, aka ABab) für die Anwendungsfälle "Auftrag (Providerwechsel / Verbundleistung) anlegen - Schlechtfall Negative RespondProviderChange (RUEM-PV)". Zu diesen Anwendungsfall sind zwei Sequenzen relevant:
|
Vorbedingung |
|
Auslöser | Der aufnehmende Auftraggeber legt einen Auftrag für den Providerwechsel bzw. die Verbundleistung beim Leistungserbringer (ANE) an. Schlechtfall: Der abgebende Provider Auftraggeber lehnt die Anfrage zum Providerwechsel ab (im Beispiel mit der Begründung: falsche Vorabstimmungs-ID) |
Ergebnis | Nach Eingang der negativen RespondProviderChange (RUEM-PV) wird der Auftag wird seitens des Leistungserbringers abgebrochen - Status Rejected Der Leistungserbringer sendet an den aufnehmenden Provider Auftraggeber ein StateChangeEvend "Rejected" (ABBM) Der Leistungserbringer sendet an den abgebenden Provider Auftraggeber ein StateChangeEvend "Rejected" (ABBM-PV), hier nicht dargestellt |
Ablauf
Codeblock | ||||
---|---|---|---|---|
| ||||
@startuml
autonumber
box Product Order vom Typ PV (PO)
participant eauf as "EKP auf + TNB auf (AG auf)"
participant tauf as "ANE (LEauf)"
box (Sub)Product Order vom Typ KUE-LE (PO2)
participant leab as "ANE (LEab)"
participant tab as "TNB ab + EKPab (AG ab)"
eauf -> tauf: POST ProductOrder(productOrderItemCreate, VAId)
note right: PV
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Acknowleged)
tauf -> leab: notifyKUE
leab -> leab: POST ProductOrder(productOrderItemDelete, category=KUE-LE)
leab -> tab: ProductOrderCreatedEvent(PO)
tab <- leab: ProductOrderStateChangeEvent(PO, Acknowleged)
tab <- leab: ProductOrderAttributeValueChangeEvent(PO, providerChangeInfo, date)
leab -> tab: ProductOrderStateChangeEvent(PO, Pending)
note right: AKM-PV
leab -> tab: ProductOrderInformationRequiredEvent(PO, fieldPath=productOrder.ProviderChangeResult.approval)
leab <- tab: POST RespondProviderChange(PO, result.approval=false)
note right: RUEM-PV
leab -> tab: RespondProviderChangeStateChangedEvent(acknowledged)
leab -> tab: RespondProviderChangeStateChangedEvent(inProgress)
leab -> tab: ProductOrderAttributeValueChangeEvent(PO, productOrder.ProviderChangeResult.approval=false)
leab -> tab: RespondProviderChangeStateChangedEvent(done)
note right: Ablehnung der RespondProviderChange durch LE
leab -> tab: ProductOrderStateChangeEvent(PO, Rejected)
tauf <- leab: notifyPVRejected
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
@enduml |
Img | src | //www.plantuml.com/plantuml/png/dPH1Szem48Nl_XKxEU4fvD1ZfdJYffuE0mqU8BxBrcBKof8hhsZvzvNbk4I5a25SCFQ-jz_RjRXlYHcojOoO9QriNQ29m7sYGl-1p6XkIuAbuMXWhslO71h8SXXbopXgd5AKec6A09dT0clX9frdq5r_WCtZ5tyrIhvrt_5D8A11a3ocC5galkBO6KPhMyJd-y-VqiaYxHW-XX0IMH5u5YTD--SUhN2CZfOLFQ6hXRw_ppBvx17l85kkDyCWFCUeUV5ZHbW_66I4OyYJ6OyZfGd1Y6f7Jfj7ptQV9hrTuBGcHhPzs35LORf7HIxI69BofzA_9LRetAXdyT7km7cBxS7bZtpKuNxFU1doAqhi84k7McbpcFPJZ2FuvqMi2FdwO7n0wsWAbyGtFKs25u9Sa2P4HXIMC6VIddYu67lHeVZxCxNLO-2CC0wftsJ9K76Xgd0zoVpx9CjVT-hQcPgHq6g5lwmmo8-EMu6IPunsqvUZliq2u1MsLj8jQxeSJ0xJxb-7ON6kgD6AXqhVmuJowPR95iCCgwVqDCHPn-DSXXZiUK7SR-Wz3aAvYifXjg7-kWs_FRqW_dj0kLRut_8BYJjbLGLETju6k3Nb3XRfbI_R2dzWISFnTSiEZc-M3y-l-si8ZEzHSLlBlm00|||
---|---|---|---|---|
Bitbucket file macro | ||||
|
Beispieldaten (linker Block, TNBauf ↔ ANE)
...
Erweitern | ||
---|---|---|
| ||
siehe Auftrag (Providerwechsel / Verbundleistung) anlegen , Abschnitt "Beispieldaten (linker Block, TNBauf ↔ ANE)", Kapitel "ProductOrderStateChangeEvent: AcknowledgedAccepted" |
ProductOrderAttributeValueChange (19)
Bitbucket file macro | ||||||
---|---|---|---|---|---|---|
|
Farbcodierung:
rote Schriftfarbe = Abweichungen im Vergleich zum Event ProductOrderAttributeValueChange aus dem Gutfall im Vorfeld des ProductOrderStateChange inProgress
fachliche Felder | Daten | API Felder | ||
technisches EventDatum | 2022-05-11T10:33:00+01:00 | eventTime | ||
Pointer auf die gemachte Änderung | /providerChangeInfo /relatedParty/
| fieldPath.path fieldPath.typeOfChange = add | ||
Supplier-Daten | ||||
Rolle | orderManagementSupplierContactorderManagementSellerContact | relatedParty.role | ||
Anrede | Frau | relatedParty.salutation | ||
Vorname | Lisa | relatedParty.givenName | ||
Nachname | Bach | relatedParty.familyName | ||
Telefonnummer | 0221/789456 | relatedParty/contactMedium.mediumType = phone "PhoneContactMedium" relatedParty/contactMedium/characteristic.contactType = "fixed" relatedParty/contactMedium/characteristic.phoneNumber | ||
Mobilfunknummer | 0178/78787878 | relatedParty/contactMedium.mediumType = phone "PhoneContactMedium" relatedParty/contactMedium/characteristic.contactType = "mobile" relatedParty/contactMedium/characteristic.phoneNumber | ||
Email-adresseAdresse | l.bach@example.net | relatedParty/contactMedium.mediumType = email "EmailContactMedium" relatedParty/contactMedium/characteristic.contactType = "email" relatedParty/contactMedium/characteristic.emailAddress | ||
Daten vom abgebenden Provider | ||||
Rolle | handingOverProvider | relatedParty.role | ||
ProvidernameDEU.1UND1 | 1&1 Internet AG | relatedParty.name | ||
Zustimmung Providerwechsel | FALSE | productOrder/providerChangeInfo.approval | ||
Antwortcode | KVE | productOrder/providerChangeInfo.responseReason[0].code | ||
Antworttext | Vorabstimmungs-ID fehlerhaft | productOrder/providerChangeInfo.responseReason[0].description | ||
| ||||
| ||||
|
| |||
| ||||
ProductOrderStateChangeEvent: rejected
...
ProductOrderStateChangeEvent: rejected (19+1)
Bitbucket file macro | ||||||
---|---|---|---|---|---|---|
|
ProductOrderStateChangeEvent: rejected | ||||
fachliche Felder | Daten | API Felder | ||
Orderstatus | rejected | state | ||
fachliches Änderungsdatum | 2022-05-20T10:40:00+01:00 | stateChangeDate | ||
technisches EventDatum | 2022-05-20T10:40:00+01:00 | eventTime | ||
Grund der Änderung | 0041 "Der abgebende Provider hat die Kündigung seines Bestandes abgelehnt." | stateChangeReason.code stateChangeReason.description | Historisierung acknowledged fachliches Änderungsdatum Grund der Änderung | 2022-05-11T10:31:00+01:00 0000 "Keine Änderung zum Auftrag" stateChangeHistory.@type = StateChange stateChangeHistory.changeDate stateChangeHistory.changeReason.code stateChangeHistory.changeReason.description |