Beschreibung
Titel | Auftrag (Kündigung durch LE) anlegen | ||
---|---|---|---|
Kurzbeschreibung | Folgender Ablauf beschreibt die typischen API- Interaktionen zwischen Auftraggeber und Leistungserbringer im Anwendungsfall "Auftrag (Kündigung durch LeistungserbringerLE) anlegen". Dieser Anwendungsfall behandelt die Kündigung eines Produktes durch den Leistungserbringer. Dabei werden die für diesen Ablauf erforderlichen Auftrags-Status durchlaufen und die für diesen Ablauf relevanten Informationen übermittelt. | ||
Vorbedingung |
Entsprechung: KUE/DT in WITA, KUE/LE in SPRI | Vorbedingung | Rahmenvertrag ist vorhanden Das zu kündigende Produkt befindet sich im Bestand des Auftraggebers Es liegen keine offenen Aufträge zum Produkt vor. Der Auftraggeber hat beim Leistungserbringer für die Category "KUE-LE" registriert. Dadurch wird er über ProductOrderCreateEvent von jedem neuen Kündigungsauftrag informiert.
|
Auslöser | Der Leistungserbringer legt sich selber einen Kündigungsauftrag an. Der Auftraggeber wird durch Erzeugung eines ProductOrderCreateEvents über den neuen Kündigungsauftrags informiert. | ||
Ergebnis | Das Produkt wurde gekündigt |
Ablauf
Registrierung
Die Registrierung erfolgt einmalig: Der Auftraggeber (AG) registriert sich für alle Product Orders der Cathegory KUE-LE beim Hub des Leistungserbringers (LE).
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
@startuml
autonumber
participant hub as "LE Hub"
box AG
participant tab as "AG"
tab -> hub: POST api/hub(KUE-LE,productOrder.relatedPartyRefOrValue=AG)
note right: Der AG registriert sich für POs vom Typ KUE-LE, \n der sich auf sein Produkt bezieht |
Kündigung
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
@startuml
autonumber
participant tauf as "LE"
participant tab as "AG"
tauf -> tauf: POST ProductOrder(productOrderItemDelete, category=KUE-LE)
note right: Die externe Auftragsnummer wird vom LE vergeben.
tauf -> tab: ProductOrderCreatedEvent(PO)
tab <- tauf: StatusChangeEvent(PO, Acknowleged)
tauf -> tab: StatusChangeEvent(PO, Completed)
tauf -> tab: StatusChangeEvent(PO, Closed) |
Beispieldaten
ProductOrder (Kündigung)
Stashincludebyfilepath | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Bitbucket file macro | ||||
---|---|---|---|---|
|
Beispieldaten
POST ProductOrder (1)
Bitbucket file macro | ||||||
---|---|---|---|---|---|---|
|
fachliche Felder | Daten | API Felder | Bemerkung | ||||||
---|---|---|---|---|---|---|---|---|---|
technische Daten | |||||||||
fachliches Bestelldatum des AG | 2022-05-11T10:30:00+02:00 | productOrder.orderPostedDate | |||||||
Geschäftsfall Name | terminationBySeller | productOrder.category | |||||||
Produktdaten | |||||||||
GeschäftsfallAktion | delete | productOrderItem.action | Identifikation des Inventars
| Annahme = Identifikation des Inventars über Product.id | Auftragsdaten | Kündigungswunschtermin | 01.12.2022 | ||
ProductOrder.requestedCompletionTimePeriod | AuftraggeberdatenProdukt-ID | 922ebf01-e930-47a0-842e-059d1f188a15 | ProductOrderItem/product.id | ||||||
Vertragsnummer | 3091231119 | ProductOrder/agreement.businessId = "3091231119" ProductOrder/agreement.name="singleContract" | |||||||
Auftragsdaten | |||||||||
Kündigungstermin | 2022-12-01T12:00:00+01:00 (Uhrzeit fachlich nicht relevant, aber technisch erforderlich) | ProductOrter.requestedCompletionDate | |||||||
Auftraggeberdaten (werden teilweise nicht gefüllt, da der Kündigungsauftrag vom LE eingestellt wird) | |||||||||
Leistungs-Nummer | 500012 | Agreement.businessId (agreementType = ServiceContractbuyerServiceContract) | |||||||
Auftraggeber-Nummer | 500011 | Agreement.engagedParty.businessId | Externe Auftragsnr | 1000111 | externalIdenitifier.id |
ProductOrderStateChangeEvent: Acknowledged
...
RelatedParty mit role ="orderManagementBuyerContact" und externe Auftragsnummer wird nicht gefüllt, da der Kündigungsauftrag vom LE eingestellt wird |
ProductOrderStateChangeEvent: Accepted (4)
delete Bitbucket file macro collapsible true url https://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-
acknowledgedtermination-pv-1-state-change-event- accepted.json
|
fachliche Felder | Daten | API Felder | |||
Orderstatus | acknowledged | state | |||
OrderstatusChangeDate | technisches EventDatum | 2022-05-11T10:3132:00+0102:00 | stateChangeDate | technisches EventDatum | eventTime |
Orderstatus | accepted | state | |||
OrderstatusChangeDate | 2022-05-11T10:3231:00+0102:00 | eventTimestateChangeDate | |||
Grund der Änderung | 0000 "Keine Änderung zum Auftrag" | stateChangeReason.code stateChangeReason.description |
ProductOrderAttributeValueChange (setzen von Auftragsmanagment & VLT, (5))
Stashincludebyfilepath | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
repoSlug | tmf622-product-order | ||||||||||||
branchId | refs/heads/main | ||||||||||||
projectKey | TFIT | filepath | src/test/examples/ftth-no-opts|||||||||||
Bitbucket file macro | |||||||||||||
|
fachliche Felder | Daten | API Felder | ||
technisches EventDatum | 2022-05-11T10:3234:00+02:00 | eventTimePointer auf die gemachte Änderung | /relatedParty/ /expectedCompletionTimePeriod/ | fieldPath.path fieldPath.typeOfChange = add |
Verbindlicher Liefertermin | 01.12.2022 | ProductOrder.expectedCompletionTimePeriodVerbindlicher Kündigungstermin | 2022-12-01T12:00:00+01:00 (Uhrzeit fachlich nicht relevant, aber technisch erforderlich) | ProductOrter.expectedCompletionDate |
Rolle | orderManagementSupplierContact | relatedParty.role | ||
Anrede | Frau | relatedParty.salutation (Ms) | ||
Vorname | Lisa | relatedParty.givenName | ||
Nachname | Bach | relatedParty.familyName | ||
Telefonnummer | 0221/789456 | relatedParty/contactMedium.mediumType = phone"PhoneContactMedium" relatedParty/contactMedium/characteristic.contactType = "fixed" relatedParty/contactMedium/characteristic.phoneNumber | ||
Mobilfunknummer | 0178/78787878 | relatedParty/contactMedium.mediumType = phone"PhoneContactMedium" relatedParty/contactMedium/characteristic.contactType = "mobile" relatedParty/contactMedium/characteristic.phoneNumber Faxnummer | ||
Email-adresse | l.bach@example.net | relatedParty/contactMedium.mediumType = email "EmailContactMedium" relatedParty/contactMedium/characteristic.contactType = "email" relatedParty/contactMedium/characteristic.emailAddress |
ProductOrderStateChangeEvent: inProgress
...
(6)
Bitbucket file macro | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
fachliche Felder | Daten | API Felder | ||
Orderstatus | inProgress | state | ||
fachliches Änderungsdatum | technisches EventDatum | 2022-05-20T10:40:00+0102:00 | stateChangeDate | technisches EventDatumeventTime |
Orderstatus | inProgress | state | ||
fachliches Änderungsdatum | 2022-05-20T10:40:00+0102:00 | eventTimestateChangeDate | ||
Grund der Änderung | 0000 "Keine Änderung zum Auftrag" | stateChangeReason.code stateChangeReason.description | Historisierung acknowledged fachliches Änderungsdatum Grund der Änderung | stateChangeHistory.@type = StateChange stateChangeHistory.changeDate stateChangeHistory.changeReason.code stateChangeHistory.changeReason.description |
ProductOrderStateChangeEvent: completed
...
ProductOrderStateChangeEvent: completed (7)
Bitbucket file macro | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
fachliche Felder | Daten | API Felder | ||
Orderstatus | completed | state | ||
fachliches Änderungsdatum | technisches EventDatum | 2022-12-16T10:45:00+01:00 | stateChangeDate | technisches EventDatumeventTime |
Orderstatus | completed | state | ||
fachliches Änderungsdatum | 2022-12-16T10:45:00+01:00 | eventTimestateChangeDate | ||
Grund der Änderung | 0010 "Auftrag ausgeführt." | stateChangeReason.code stateChangeReason.description Historisierung inProgress fachliches Änderungsdatum Grund der Änderung 2022-05-20T10:40:00+01:00 0000 "Keine Änderung zum Auftrag" | stateChangeHistory.@type = StateChange stateChangeHistory.changeDate stateChangeHistory.changeReason.code stateChangeHistory.changeReason.description |
ProductOrderAttributeValueChange
...
(setzen von terminationDate (8))
Stashincludebyfilepath | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
repoSlug | tmf622-product-order | |||||||||||||
branchId | refs/heads/main | |||||||||||||
projectKey | TFIT | filepath | src/test/examples/ftth-no-opts||||||||||||
Bitbucket file macro | ||||||||||||||
|
fachliche Felder | Daten | API Felder |
technisches EventDatum | 2022-12-16T10:45:30+01:00 | eventTime |
Pointer auf die gemachte Änderung | /terminationDate/ | fieldPath.path fieldPath.typeOfChange = add |
Nutzungsdatum | 2022-12-16T10:45:00+01:00 | product.terminationDate |
ProductOrderStateChangeEvent:
...
closed
...
(9)
Bitbucket file macro | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
fachliche Felder | Daten | API Felder | ||
Orderstatus | closed | state | ||
fachliches Änderungsdatum | technisches EventDatum | 2022-12-16T10:46:00+01:00 | stateChangeDate | technisches EventDatumeventTime |
Orderstatus | closed | state | ||
fachliches Änderungsdatum | 2022-12-16T10:46:00+01:00 | eventTimestateChangeDate | ||
Grund der Änderung | 0010 "Auftrag ausgeführt." | stateChangeReason.code stateChangeReason.description | Historisierung completed fachliches Änderungsdatum Grund der Änderung | 2022-05-20T10:45:30+01:00 0000 "Keine Änderung zum Auftrag" stateChangeHistory.@type = StateChange stateChangeHistory.changeDate stateChangeHistory.changeReason.code stateChangeHistory.changeReason.description |