Zum Ende des Banners springen
Zum Anfang des Banners springen

3) Fehlschlag am Schalttag

Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 52 Nächste Version anzeigen »


Beschreibung

TitelAuftrag (Providerwechsel / Verbundleistung) anlegen
Kurzbeschreibung

Folgender Ablauf beschreibt die typischen API Interaktionen zwischen dem aufnehmenden Auftrageber (EKPauf und TNBauf, aka AGauf), dem Leistungserbringer (LE, aka ANE) und dem abgebenden Auftraggeber (EKPab und TNBab, aka ABab) für die Anwendungsfälle "Auftrag (Providerwechsel / Verbundleistung) anlegen - Schlechtfall Negative RespondProviderChange (RUEM-PV)".

Zu diesen Anwendungsfall sind zwei Sequenzen relevant:

  • Die Vorabstimmung
  • Die Durchführung
Vorbedingung
  • Rahmenverträge und Dienstverträge sind vorhanden
  • Der Auftraggeber hat die Verfügbarkeit des Produktes geprüft
  • der AGab hat sich beim LE für Kündigungen durch den Leistungserbringer registriert (siehe Auftrag (Kündigung durch LE) anlegen)
Auslöser

Der aufnehmende Auftraggeber legt einen Auftrag für den Providerwechsel bzw. die Verbundleistung beim Leistungserbringer (ANE) an.

Schlechtfall: Am Schalttag kann die Bereitstellung nicht erfolgen. 

Ergebnis

Der Leistungserbringer fordert beim aufnehmenden Provider einen neuen Termin an (Status "Pending" - Information Required (TAM))

Der Leistungserbringer sendet an den abgebenden Provider eine Verzögerungsmeldung (ProcessingMessage "OrderDelay", (VZM-PV))

Nach erfolgter Terminverschiebung durch den aufnehmenden Provider sendet der Leistungserbringer an den abgebenden Provider eine Information über den neuen Bereitstellungstermin: ProcessingMessage "orderConfirmationUpdate", (erneute ABM-PV)

Der weitere Verlauf wird hier nicht mehr betrachtet.

Ablauf

Variante erfolgreiche Schaltung nach Terminanforderung

@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: ProductOrderProcessingMessageEvent(PO2, delayMessage)
note right: VZM-PV
eauf <- tauf: ProductOrderInformationRequiredEvent(PO,requestedCompletionDate)
eauf -> taufr: POST RescheduleProductOrder
eauf <-- taufr: 201 Created(acknowledged)
eauf <- taufr: POST RescheduleProductOrderStateChangeEvent(inProgress)
eauf <- tauf: POST ProductOrderAttributeValueChangeEvent(PO, requestedCompletionDate)
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

Beispieldaten (linker Block, TNBauf ↔ ANE)

 1) Post ProductOrder (providerChange) - identisch zum Gutfall

 2) ProductOrderStateChangeEvent: Accepted - identisch zum Gutfall

 vor 5) ProductOrderAttributeValueChange - identisch zum Gutfall

 5) ProductOrderStateChangeEvent: inProgress - identisch zu Gutfall und Geschäftsfall Neu


8) ProductOrderStateChangeEvent: pending

ProductOrderStateChangeEvent: pending
fachliche FelderDaten API Felder
Orderstatus pendingstate 
fachliches Änderungsdatum 2022-12-16T11:30:00+01:00stateChangeDate 
technisches EventDatum2022-12-16T11:30:00+01:00eventTime
Grund der Änderung

6001

"Endkunde nicht angetroffen"

stateChangeReason.code

stateChangeReason.description

11) ProductOrderInformationRequiredEvent

fachliche FelderDatenAPI Felder
Feld, zu dem eine Information benötigt wird

/requestedCompletionDate

replace

fieldPath.path

fieldPath.typeOfChange

12) POST RescheduleProductOrder

fachliche FelderDatenAPI Felder
Verschobener Kundenwunschtermin

2022-12-19T12:00:00+01:00

rescheduledRequestedCompletionDate

Wunschzeitfenster

2022-12-19T08:00:00+01:00

2022-12-19T12:00:00+01:00


productOrderItem.requestedTimeSlot.validFor.startDateTime

productOrderItem.requestedTimeSlot.validFor.endDateTime

13a) POST RescheduleProductOrderStateChangeEvent: accepted

fachliche FelderDatenAPI Felder
technisches EventDatum2022-12-16T11:40:00+01:00eventTime
Orderstatusacceptedevent.rescheduleProductOrder.state
Orderstatus Änderungsdatum 2022-12-16T11:40:00+01:00event.rescheduleProductOrder.stateChangeDate

13b) POST RescheduleProductOrderStateChangeEvent: inProgress

fachliche FelderDatenAPI Felder
technisches EventDatum2022-12-16T11:40:10+01:00eventTime
OrderstatusinProgressevent.rescheduleProductOrder.state
Orderstatus Änderungsdatum 2022-12-16T11:40:10+01:00event.rescheduleProductOrder.stateChangeDate

14) POST ProductOrderAttributeValueChangeEvent

fachliche FelderDatenAPI Felder
technisches EventDatum2022-12-16T11:40:20+01:00eventTime
Kundenwunschtermin2022-12-19T12:00:00+01:00

event.productOrder.requestedCompletionDate

Wunschzeitfenster

2022-12-19T08:00:00+01:00

2022-12-19T12:00:00+01:00

event.productOrder.productOrderItem.requestedTimeSlot.validFor.startDateTime

event.productOrder.productOrderItem.requestedTimeSlot.validFor.endDateTime

15) POST RescheduleProductOrderStateChangeEvent: done

