@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, AcknowlegedAccepted)
tauf -> leab: notifyKUE
leab -> leab: POST ProductOrder(productOrderItemDelete, category=KUE-LEterminationProviderChange)
leab -> tab: ProductOrderCreatedEvent(PO2)
tab <- leab: ProductOrderStateChangeEvent(PO, AcknowlegedAccepted)
tab <- leab: ProductOrderAttributeValueChangeEvent(PO2, providerChangeInfo, date)
leab -> tab: ProductOrderStateChangeEvent(PO2, Pending)
note right: AKM-PV
leab -> tab: ProductOrderInformationRequiredEvent(PO2, fieldPath=productOrder.ProviderChangeResult.approval)
leab <- tab: POST RespondProviderChange(PO2, result.approval=false)
note right: RUEM-PV
leab -> tab: RespondProviderChangeStateChangedEvent(acknowledged)
leab -> tab: RespondProviderChangeStateChangedEvent(inProgress)
leab -> tab: ProductOrderAttributeValueChangeEvent(PO2, productOrder.ProviderChangeResult.approval=false)
leab -> tab: RespondProviderChangeStateChangedEvent(done)
leab -> tab: ProductOrderStateChangeEvent(PO2, Rejected)
note right: ABBM-PV
tauf <- leab: notifyPVRejected
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
note right: ABBM
@enduml |