Versionen im Vergleich

Schlüssel

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

...

TitelAuftrag 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:

  • Die Bereitstellung wurde storniert und die Stornierung dem Auftraggeber gemeldet
  • Der Stornoantrag wurde zurückgewiesen und der Bereitstellungsauftrag läuft weiter

Ablauf

Stand  

Img
src//www.plantuml.com/plantuml/png/fPD1Rne_4CNl-ob6NFuW1VGlXnvoYDAYzfOG0UebpM7M7dRTU6tN7aFpxJjUe6MLAchI0mZBCx_tPlouJeoHSsShpEnTxcgALUr_mCVyH17y5XpjmHf7LP12eqn0nr039XWjewPeN3EgeEzPaxNIjBdv_7u-7zG7tpVSHQ-puhvlD2XGnue5EaLsM0UL3to2fno2Zvn0-QxBpYXaurqnUhUyNQuguKoleBwKute3vw0ROod9ZFHfHw8u3juuNcvl_OeuHpUfoEcgBjt5p17mt4ybjzFfLIqLy__VmI8ICcaOetfqVcz9DwGdubaDdJm7hLaQ5oswvkJ8EBbl8gKqgPndWcYQbY_1E52Og0mPwHkfqyJS4gYUQmzR-EguDGaw8M1383zzA1TeOPo8uFv-W-cn5zuy1OB1wU6Xs4RBi3XdHlgUAR70ZkAaBu1cpGngKfZ55XvM3oqcg8bA2wgMzDkMS18fPiWAVlNRG8XUoMoa0Ptknmy75lW2avBJFdhreVZBiYZOb2JCvyDF_ceTW5ikoInCK3qKsCCVYHN0ArmD4W7GPyBlA0hZGWXb0mD0SPM8YxhX_n8OPzYWFLYRbK6W9a2bA1JVNa3aj5WKix0NZoBoJqzM7kpmVtrnq0_CqTIPwGlQVCwIhlFWbvX9_9DKn4PihiZI3gMCt6lVzrSkoYBVbapj7Kbt4Uy_r_ALE_iJ

Codeblock
collapsetrue
@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

cbfa78ef-cb5e-30f5-8b3b-ec5f9d824e1d
Stashincludebyfilepath
repoSlugfit-root
branchIdrefs/heads/main
projectKeyTFIT
filepathtmf622/documentation/src/main/resources/docs/diagrams/CancellationByBuyer.puml
applicationLink
Bitbucket file macro
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/assets/CancellationByBuyer.puml
syntaxHighlightingPlantUML

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)

StashincludebyfilepathrepoSlugfit-rootbranchIdrefs/heads/mainprojectKeyTFITfilepath

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/
ftth-no-opts/
product-order-4e-milestone-event-point-of-no-return.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

ProductOrderMilestoneEvent

...

Felder

...

ProductOrderMilestoneEvent
FelderDatenAPI Feld
Daten

...

API Feld

technisches Event Datum

2022-05-12T08:45:00+02:00EventTime
Typ des Product Order Milestone EventspointOfNoReturnname
Datum und Uhrzeit des Milestones2022-05-12T08:45:00+02:00milestoneDate
Meldecode des Milestones1087milestoneMessage.code
Meldungstext des MilestonesEine Stornierung ist nicht möglich. milestoneMessage.text

Post CancelProductOrder (2)

StashincludebyfilepathrepoSlugfit-rootbranchIdrefs/heads/mainprojectKeyTFITfilepath

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/
ftth-no-opts/
cancel-product-order-0-create.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

Daten 

...

fachliche FelderDaten API FelderAPI Felder

technisches Event Datum

2022-05-12T08:45:00+02:00EventTime
zu stornierende Order (bekannt durch Events aus der Order durch LE gesetzt)388a4963-f168-4603-99e8-477200099d91productOrder.id

...

Response (

...

3)

StashincludebyfilepathrepoSlugfit-rootbranchIdrefs/heads/mainprojectKeyTFITfilepathtmf622/examples/ftth-no-opts

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-1-pos.json
syntaxHighlightingJSON

CancelProductOrderStateChangeEvent: inProgress (4)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-2-pos-state-change-event-in-progress.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:30:00+02:00EventTime

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)

...

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-3-rej-state-change-event-rejected.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:32:00+02:00EventTime

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)

StashincludebyfilepathrepoSlugfit-rootbranchIdrefs/heads/mainprojectKeyTFITfilepath

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/
ftth-no-opts/
product-order-cpo1-state-change-event-assessing-cancellation.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:32:00+02:00EventTime

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
collapsibletrue
urlhttps://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 FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:33:00+02:00EventTime

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)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-cpo2-state-change-event-cancelled.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:34:00+02:00EventTime

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

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-3-pos-state-change-event-done.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:35:00+02:00EventTime

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)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-
cpo3
cpo1-state-change-event-assessing-cancellation.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

Daten 

...

fachliche FelderDaten API FelderAPI Felder

technisches Event Datum

2022-05-12T11:32:00+02:00EventTime

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

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-cpo4-state-change-event-in-
acknowledged
progress.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:33:00+02:00EventTime

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)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/cancel-product-order-3-
neg
rej-state-change-event-
done
rejected.json
showLineNumbers
syntaxHighlighting
true
JSON
progLang

fachliche Felder

...

fachliche FelderDaten API Felder
Daten 

...

API Felder

technisches Event Datum

2022-05-12T11:32:00+02:00EventTime

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