@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 -> 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)
note right: RUEM-PV
leab -> tab: RespondProviderChangeStateChangedEvent(Acknowledged)
leab -> tab: RespondProviderAttributeValueChangedEvent(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 |