@startuml
autonumber
box TMF622 Product Order, category=PV/VBL
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: Ordering"
eauf -> tauf: POST ProductOrder(productOrderItemCreate, VAId)
eauf <-- tauf: 201 Created(acknowledged)
note right: PV
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Accepted)
note right: QEB
tauf -> leab: notifyKUE
leab -> leab: POST ProductOrder(productOrderItemDelete, category=terminationProviderChange)
leab --> leab: 201 Created(acknowledged)
note right: TEQ
leab -> tab: ProductOrderCreatedEvent(PO2)
tab <- leab: ProductOrderStateChangeEvent(PO2, Accepted)
note right: QEB
tab <- leab: ProductOrderAttributeValueChangeEvent(PO2, providerChangeInfo, date)
leab -> tab: ProductOrderStateChangeEvent(PO2, Pending)
note right: AKM-PV
leab -> tab: ProductOrderInformationRequiredEvent(PO2, ProviderChangeResult.approval)
leab <- tab: POST RespondProviderChange(PO2, result.approval=false)
note right: RUEM-PV
leab--> tab: 201 Created(acknowledged)
leab -> tab: RespondProviderChangeStateChangedEvent(inProgress)
leab -> tab: ProductOrderAttributeValueChangeEvent(PO2)
note right: ProviderChangeResult.approval=false
tab <- leab: ProductOrderStateChangeEvent(PO2, Accepted)
leab -> tab: RespondProviderChangeStateChangedEvent(done)
leab -> tab: ProductOrderStateChangeEvent(PO2, Rejected)
note right: ABBM-PV
tauf <- leab: notifyPVRejected
eauf <- tauf: ProductOrderAttributeValueChangeEvent(PO)
note right: ProviderChangeResult.approval=false
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
note right: ABBM
@enduml |