Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.


Inhalt

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, GF PV/VBL) 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 Auftraggeber einen neuen Termin an (Status "Pending" - Information Required (TAM))

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

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

Der weitere Verlauf wird hier nicht mehr betrachtet.

...

Variante erfolgreiche Schaltung nach Terminanforderung

Codeblock
collapsetrue
@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:notifyDelayed
leab -> tab: ProductOrderProcessingMessageEvent(PO2, delayMessage)
note right: VZM-PV
eauf <- tauf: ProductOrderInformationRequiredEvent(PO,requestedCompletionDate)
eauf -> tauf: POST RescheduleProductOrder
eauf <- tauf: POST RescheduleProductOrderStateChangeEvent(acknowledged, inProgress)
eauf <- tauf: POST ProductOrderAttributeValueChangeEvent(PO, requestedCompletionDate)
eauf <- tauf: POST RescheduleProductOrderStateChangeEvent(done)
eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
eauf <- tauf: ProductOrderAttributeValueChange(PO, requestedCompletionDate)
eauf <- tauf: ProductOrderProcessingMessage(PO,orderConfirmationUpdate)
tauf -> leab:notifyInProgress
leab -> tab: ProductOrderStatusChangeEvent(PO2, InProgress)
leab -> tab: ProductOrderAttributeValueChange(PO2, requestedCompletionDate)
leab -> tab: ProductOrderProcessingMessage(PO2,orderConfirmationUpdate)
tauf -> leab:notifyInProgress
note right: ABM-PV
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

Img
src//www.plantuml.com/plantuml/png/jPDVJziy5CRlyocEU8MKw4tfna1eQ7zeIs1L2qHjoSKG5qvycaPBxConoxhFjhjziTaXXOIrgzfflOcRu-VnxpmvFYia4L9bgKMKv4nb8GeBofyLyc_W2qvL9E56K1GmvnbC5Zdu0TZ-ZMFbMfj4IKwO12Hg2gI0FM_WWrd_3vFhRhcoEvVcwUmr178fw5nxO0-zSaVzRB37AdHM4mnklTRGCnI7JOmKITXm3LyUMzLBk51JQbxzB1d3Pu2odTQ7al8K_9lnP9b52MBdjJzzYLbF897eGj3fKyTYN2A899v9hGsi9yDthQLXJJwMHAgYDoCiHc-EJEgkNEX4NnX_I356xISh6jFTAMZtPBhG4JoUm-SeoeeBqfJF4uGnVbN8lWFStSsap8lJTZlYR9hgbn4Uo5QnA3HqqSgouW1LEoSn5krvWWzcTK0YcN3sqQpxzFtnqSdRuvFNHw_-wwYf52Is1_kzD_lT7gD9h5XCbOXcGy-zlF23Tj0TEeGPRDRwHF9yuHCvWqe8zk3dZqe5fGoq3Yulu57fGYc1N6iSg6pkx-4X4HHc2Gf8M9GggbVICXthJCey7nCPtNfNBJ-mjOVWSvAw890Kd3dMnlpnHVnzfdV40ekY6NvrqdDvYL56l_6p7hfGTwwFIQThsBV4p56doUALZEUOaWNIzO1w7MaChR_I3zAWf4PSlMvo1fytSFRPb8kCc0aQwIbC1D8dNc76if18UppBKpHxpdLNpghhDi8YcY5LATRTbmUltxasBrBTA1eZTI6fVOSLddMdZfGY2PN4WAJgvIU0jJtjJaevGsVtYMqgDxQoHHT_d9_IY9jAZxDfKit0RKwrpx-yHKtjvcOFrtUxnMKnHZjs-_Vtli96kkQaf_hMmTQSwvJUQBWBPigBzOowk0kWblr6TpqfwSwGKPMblm00

...

Bitbucket file macro
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/assets/ProviderChange_FailedOnSwitchDay.puml
syntaxHighlightingPlantUML

Beispieldaten (linker Block, TNBauf ↔ ANE)

