...
Titel | Auftrag (Kündigung LE) anlegen |
---|---|
Kurzbeschreibung | Folgender Ablauf beschreibt die typischen API-Interaktionen zwischen Auftraggeber und Leistungserbringer im Anwendungsfall "Kündigung durch Leistungserbringer". Dieser Anwendungsfall behandelt die Kündigung eines Produktes durch den Leistungserbringer. 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 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. |
Auslöser | Der Leistungserbringer legt sich selber einen Kündigungsauftrag an. |
Ergebnis | Das Produkt wurde gekündigt |
Ablauf
Registrierung
Die Registrierung erfolgt einmalig: Der Auftraggeber (AG) registriert sich für alle Product Orders der Category 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) |
...