Inhalt |
---|
Beschreibung
Titel | Auftrag abbrechen |
---|---|
Kurzbeschreibung | Folgender Ablauf beschreibt die typischen API- Interaktionen zwischen Auftraggeber Auftrageber und Leistungserbringer im Anwendungsfall "Auftrag abbrechen". Der Leistungserbringer bricht Auftragsrealisierung die Auftragsbearbeitung ab und meldet dem Auftraggeber den Abbruch zurück. Dabei werden die für diesen Ablauf erforderlichen Auftrags-Status durchlaufen und die für diesen Ablauf relevanten Informationen übermittelt. |
Vorbedingung | Der abzubrechende Auftrag wurde angelegt und ist noch nicht abgeschlossen ( d.h. der Auftrag befindet sich initial nicht in den Auftrags-Status closed, rejected or failed) |
Auslöser | Folgende Auslöser des Auftragsabbruches können vorkommenEs gibt folgende Auslöser eines Auftragsabbruchs:
|
Ergebnis | Die Bereitstellung wurde abgebrochen und der Abbruch dem Auftraggeber gemeldet |
Ablauf
...
Untervariante "Auftrag Providerwechsel und Verbundleistung" abbrechen
Happy Path siehe hier: Auftrag (Providerwechsel / Verbundleistung) anlegen
Im folgenden sollen die Auswirkungen eines Abbruchs auf einen PV bzw. eine VBL dargestellt werden.
Im Fall
- Erfolglose Terminanforderung (TAM und MTAM)
- Scheitern der Auftragsrealisierung
gibt es keine besondere Einflüsse:
- AKM-PV und RUEM-PV sind bereits ausgetauscht
- die RUEM-PV war positiv
- Der Statuswechsel Rejected bzw. Failed wird auf beide POs propagiert.
Erfolgt die Ablehnung aufgrund der Validierungen, ist das Zusammenspiel jeweils wie folgt:
Kaufmännische Validierung
Es kommt nicht zum Einstellen einer "Kündigung durch den LE":
Img | ||
---|---|---|
|
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@startuml
autonumber
box Product Order vom Typ PV (PO)
participant eauf as "EKP auf + TNB auf (AG auf)"
participant tauf as "ANE (LEauf)"
eauf -> tauf: POST ProductOrder(productOrderItemCreate, VAId)
note right: PV
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected) |
Technische Validierung
Img | ||
---|---|---|
|
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@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 -> tab: ProductOrderCreatedEvent(PO2)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Acknowleged)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Pending)
leab -> tab: ProductOrderInformationRequiredEvent(PO2, fieldPath=productOrder.TNBabApproval)
note right: AKM-PV
eauf <- tauf: ProductOrderStatusChangeEvent(PO, Rejected)
tauf -> leab: notifyRejected
leab -> tab: ProductOrderStatusChangeEvent(PO2, Rejected)
note right: ABBM-PV |
Untervariante "Kündigung durch LE, GF PV und VBL" abbrechen
Happy Path siehe Auftrag (Kündigung durch LE, GF PV/VBL) anlegen
Keine rechtzeitige RUEM-PV
Schickt der AG die RUEM-PV nicht rechtzeitig, wird die Kündigung vom LE zurückgewiesen.
Auch der Eltern-Auftrag PV bzw. VBL wird dann zurückgewiesen (hier nicht dargestellt).
Img | ||
---|---|---|
|
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@startuml
autonumber
box (Sub)Product Order vom Typ KUE-LE (PO2)
participant leab as "LE"
participant tab as "AG"
leab -> leab: POST ProductOrder(productOrderItemDelete, category=KUE-LE)
leab -> tab: ProductOrderCreatedEvent(PO2)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Acknowleged)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Pending)
leab -> tab: ProductOrderInformationRequiredEvent(PO2, fieldPath=productOrder.TNBabApproval)
note right: AKM-PV
leab -> tab: ProductOrderStatusChangeEvent(PO2, Rejected)
note right: ABBM-PV |
Ablehnung der RespondProviderChange durch LE
Der LE kann die Task Resource ablehnen.
Die Kündigung ( und der sie auslösende PV- bzw. VBL-Auftrag) werden dann vom LE zurückgewiesen.
Img | ||
---|---|---|
|
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@startuml
autonumber
box (Sub)Product Order vom Typ KUE-LE (PO2)
participant leab as "LE"
participant tab as "AG"
leab -> leab: POST ProductOrder(productOrderItemDelete, category=KUE-LE)
leab -> tab: ProductOrderCreatedEvent(PO2)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Acknowleged)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Pending)
leab -> tab: ProductOrderInformationRequiredEvent(PO2, fieldPath=productOrder.TNBabApproval)
note right: AKM-PV
leab <- tab: POST ResondProviderChange(approval, reason)
note right: RUEM-PV
leab -> tab: ResondProviderChangeStatusChangedEvent(Acknowledged)
leab -> tab: ResondProviderChangeStatusChangedEvent(Rejected)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Rejected)
note right: ABBM-PV |
Ablehnung durch den AG
Der AG kann die AKM-PV negativ beantworten.
Auch in diesem Fall werden die Kündigung ( und der sie auslösende PV- bzw. VBL-Auftrag) dann vom LE zurückgewiesen:
Img | ||
---|---|---|
|
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@startuml
autonumber
box (Sub)Product Order vom Typ KUE-LE (PO2)
participant leab as "LE"
participant tab as "AG"
leab -> leab: POST ProductOrder(productOrderItemDelete, category=KUE-LE)
leab -> tab: ProductOrderCreatedEvent(PO2)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Acknowleged)
leab -> tab: ProductOrderStatusChangeEvent(PO2, Pending)
leab -> tab: ProductOrderInformationRequiredEvent(PO2, fieldPath=productOrder.TNBabApproval)
note right: AKM-PV
leab <- tab: POST ResondProviderChange
leab -> tab: ResondProviderChangeStatusChangedEvent(Acknowledged)
leab -> tab: ResondProviderChangeStatusChangedEvent(InProgress)
leab <- tab: ResondProviderChangeAttributeValueChange(approval, reason)
leab -> tab: ProductOrderAttributeValueChange(PO2, approval, reason)
leab -> tab: ResondProviderChangeStatusChangedEvent(Done)
note right: RUEM-PV
leab -> tab: ProductOrderStatusChangeEvent(PO2, Rejected)
note right: ABBM-PV |
Business Rule
...
. Der Auftrag befindet sich final in einem der folgenden Auftrags-Status:
|
Ablauf
Bitbucket file macro | ||||
---|---|---|---|---|
|
Der Fehlschlag während der Realisierung für die category VBL oder PV ist im Detail hier dargestellt: 2) Fehlschlag beim Leistungserbringer
Besonderheit
Im Geschäftsfall "KUE-LE" (catogory: terminationBySeller) gibt es nur den Ablauf "Scheitern der Auftragsrealisierung" (siehe Beschreibung, Auslöser).
...
werden im Geschäftsfall "KUE-LE" nicht unterstützt.
Beispieldaten
ProductOrderAttributeValueChange (Alternativprodukt/korrigierter Standort)
...
(1)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-1b-attribute-value-change-event-alternate-offering.json syntaxHighlighting JSON
fachliche Felder | Daten | API Felder |
---|---|---|
technisches Eventdatum | 2022-05-11T10:30:30+02:00 | eventTime |
Wiedervorlagetermin | 2023-01-16T10:00:00+01:00 | earliestOrderRetry |
Alternativprodukt | alternateProductOffering | |
FTTH L2 PON 1500 1000 | name | |
StandortA Korrektur | RelatedPlaceRefOrValue | |
AlternateAddress | role | |
Rheinhausen | city | |
DEU | country | |
59055 | postcode | |
Biberweg | streetName | |
2 | streetNr | |
b | streetNrSuffix |
ProductOrderStateChangeEvent: Abbruch bei kaufmännischer/technischer Validierung (2)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-
...
1c-
...
state-
...
change-event-
...
rejected.json
...
syntaxHighlighting JSON
fachliche Felder | Daten | API Felder |
---|---|---|
orderstatus | rejected | state |
fachliches Änderungsdatum | 2022-05-11T10:31:00 |
stateChangeDate |
technisches EventDatum |
2022- |
05-20T10:40:00+01:00 | eventTime | |
Grund der Änderung | "1001" "Die Anschrift ist nicht bekannt." | stateChangeReason.code stateChangeReason.text |
ProductOrderAttributeValueChange (Wiedervorlagedatum) (3)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-1b-attribute-value-change-event-earliest-order-retry.json syntaxHighlighting JSON
fachliche Felder | Daten | API Felder |
---|---|---|
technisches Eventdatum | 2022-05-11T10:30:30 | eventTime |
Wiedervorlagetermin | 2023-01-16T10:00:00+01:00 | earliestOrderRetry |
ProductOrderStateChangeEvent: Abbruch bei kaufmännischer/technischer Validierung (4)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-1c-state-change-event-
...
rejected.json
...
syntaxHighlighting
...
JSON
fachliche Felder |
---|
Daten |
---|
API Felder |
---|
technisches EventDatum | 2022-05-11T10:31:00+02:00 | eventTime |
orderstatus | rejected | state |
fachliches Änderungsdatum | 2022-05-11T10:31:00 |
stateChangeDate | ||
Grund der Änderung | "1023" "Ihr Auftrag ist derzeit aus technischen Gründen nicht bearbeitbar. Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut." | stateChangeReason.code stateChangeReason.text |
ProductOrderStateChangeEvent: nach erfolgloser TAM/MTAM (5)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-
...
1a-state-change-event-
...
cancelled.json
...
syntaxHighlighting
...
JSON
fachliche Felder |
---|
Daten |
---|
API Felder |
---|
technisches EventDatum | 2022-06-13T10:42:00+02:00 | eventTime |
orderstatus | cancelled | state |
fachliches Änderungsdatum | 2022-05-11T10: |
31:00 |
stateChangeDate | ||
Grund der Änderung | "1198" "Es wurde kein neuer Ausführungstermin übermittelt." | stateChangeReason.code stateChangeReason.text |
ProductOrderStateChangeEvent: Abbruch bei Auftragsrealisierung (6)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-
...
1e-
...
state-change-event-
...
failed.json
...
syntaxHighlighting
...
JSON
fachliche Felder |
---|
Daten |
---|
API Felder |
---|
technisches EventDatum | 2022-05-11T10:31:00+02:00 | eventTime |
orderstatus | failed | state |
fachliches Änderungsdatum | 2022-05-11T10:31:00 | stateChangeDate |
Grund der Änderung | "1305" "Es wurde kein neuer Ausführungstermin übermittelt." | stateChangeReason.code stateChangeReason.text |