Erweitern
title1) Post ProductOrder (providerChange) - identisch zum Gutfall


Erweitern
title2) ProductOrderStateChangeEvent: Acknowledged Accepted - identisch zum Gutfall


Erweitern
titlevor 5) ProductOrderAttributeValueChange - identisch zum Gutfall


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

ProductOrderStateChangeEvent: pending (11)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-4c-state-change-event-pending.json
syntaxHighlightingJSON

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

ProductOrderInformationRequiredEvent (14)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-5b-information-required-event-requested-completion-date.json
syntaxHighlightingJSON

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

/requestedCompletionDate

tbdreplace

fieldPath.path

fieldPath.typeOfChange

POST RescheduleProductOrder (15)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/reschedule-product-order-provider-change-0.json
syntaxHighlightingJSON

fachliche FelderDatenAPI Felder
Verschobener Kundenwunschtermin mit Zeitfenster

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

rescheduledRequestedCompletionDate

Wunschzeitfenster

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

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


rescheduledRequestedCompletionTimePeriodproductOrderItem.requestedTimeSlot.validFor.startDateTime

rescheduledRequestedCompletionTimePeriodproductOrderItem.requestedTimeSlot.validFor.endDateTime

Verschiebungsgrund

003

Terminverschiebung nach TAM

rescheduleReason.code

rescheduleReason.description

POST RescheduleProductOrderStateChangeEvent: acknowledged

POST RescheduleProductOrderStateChangeEvent: inProgress

POST ProductOrderAttributeValueChangeEvent

POST RescheduleProductOrderStateChangeEvent: done

ProductOrderStateChangeEvent: completed

ProductOrderStateChangeEvent: closed

Variante LineInUse

Codeblock
collapsetrue
@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: ProductOrderStatusChangeEvent(PO2, pending)
eauf <- tauf: ProductOrderInformationRequiredEvent(PO,requestedCompletionDate)
eauf -> tauf: POST CloseProductOrder
eauf <- tauf: POST CloseProductOrderStateChangeEvent(acknowledged, inProgress, done)
eauf <- tauf: ProductOrderStateChangeEvent(PO,InProgress)
tauf -> leab:notifyInProgress
leab -> tab: ProductOrderStatusChangeEvent(PO2, InProgress)
note right: ABM-PV
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

Img
src//www.plantuml.com/plantuml/png/tPFFJjj04CRlVeeH5PAjEgIb85JKFoJ1q2WfM2JaWZYilHDdLNlNtJ-XwRFrrXVhhkE4k12XzDXSFD7izyrlFu_Fb2PIcoBtYD62co91wO7xUOdu0R4KrAGQhYL52NDHm7XHGZm1FxuElD9AMSfAmZKWCLCW2lQYGGokVWtZgsvL-PrBzmps6WAz4dIk8l27KNLYOpJu8vC4pmCCRgFMC78GXqsA74dIC4sUJ5tsAxR4GbfS-wmGa_NywZAjJnNZASJNe_4gYOh3BpV-z3KMFOb4OmYJJfy67XSQGR9ifgrsugtyFhHMVXlgaIRQgDwCy0oZEN9jxnH29_t6nKEE6LexNSEukvs2DMVJXGrWEKRCKLQT4BHhdpE44Nuto7y2tDtDj2xLQRkT2ZxD3V8K3tHBBPHbLgsYK0TesYN9KBNd31zSTK1IpGJ_xEe-_NXyTFB--EJjqPjN7JFLacJ-OB_tRh_RuvHbXcVKo7GsZCBBYtZIddI70U4EcxU-aB9Sn4JFe1Q2F_ZzgrP19GEhWyiBM2f3g2HGMaq0jStzFJmmIM76K0BZQMwehRJdRcmpgV9S9d9p6trjnHFVUaWn9ta84eaIFF1UYX__Ih_FxObCebBDxEj1Z-qLXKl-vRTw6CAZjBaadQv3tn6pH1icpxOnBhix8wvTjyFq-LJ8WhWjkR6RnYJIDPHqgwSqqfueoXpTcNEB7ZptHVLoeN3Jk3cpUMXx5AJ-LcY6D0IsZZW4AZW6_-VBh-D5keLotTyPSwriKaOtmt_1p8NQpkYQkmCwsHEwgt55TuQScYB_0m00

