@startuml
autonumber
box TMF622 Product Order, category=PV
participant eauf as "Buyer of new line: Ordering"
participant tauf as "Seller of new line: Product Order"
box TMF622 Product Order, category=TerminationProvider
participant leab as "Seller of old line: Product Order"
participant tab as "Buyer of old line: Product Order"
participant tab as "Buyer of old line: Ordering"
eauf -> tauf: POST ProductOrder(productOrderItemCreate, VAId)
eauf <-- tauf: 201 Created(acknowledged)
note right: PV
alt Kaufmännische Validierung schlägt fehl old line: Ordering"
eauf -> tauf: POST ProductOrder(productOrderItemCreate, VAId)
eauf <-- tauf: 201 Created(acknowledged)
note right: PV
alt Kaufmännische Validierung schlägt fehl
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
note right: ABBM
else Kaufmännische Validierung erfolgreich
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Accepted)
note right: QEB
tauf -> leab: notifyKUE
note over leab, tab: Die Sequenz [[https://confluence.t-systems-mms.eu/pages/viewpage.action?pageId=547957140 Auftrag (Kündigung durch LE, GF PV/VBL) anlegen]] wird hier inkludiert
leab ->tauf:notifyRUEM-PV(approval, reason)
alt negative RUEM-PV
note over eauf, tauf: Siehe [[https://confluence.t-systems-mms.eu/pages/viewpage.action?pageId=587837181 1) Negative RespondProviderChange (RUEM-PV)]]
else positive RUEM-PV
alt Fehlschlag Technische Validierung und Erteilung
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
note right: ABBM
else Kaufmännische Validierung erfolgreich
tauf -> leab: notifyRejected
eaufleab <-> tauftab: ProductOrderStatusChangeEvent(POPO2, Accepted)
note right: QEB
tauf -> leab: notifyKUE
note over leab, tab: Die Sequenz [[https://confluence.t-systems-mms.eu/pages/viewpage.action?pageId=547957140 Auftrag (Kündigung durch LE, GF PV/VBL) anlegen]] wird hier inkludiert
leab ->tauf:notifyRUEM-PV(approval, reason)
alt negative RUEM-PV
note over eauf, tauf: Siehe [[https://confluence.t-systems-mms.eu/pages/viewpage.action?pageId=587837181 1) Negative RespondProviderChange (RUEM-PV)]]
else positive RUEM-PV
alt Fehlschlag Technische Validierung und ErteilungRejected)
note right: ABBM-PV
else Technische Validierung und Erteilung erfolgreich
eauf <- tauf: POST ProductOrderAttributeValueChangeEvent()
note right: e.g.: expectedCompletionDate
eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
note right: ABM
tauf -> leab:notifyInProgress
leab -> tab:POST ProductOrderAttributeValueChangeEvent()
note right: e.g.: expectedCompletionDate
eaufleab <-> tauftab: ProductOrderStatusChangeEvent(POPO2, RejectedInProgress)
note right: ABBM ABM-PV
alt Fehlschlag während der Realisierung
note over eauf, tauf: -> leab: notifyRejected
Siehe [[https://confluence.t-systems-mms.eu/display/tfit/2%29+Fehlschlag+beim+Leistungserbringer 2) Fehlschlag beim Leistungserbringer]]
leab -> tab: ProductOrderStatusChangeEvent(PO2, Rejected)
else Realisierung erfolgreich
note right: ABBM-PV alt Fehlschlag am Schalttag
else Technische Validierung und Erteilung erfolgreich note over eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
, tauf: Siehe [[https://confluence.t-systems-mms.eu/display/tfit/3%29+Fehlschlag+am+Schalttag 3) Fehlschlag am Schalttag]]
note right: ABM else Schaltung erfolgreich
tauf -> leab:notifyInProgress leabeauf <-> tabtauf: ProductOrderStatusChangeEventProductOrderStateChangeEvent(PO2, InProgress)
note right: ABM-PV
alt Fehlschlag während der RealisierungPO,Completed)
note noteright: overERLM
eauf, tauf: Siehe [[https://confluence.t-systems-mms.eu/display/tfit/2%29+Fehlschlag+beim+Leistungserbringer 2) Fehlschlag beim Leistungserbringer]] tauf -> leab:notifyInCompleted
else Realisierung erfolgreich leab -> alt Fehlschlag am Schalttagtab: ProductOrderStatusChangeEvent(PO2, Completed)
note over eauf, tauf: Siehe [[https://confluence.t-systems-mms.eu/display/tfit/3%29+Fehlschlag+am+Schalttag 3) Fehlschlag am Schalttag]]right: ERLM-PV
eauf <- elsetauf: SchaltungPOST erfolgreichProductOrderAttributeValueChangeEvent()
eaufnote <- tauf: ProductOrderStateChangeEvent(PO,Completed)right: e.g.: productOrderItem.product.startDate
taufeauf <-> leab:notifyInCompletedtauf: ProductOrderStateChangeEvent(PO,Closed)
leab -> tabnote right: ProductOrderStatusChangeEvent(PO2, Completed)ENTM
tauf note-> rightleab:notifyInClosed
ERLM-PV leab eauf <-> tauftab: ProductOrderStateChangeEvent(PO,ClosedPOST ProductOrderAttributeValueChangeEvent()
taufnote -> leab:notifyInClosedright: e.g.: productOrderItem.product.endDate
leab -> tab: ProductOrderStatusChangeEvent(PO2, Closed)
note right: ENTM-PV
end
end
end
end
end
@enduml |