fachliche FelderDatenAPI Felder
technisches EventDatum2022-12-16T11:40:20+01:00eventTime
Orderstatusdoneevent.rescheduleProductOrder.state
Orderstatus Änderungsdatum 2022-12-16T11:40:20+01:00event.rescheduleProductOrder.stateChangeDate

16) ProductOrderAttributeValueChangeEvent

fachliche FelderDatenAPI Felder
technisches EventDatum2022-12-16T11:40:25+01:00eventTime
Verbindlicher Liefertermin2022-12-19T12:00:00+01:00

event.productOrder.expectedCompletionDate

Vereinbartes Zeitfenster

2022-12-19T08:00:00+01:00

2022-12-19T12:00:00+01:00

event.productOrder.productOrderItem.appointment.validFor.startDateTime

event.productOrder.productOrderItem.appointment.validFor.endDateTime

17) ProductOrderStateChangeEvent: inProgress

ProductOrderStateChangeEvent: inProgress
fachliche FelderDaten API Felder
Orderstatus inProgressstate 
fachliches Änderungsdatum 2022-12-16T11:40:30+01:00stateChangeDate 
technisches EventDatum2022-12-16T11:40:30+01:00eventTime
Grund der Änderung

0011

"Montage beim Endkunden erforderlich."

stateChangeReason.code

stateChangeReason.description

21) ProductOrderStateChangeEvent: completed

ProductOrderStateChangeEvent: completed
fachliche FelderDaten API Felder
Orderstatus completedstate 
fachliches Änderungsdatum 2022-12-19T10:00:00+01:00stateChangeDate 
technisches EventDatum2022-12-19T10:00:00+01:00eventTime
Grund der Änderung

0010

"Auftrag ausgeführt."

stateChangeReason.code

stateChangeReason.description

vor 24) ProductOrderAttributeValueChange

ProductOrderAttributeValueChange (setzen von startDate)
fachliche FelderDatenAPI Felder
technisches EventDatum 2022-12-19T10:00:30+01:00eventTime
Nutzungsdatum 2022-12-19T10:00:00+01:00product.startDate

24) ProductOrderStateChangeEvent: closed

ProductOrderStateChangeEvent: closed
fachliche FelderDaten API Felder
Orderstatus closedstate 
fachliches Änderungsdatum 2022-12-19T10:01:00+01:00stateChangeDate 
technisches EventDatum2022-12-19T10:01:00+01:00eventTime
Grund der Änderung

0010

"Auftrag ausgeführt."

stateChangeReason.code

stateChangeReason.description

Variante LineInUse

@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
note over leab, tab: Die Sequenz  [[https://confluence.t-systems-mms.eu/pages/viewpage.action?pageId=547957140#Auftrag(K%C3%BCndigungdurchLE,GFPV/VBL)anlegen-HappyPath Auftrag (Kündigung durch LE, GF PV/VBL, Happy path) anlegen]] wird hier includiert
leab ->tauf:notifyRUEM-PV(approval, reason)
 
eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
tauf -> leab:notifyInProgress
leab -> tab: ProductOrderStatusChangeEvent(PO2, InProgress)
note right: ABM-PV
eauf <- tauf: ProductOrderStateChangeEvent(PO,pending)
tauf -> leab:notifyInPending
leab -> tab: ProductOrderProcessingMessageEvent(PO2, delayMessage)
note right: VZM-PV
eauf <- tauf: ProductOrderInformationRequiredEvent(PO,requestedCompletionDate)
eauf -> tauf: POST CloseProductOrder
eauf <- tauf: POST CloseProductOrderStateChangeEvent(acknowledged, inProgress, done)
eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
eauf <- tauf: ProductOrderStateChangeEvent(PO,Completed)
tauf -> leab:notifyInCompleted
leab -> tab: ProductOrderStatusChangeEvent(PO2, Completed)
note right: ERLM-PV
eauf <- tauf: ProductOrderStateChangeEvent(PO,Closed)
tauf -> leab:notifyInClosed
leab -> tab: ProductOrderStatusChangeEvent(PO2, Closed)
note right: ENTM-PV
@enduml

→ gemäß Absprache in UAG01: hierzu wird kein Beispiel erzeugt

Variante Cancel

@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
note over leab, tab: Die Sequenz  [[https://confluence.t-systems-mms.eu/pages/viewpage.action?pageId=547957140#Auftrag(K%C3%BCndigungdurchLE,GFPV/VBL)anlegen-HappyPath Auftrag (Kündigung durch LE, GF PV/VBL, Happy path) anlegen]] wird hier includiert
leab ->tauf:notifyRUEM-PV(approval, reason)
 
eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
tauf -> leab:notifyInProgress
leab -> tab: ProductOrderStatusChangeEvent(PO2, InProgress)
note right: ABM-PV
eauf <- tauf: ProductOrderStateChangeEvent(PO,pending)
tauf -> leab:notifyInPending
leab -> tab: ProductOrderProcessingMessageEvent(PO2, delayMessage)
note right: VZM-PV
eauf <- tauf: ProductOrderInformationRequiredEvent(PO,requestedCompletionDate)
eauf -> tauf: POST CancelProductOrder
eauf <- tauf: POST CancelProductOrderStateChangeEvent(acknowledged, inProgress)
eauf <- tauf: ProductOrderStateChangeEvent(PO,assessingCancellation)
eauf <- tauf: ProductOrderStateChangeEvent(PO,Cancelled)
eauf <- tauf: POST CancelProductOrderStateChangeEvent(done)
tauf -> leab:notifyFailed
leab -> tab: ProductOrderStatusChangeEvent(PO2, failed)
note right: ABBM-PV
@enduml

→ gemäß Absprache in UAG01: hierzu wird kein Beispiel erzeugt


  • Keine Stichwörter