Versionen im Vergleich

Schlüssel

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

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

Leistungserbringer

LE) 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

  • Die Kündigung muss sich auf ein im Bestand des jeweiligen Auftraggebers befindliches Produkt beziehen.

Eine Kündigung ist nur dann möglich, wenn keine weiteren offenen Aufträge zum Bestand des Auftraggebers vorliegen. Dies gilt sowohl für Aufträge des bestandsführenden Auftraggebers als auch von anderen Auftraggebern (z.B. beim Geschäftsfall Providerwechsel).
  • Voraussetzung für den Geschäftsfall "Kündigung durch

Auftraggeber
  • Leistungserbringer" ist ein bestehender Rahmenvertrag zwischen dem Auftraggeber und dem Leistungserbringer

sowie die Angabe aller ausführungsrelevanten Daten
  • .

 

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.
  • Mindestens alle Pflichtfelder für eine Product Order im Anwendungsfall "Auftrag (Kündigung durch LE) anlegen" sind laut Auftrags-/Meldungsstruktur (download) gefüllt.

  • Liegt ein offener Auftrag eines Auftraggebers zum betroffenen Bestand (z.B. für den Anschluss oder dem Übertragungsweg) vor, wird dieser mit Hinweis auf die Kündigung durch den Leistungserbringer abgebrochen.

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
languagetext
titleRegistrierung
collapsetrue
@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

Image Removed

Codeblock
languagetext
titleKündigung
collapsetrue
@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
repoSlugtmf622-product-order
branchIdrefs/heads/main
projectKeyTFIT
filepathsrc/test/examples/ftth-no-opts/product-order-delete-0-create.json
showLineNumberstrue
progLangplain
collapsibletrue
applicationLinkcbfa78ef-cb5e-30f5-8b3b-ec5f9d824e1d

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

Beispieldaten

POST ProductOrder (1)

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

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äftsfall

Annahme = Identifikation des Inventars über Product.id

AuftragsdatenKündigungswunschtermin 01.12.2022ProductOrder.requestedCompletionTimePeriodAuftraggeberdaten

Aktion

delete

productOrderItem.action

Identifikation des Inventars

  • Produkt Identifier (ODER)
  • Einzelvertragsnummer
  • (ODER)
  • 555001
  • Product.id (ODER)
  • Product.singleContractId

Produkt-ID

922ebf01-e930-47a0-842e-059d1f188a15

ProductOrderItem/product.id

Vertragsnummer 

3091231119

ProductOrder/agreement.businessId = "3091231119"
ProductOrder/agreement.agreementType="singleContract"

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 =

ServiceContract

buyerServiceContract)

Auftraggeber-Nummer

500011

Agreement.engagedParty.businessId

Externe Auftragsnr1000111externalIdenitifier.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)

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-termination-pv-1-state-change-event-

...

accepted.json

...

syntaxHighlightingJSON

fachliche Felder

Daten 

API Felder

Orderstatus acknowledgedstate OrderstatusChangeDate

technisches EventDatum

2022-05-11T10:

31

32:00+

01

02:00

stateChangeDate technisches EventDatum

eventTime

Orderstatus 

accepted

state 

OrderstatusChangeDate

2022-05-11T10:

32

31:00+

01

02:00

eventTime

stateChangeDate 

Grund der Änderung

0000

"Keine Änderung zum Auftrag"

stateChangeReason.code

stateChangeReason.description

ProductOrderAttributeValueChange (setzen von Auftragsmanagment & VLT, (5))

...

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-

...

termination-pv-2-attribute-value-change-event-

...

seller-contact.json

...

syntaxHighlightingJSON

fachliche Felder

Daten

API Felder

technisches EventDatum 

2022-05-11T10:

32

34:00+02:00

eventTime

Pointer auf die gemachte Änderung

/relatedParty/

/expectedCompletionTimePeriod/

fieldPath.path

fieldPath.typeOfChange = add

Verbindlicher Liefertermin01.12.2022ProductOrder.expectedCompletionTimePeriod

Verbindlicher 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
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-termination-pv-3-state-change-event-in-progress.json

...

syntaxHighlightingJSON

fachliche Felder

Daten 

API Felder

Orderstatus inProgressstate fachliches Änderungsdatum 

technisches EventDatum

2022-05-20T10:40:00+

01

02:00

stateChangeDate technisches EventDatum

eventTime

Orderstatus 

inProgress

state 

fachliches Änderungsdatum 

2022-05-20T10:40:00+

01

02:00

eventTime

stateChangeDate 

Grund der Änderung

0000

"Keine Änderung zum Auftrag"

stateChangeReason.code

stateChangeReason.description

Historisierung acknowledged

fachliches Änderungsdatum 

Grund der Änderung

2022-05-11T10:31:00+01:00

0000

"Keine Änderung zum Auftrag"

stateChangeHistory.@type = StateChange

stateChangeHistory.changeDate

stateChangeHistory.changeReason.code

stateChangeHistory.changeReason.description

ProductOrderStateChangeEvent: completed

...

ProductOrderStateChangeEvent: completed (7)

...

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

...

syntaxHighlightingJSON

fachliche Felder

Daten 

API Felder

Orderstatus completedstate fachliches Änderungsdatum 

technisches EventDatum

2022-12-16T10:45:00+01:00

stateChangeDate technisches EventDatum

eventTime

Orderstatus 

completed

state 

fachliches Änderungsdatum 

2022-12-16T10:45:00+01:00

eventTime

stateChangeDate 

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))

...

Bitbucket file macro
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-termination-

...

pv-5-attribute-value-change-event-termination-date.json

...

syntaxHighlightingJSON

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
collapsibletrue
urlhttps://bitbucket.org/fit-api/fit-api/src/main/tmf622/examples/product-order-termination-pv-6-state-change-event-closed.json

...

syntaxHighlightingJSON

fachliche Felder

Daten 

API Felder

Orderstatus closedstate fachliches Änderungsdatum 

technisches EventDatum

2022-12-16T10:46:00+01:00

stateChangeDate technisches EventDatum

eventTime

Orderstatus 

closed

state 

fachliches Änderungsdatum 

2022-12-16T10:46:00+01:00

eventTime

stateChangeDate 

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