Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

TitelAuftrag (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:

  • Die Vorabstimmung
  • Die Durchführung
Vorbedingung
  • Rahmenverträge und Dienstverträge sind vorhanden
  • Der Auftraggeber hat die Verfügbarkeit des Produktes geprüft
  • der AGab hat sich beim LE für Kündigungen durch den Leistungserbringer registriert (siehe Auftrag (Kündigung durch LE) anlegen)
Auslöser

Der aufnehmende Auftraggeber legt einen Auftrag für den Providerwechsel bzw. die Verbundleistung beim Leistungserbringer (ANE) an.

Schlechtfall: Der abgebende Provider 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 ein StateChangeEvend "Rejected" (ABBM)

Der Leistungserbringer sendet an den abgebenden Provider ein StateChangeEvend "Rejected" (ABBM-PV), hier nicht dargestellt


Ablauf

Codeblock
languagetext
collapsetrue
@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(POPO2)
tab <- leab: ProductOrderStateChangeEvent(PO, Acknowleged)
tab <- leab: ProductOrderAttributeValueChangeEvent(POPO2, providerChangeInfo, date)
leab -> tab: ProductOrderStateChangeEvent(POPO2, Pending)
note right: AKM-PV
leab -> tab: ProductOrderInformationRequiredEvent(POPO2, fieldPath=productOrder.ProviderChangeResult.approval)
 
leab <- tab: POST RespondProviderChange(POPO2, result.approval=false)
note right: RUEM-PV
leab -> tab: RespondProviderChangeStateChangedEvent(acknowledged)
leab -> tab: RespondProviderChangeStateChangedEvent(inProgress)
leab -> tab: ProductOrderAttributeValueChangeEvent(POPO2, productOrder.ProviderChangeResult.approval=false)
leab -> tab: RespondProviderChangeStateChangedEvent(done)
note right: Ablehnung der RespondProviderChange
durch
LE
leab -> tab: ProductOrderStateChangeEvent(POPO2, Rejected)
note right: ABBM-PV
tauf <- leab: notifyPVRejected
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
note right: ABBM
@enduml

Img
src//www.plantuml.com/plantuml/png/dPH1Szem48NldPD1Szem48Nl_XKxEU4fvD1ZfdJYffuE0mqU8BxBrcBKof8hhsZvzvNbk4I5a25SCFQXKxEU4fv91ZfdHYKa-78GqU8BxBQ35gRScLLxJy-jzqeMxg2GEaDoYOttlVtUhlJG4jDawYfYXfGqTO4w0liN5UeFP5fnioLOQeuQ3gg6pR61B8THjeoZnYh5LZHC4Y0pEs0jtAIB3Dpp9zWypxgdKVBD_RjRXlYHcojOoO9QriNQ29m7sYGlOzl0W7rWkGvXT5JwYl-1p6XkIuAbuMXWhslO71h8SXXbopXgd5AKec6A09dT0clX9frdq5rTORHsXJns_WCtZ5tyrIhvrt_5D8A11a3ocC5galkBO6KPhMyJdqNB-ydaANKCTo54XQm8F8kBflvxXrPOHalB2azeQy7txx9CldI8zv0jrvj-VqiaYxHW41t7g3bxcHFMZnePuHZoPCxZI2f2qABSazNcqSdkyyJR1KvhOcJQnpsJ9QO7b6GZZI7P_fJgTuKbMZVoB5sqUx3UOdUq-XX0IMH5u5YTDIFttlz--SUhN2CZfOLFQ6hXRw_ppBvx17l85kkDyCWFCUeUV5ZHbW_66I4OyYJ6OyZfGd1Y6f7Jfj7ptQV9hrTuBGcHhPzs35LORf7HIxI69BofzA_9LRetAXdyT7km7cBxS7bZtpKuNxFU1doAqhi84k7McbpcFPJZ2FuvqMi2FdwO7n0wsWAbyGtFKs25u9Sa2P4HXIMC6VIddYu67lHeVZxCxNLO-2CC0wftsJ9K76Xgd0zoVpx9CjVT-hQcPgHq6g5lwmmo8-EMu6IPunsqvUZliq2u1MsLj8jQxeSJ0xJxb-7ON6kgD6AXqhVmuJowPR95iCCgwVqDCHPn-DSXXZiUK7SR-Wz3aAvYifXjg7-kWs_FRqW_dj0kLRut_8BYJjbLGLETju6k3Nb3XRfbI_R2dzWISFnTSiEZc-M3y-l-si8ZEzHSLlBlm00OXo6_8eLEiWj8ooLFaxz5EC8UYytdP3F1-CzcfssBN5HdE8o2Wua6P0cH5eKXZ1dbNdbSJS66-GWR9d_C9SxDGRE2EEGUnZ66MKekP1bkA5ayNsIvV-tSlrqpKWekS9VHcZaPvOxWHNF6Esdv-E-pGBa5RQceblMk2IiwYVkZqI_F5lKACb3fM-YG_rqnweMmnIhb_GYnjkMPwCv1M6d9N6tfGyv26ahIelPXlehj_pE_CBy7oFbIbhbjGTdXJzmIyXVdPpPh9iv-UiTtD0ixpNNtlw1Pj43IcxgwYy0

Beispieldaten (linker Block, TNBauf ↔ ANE)

...