@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"
participant taufr as "Seller of new line: Reschedule 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
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)
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
leab -> tab: ProductOrderStatusChangeEvent(PO2, InProgress)
note right: ABM-PV
eauf <- tauf: ProductOrderStateChangeEvent(PO,pending)
note right: TAM
tauf -> leab:notifyDelayed
leab -> tab: ProductOrderProcessingMessageEventProductOrderJeopardyAlertMessageEvent(PO2, delayMessageorderDelay)
note right: VZM-PV
eauf <- tauf: ProductOrderInformationRequiredEvent(PO,requestedCompletionDate, requestedTimeSlot)
eauf -> taufr: POST RescheduleProductOrder
eauf <-- taufr: 201 Created(acknowledged)
eauf <- taufr: POST RescheduleProductOrderStateChangeEvent(inProgress)
eauf <- tauf: POST ProductOrderAttributeValueChangeEvent(PO, requestedCompletionDate, appointment)
eauf <- taufr: POST RescheduleProductOrderStateChangeEvent(done)
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
leab -> tab: ProductOrderStatusChangeEvent(PO2, InProgress)
note right: ABM-PV
eauf <- tauf: ProductOrderStateChangeEvent(PO,Completed)
note right: ERLM
tauf -> leab:notifyCompleted
leab -> tab: ProductOrderStatusChangeEvent(PO2, Completed)
note right: ERLM-PV
eauf <- tauf: POST ProductOrderAttributeValueChangeEvent()
note right: e.g.: productOrderItem.product.startDate
eauf <- tauf: ProductOrderStateChangeEvent(PO,Closed)
note right: ENTM
tauf -> leab:notifyClosed
leab -> tab: POST ProductOrderAttributeValueChangeEvent()
note right: e.g.: productOrderItem.product.endDate
leab -> tab: ProductOrderStatusChangeEvent(PO2, Closed)
note right: ENTM-PV |