Variante Cancel

Codeblock
collapsetrue
@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: ProductOrderStatusChangeEvent(PO2, pending)
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

Img
src//www.plantuml.com/plantuml/png/dPFTJjj048Nl_HGZAYHRjKbBGQYeFoJ1q2WfM0HoWxXOUoVEglQkkp-XwRFrhY_MNJic94gBKcxOQFQS-URi-4nf8hKf2uyOBRWfKvGUk3yl5JyWaOAQJCErf2XXBaguNLIGJC1FhWElibAMiOfm3KZC58Y2lNYOW3k_XjkhNdtokvVkVx2t9j2je7iLWp-Acnkhrk2FJHfi1nZUnT4eTX27wnG5adJDDDtikgpNRAc5jBWaRH3Jf_xrCD6dcl4KaklnRPj4pU5NptuCD9PzYKHZ29FkW0OU5nf1idochNRYjNuVejRlcNgiYJQgFoCyntYENDkPGkXctxXuB317QwSRc7gsKx3cRBgm0JHjn1nbNGb1k_8vGnZZTuFy9y3z_KphIfrsEfdWqy8Wp_10HsgXBBEAob8TeEbK94VLcJDyTAS3acac-6Tt7j2FnqSdxuzFtXwzUTKrKor9xW_t--_sUtrEMMvuJetCPgCulBn89fr9RnGGxh1vz8LKrI8XUWPB8VZ3tx-MAgXbO7LmUG6DCeHQ0fNL1B2qUNY0HoOfp1XAO3mh3BKdxRc9RIPrdaqYDtVnroYP-DP3YZafGf18bE21zrByk97-WDiRkKIbDh9l6gtABOLB_kLNFGnX9LrVacxFeU-8MQ4Da-T_OsogEoEshl-06V2fa2LnMt9ZDur9f4zGqgsUqaZxegmAT7VEBNgmxOlg4vvXyTnve-cMMrl38CklXUP8Gs2ha7TCb2XbLNRwfcTHZxYhoLABDFZFQQZWkFLHBmYpjZk_wBIMRIvSit5doAafYpy0

...

POST RescheduleProductOrderStateChangeEvent: inProgress (17)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/reschedule-product-order-provider-change-2-state-change-event-in-progress.json
syntaxHighlightingJSON

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

POST ProductOrderAttributeValueChangeEvent (18)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-6b-attribute-value-change-event-requested-completion-date.json
syntaxHighlightingJSON

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

POST RescheduleProductOrderStateChangeEvent: done (19)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/reschedule-product-order-provider-change-3-state-change-event-done.json
syntaxHighlightingJSON

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

ProductOrderAttributeValueChangeEvent (20)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-7-attribute-value-change-event-expected-completion-date.json
syntaxHighlightingJSON

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

ProductOrderStateChangeEvent: inProgress (21)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-8-state-change-event-in-progress.json
syntaxHighlightingJSON

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

ProductOrderStateChangeEvent: completed (25)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-9-state-change-event-completed.json
syntaxHighlightingJSON

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

ProductOrderAttributeValueChange (28)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-10-attribute-value-change-event-start-date.json
syntaxHighlightingJSON

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

ProductOrderStateChangeEvent: closed (29)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-provider-change-11-state-change-event-closed.json
syntaxHighlightingJSON

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

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/assets/ProviderChange_FailedOnSwitchDay_WithLineInUse.puml
syntaxHighlightingPlantUML

hierzu wird kein Beispiel erzeugt

Variante Cancel

Bitbucket file macro
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/assets/ProviderChange_FailedOnSwitchDay_WithCancel.puml
syntaxHighlightingPlantUML

hierzu wird kein Beispiel erzeugt