...
Titel | Auftrag stornieren |
---|---|
Kurzbeschreibung | Folgender Ablauf beschreibt die typischen Interaktionen zwischen Auftraggeber und Leistungserbringer im Anwendungsfall "Auftrag stornieren". Der Auftraggeber beantragt die Stornierung eines laufenden Auftrages beim Leistungserbringer. Der Leistungserbringer prüft den Antrag und kann diesen zurückweisen oder umsetzen. Dabei werden die für diesen Ablauf erforderlichen Auftrags-Status durchlaufen und die für diesen Ablauf relevanten Informationen übermittelt. |
Vorbedingung | Der zu stornierende Auftrag wurde angelegt und ist noch nicht abgeschlossen. Das heißt, er befindet sich in keinem der folgenden Status: completed, closed, rejected, failed oder cancelled. Darüber hinaus muss die kaufmännische Validierung abgeschlossen sein, so dass sich der Auftrag nicht mehr im Status achnowledged befindet. Durch Versand des Milestones mit dem name = pointOfNoReturn kann der Leistungserbringer darüber hinaus den Zeitraum für den Versand eines Stornos weiter einschrämken. |
Auslöser | Der Auftraggeber beantragt die Stornierung eines laufenden Auftrages beim Leistungserbringer durch Erzeugung einer Task Resource vom Typ CancelProductOrder. |
Ergebnis | Der Anwendungsfall hat zwei mögliche Ergebnisse:
|
Ablauf
Stand
Img | ||
---|---|---|
|
Codeblock | ||
---|---|---|
| ||
@startuml
autonumber
box Buyer of new line
participant b as "Ordering"
box Seller TMF622
participant po as "ProductOrder"
participant cpo as "CancelProductOrder"
opt Seller supports communication of PONOR
po -> b: POST ProductOrderMilestoneEvent (pointOfNoReturn)
end
b -> cpo : POST CancelProductOrder
cpo-->b : 201 Created (acknowledged)
cpo -> b: POST CancelProductOrderStateChangeEvent (inProgress)
note right: in case of rejection of the cancellation \nthis message is optional (see [[TaskStateType TaskStateType]])
alt Cancellation request is rejected, e.g. because a PONOR has been reached
cpo -> b: POST CancelProductOrderStateChangeEvent (rejected)
else Request is processed and the product order is cancelled
po -> b: POST ProductOrderStateChangeEvent (assessingCancellation)
alt Cancellation request is rejected after state change to assessingCancellation
po -> b: POST ProductOrderStateChangeEvent (inProgress)
note over po, b: the ProductOrder is set to it's initial state. Can be accepted or pending as well
cpo -> b: POST CancelProductOrderStateChangeEvent (rejected)
else
opt
po -> b: POST ProductOrderAttributeValueChangeEvent
note right: e.g.: isChargingRelevant
end
po -> b: POST ProductOrderStateChangeEvent (cancelled)
cpo -> b: POST CancelProductOrderStateChangeEvent (done)
end
end
@enduml |
alter Stand
Stashincludebyfilepath | ||||
---|---|---|---|---|
repoSlug | fit-root | |||
branchId | refs/heads/main | |||
projectKey | TFIT | |||
filepath | tmf622/documentation/src/main/resources/docs/diagrams/CancellationByBuyer.puml | applicationLink | cbfa78ef-cb5e-30f5-8b3b-ec5f9d824e1d||
Bitbucket file macro | ||||
|
Business Regel
Handet es sich bei dem Auftrag um die Category Providerwechsel oder Verbundleistung, muss der LE im Falle eines erfolgreichen Cancels nach Versenden des StatusChangeEvents(Cancelled) an den AGauf die Kündigungs-PO durch einen StatusChangeEvent(Rejected) an den AGab beantworten.
...
ProductOrderMilestoneEvent (PONR) (1)
Stashincludebyfilepath
Bitbucket file macro | ||||
---|---|---|---|---|
|
|
|
|
ProductOrderMilestoneEvent |
...
Felder |
---|
...
Daten |
---|
...
API Feld | ||
---|---|---|
technisches Event Datum | 2022-05-12T08:45:00+02:00 | EventTime |
Typ des Product Order Milestone Events | pointOfNoReturn | name |
Datum und Uhrzeit des Milestones | 2022-05-12T08:45:00+02:00 | milestoneDate |
Meldecode des Milestones | 1087 | milestoneMessage.code |
Meldungstext des Milestones | Eine Stornierung ist nicht möglich. | milestoneMessage.text |
Post CancelProductOrder (2)
Stashincludebyfilepath
Bitbucket file macro | ||||
---|---|---|---|---|
|
|
|
|
fachliche Felder |
---|
...
Daten |
---|
...
fachliche Felder | Daten | API FelderAPI Felder |
---|---|---|
technisches Event Datum | 2022-05-12T08:45:00+02:00 | EventTime |
zu stornierende Order (bekannt durch Events aus der Order durch LE gesetzt) | 388a4963-f168-4603-99e8-477200099d91 | productOrder.id |
...
Response (
...
3)
Stashincludebyfilepath
Bitbucket file macro | ||||||
---|---|---|---|---|---|---|
|
CancelProductOrderStateChangeEvent: inProgress (4)
showLineNumbers Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-2-pos-state-change-event-in-progress.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:30:00+02:00 | EventTime |
Cancel Status Wechsel auf inProgress Status: Eventdate: | inProgress 2022-05-11T11:30:00+02:00 | CancelProductOrder.state CancelProductOrder.stateChangeDate |
Storno zurückgewiesen
CancelProductOrderStateChangeEvent: rejected (5)
...
showLineNumbers Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-3-rej-state-change-event-rejected.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:32:00+02:00 | EventTime |
Cancel Status Wechsel auf rejected Status: Eventdate: Meldecode: Meldetext: | rejected 2022-05-11T11:32:00+02:00 1087 "Eine Stornierung ist nicht möglich. " | CancelProductOrder.state CancelProductOrder.stateChangeDate CancelProductOrder.stateChangeReason.code CancelProductOrder.stateChangeReason.descriptiontext |
Antrag wird bearbeitet/ Auftrag wird storniert
POST ProductOrderStateChangeEvent: assessingCancellation (6)
Stashincludebyfilepath repoSlug fit-root branchId refs/heads/main projectKey TFIT filepath
ftth-no-opts/ Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/
showLineNumbersproduct-order-cpo1-state-change-event-assessing-cancellation.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:32:00+02:00 | EventTime |
Auftrag Status Wechsel assessingCancellation Typ der Meldung: Status: Eventdate: | ProductOrderStateChangeEvent assessingCancellation 2022-05-12T11:32:00+02:00 | ProductOrderStateChangeEvent/@type ProductOrder.state ProductOrder.stateChangeDate |
...
POST ProductOrderAttributeValueChangeEvent (orderIsChargingRelevant) (9)
Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-cpo1a-attribute-value-change-event-order-is-charging.json
...
syntaxHighlighting
...
JSON
...
...
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:33:00+02:00 | EventTime |
Storno ist kostenpflichtig (optional) Typ der Meldung: Kostenpflichtiger Vorgang: Eventdate: | ProductOrderAttributeValueChangeEvent True 2022-05-12T11:33:00 | ProductOrderAttributeValueChangeEvent/@type@type ProductOrder.orderIsChargingRelevant ProductOrderAttributeValueChangeEvent.eventTime |
...
POST ProductOrderStateChangeEvent: cancelled (10)
showLineNumbers Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-cpo2-state-change-event-cancelled.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:34:00+02:00 | EventTime |
Auftrag Status Wechsel cancelled Typ der Meldung: Status: Eventdate: Meldecode: Meldetext: | ProductOrderStateChangeEvent cancelled 2022-05-12T11:34:00+02:00 "0017" "Stornierung durchgeführt." | ProductOrderStateChangeEvent/@type ProductOrder.state ProductOrder.stateChangeDate ProductOrder.stateChangeReason.code ProductOrder.stateChangeReason.description |
...
POST CancelProductOrderStateChangeEvent: done
showLineNumbers Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-3-pos-state-change-event-done.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:35:00+02:00 | EventTime |
Cancel Status Wechsel auf Done Typ der Meldung: Status: Eventdate: Meldecode: Meldetext: | CancelProductOrderStateChangeEvent done 2022-05-12T11:35:00+02:00 "0012" "Stornoauftrag erfolgreich" | CancelProductOrderStateChangeEvent/@type CancelProductOrder.state CancelProductOrder.stateChangeDate CancelProductOrder.stateChangeReason.code CancelProductOrder.stateChangeReason.descriptiontext |
Antrag wird bearbeitet / Auftrag ist nicht storniert
...
ProductOrderStateChangeEvent: assessingCancellation (6)
cpo3 Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-
showLineNumberscpo1-state-change-event-assessing-cancellation.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
Daten |
---|
...
fachliche Felder | Daten | API FelderAPI Felder |
---|---|---|
technisches Event Datum | 2022-05-12T11:32:00+02:00 | EventTime |
Auftrag Status Wechsel assessingCancellation Typ der Meldung: Status: Eventdate: | ProductOrderStateChangeEvent assessingCancellation 2022-05-12T11:32:00+02:00 | ProductOrderStateChangeEvent/@type ProductOrder.state ProductOrder.stateChangeDate |
...
ProductOrderStateChangeEvent: inProgress
acknowledged Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-cpo4-state-change-event-in-
showLineNumbersprogress.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:33:00+02:00 | EventTime |
Auftrag Status Wechsel auf den vorherigen Auftragsstatus Typ der Meldung: Status: Eventdate: | ProductOrderStateChangeEvent accepted, inProgress oder pending 2022-05-12T11:33:00+02:00 | ProductOrderStateChangeEvent/@type ProductOrder.state ProductOrder.stateChangeDate |
...
POST CancelProductOrderStateChangeEvent: rejected (8)
neg Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-3-
donerej-state-change-event-
showLineNumbersrejected.json
truesyntaxHighlighting
progLangJSON
fachliche Felder |
---|
...
fachliche Felder | Daten | API Felder |
---|---|---|
Daten |
...
API Felder | ||
---|---|---|
technisches Event Datum | 2022-05-12T11:32:00+02:00 | EventTime |
Cancel Status Wechsel auf rejected Status: Eventdate: Meldecode: Meldetext: | rejected 2022-05-11T11:32:00+02:00 1087 "Eine Stornierung ist nicht möglich. " | CancelProductOrder.state CancelProductOrder.stateChangeDate CancelProductOrder.stateChangeReason.code CancelProductOrder.stateChangeReason.descriptiontext |