UC-GEN-TIC-013 — Melding oplossen of sluiten
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-GEN-TIC-013 |
| Naam | Melding oplossen of sluiten |
| Domein | Meldingen |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Melder, systeem, meldingenservice, database, berichtensysteem |
| Rolcontext | Ingelogde gebruiker met actieve beheerdercontext |
| Betrokken schermen | SCH-BEH-02-01 — Meldingenoverzicht beheerder; SCH-GEN-06-02 — Melding details |
| Gerelateerde usecases | UC-GEN-TIC-008 — Beheerdersoverzicht meldingen bekijken; UC-GEN-TIC-009 — Melding openen als beheerder; UC-GEN-TIC-010 — Beheerder koppelen of ontkoppelen; UC-GEN-TIC-011 — Extern bericht plaatsen; UC-GEN-TIC-006 — Oplossing accepteren; UC-GEN-TIC-007 — Melding heropenen door gebruiker; UC-GEN-TIC-014 — Melding heropenen door beheerder; UC-GEN-TIC-015 — Melding doorzetten naar docent |
| Primaire entiteiten | Tickets, TicketClosures, TicketResolutionTypes, TicketHistory |
| Secundaire entiteiten / events | TicketAssignments, TicketDiscussionMessages, SystemMessages, Users, TicketResolvedOrClosedByAdmin, TicketStatusChanged, TicketSolutionAvailable, SystemMessageCreated, TicketResolveFailed |
| Gerelateerde popups | POP-GEN-TIC-NOT-AVAILABLE, POP-GEN-TIC-RESOLVE-CONFIRM, POP-GEN-TIC-RESOLVE-NOT-ALLOWED, POP-GEN-TIC-RESOLVE-FAILED |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must have |
2. Omschrijving
Een beheerder sluit een behandelde melding formeel af door een oplossing of sluittoelichting en een afsluitstatus vast te leggen. De formele afsluiting wordt opgeslagen in TicketClosures. De melding krijgt backendstatus Closed en wordt voor de melder gedurende de heropentermijn gebruikersgericht als Opgelost weergegeven, tenzij de sluiting direct of later definitief als Gesloten wordt beschouwd.
Deze usecase beschrijft de beheerderactie waarmee een melding vanuit een actieve behandelcontext wordt opgelost of gesloten. De actie is bedoeld voor meldingen die al inhoudelijk zijn opgepakt. Een melding met status Nieuw mag niet rechtstreeks vanuit deze usecase worden opgelost of gesloten; eerst moet via UC-GEN-TIC-010 minimaal één actieve beheerderkoppeling bestaan, waardoor de melding een actieve behandelcontext krijgt.
De beheerder legt bij afsluiten minimaal vast welke afsluitstatus van toepassing is en welke oplossing of sluittoelichting aan de melder getoond wordt. Het systeem maakt daarnaast een systeembericht aan voor de melder met een klikbare verwijzing naar de melding. De melder kan daarna de oplossing accepteren via UC-GEN-TIC-006 of, zolang de heropentermijn loopt, de melding heropenen via UC-GEN-TIC-007.
Deze usecase beschrijft niet het sluiten van de eigen melding door de melder. Dat is UC-GEN-TIC-005. Ook het doorzetten naar docent is geen variant van deze gewone sluitflow, maar een samengestelde beheerflow in UC-GEN-TIC-015.
3. Scope
Deze usecase beschrijft:
- het kiezen van de beheeractie om een melding formeel op te lossen of te sluiten;
- het invoeren van een oplossing of sluittoelichting;
- het selecteren van een geldige afsluitstatus uit
TicketResolutionTypes; - het controleren dat de melding bestaat, beschikbaar is en een actieve behandelcontext heeft;
- het blokkeren van rechtstreeks oplossen of sluiten vanuit status Nieuw;
- het blokkeren van opnieuw oplossen of sluiten van een functioneel gesloten melding via deze reguliere flow;
- het vastleggen van een formele sluitregistratie in
TicketClosures; - het vastleggen van een heropentermijn en concrete
ReopenDeadlineUtc; - het wijzigen van
Tickets.StatusnaarClosed; - het zichtbaar maken van de oplossing op de gebruikersdetailpagina;
- het aanmaken van een systeembericht voor de melder met
EntityType = Ticket; - het vastleggen van compacte auditinformatie in
TicketHistory; - de afgeleide gebruikersstatus Opgelost gedurende de heropentermijn;
- foutpaden wanneer de melding niet beschikbaar is, de actie niet toegestaan is, validatie faalt of de transactie mislukt.
Deze usecase beschrijft niet:
- het algemene openen van het beheerdersoverzicht;
- het algemene openen van de beheerderdetailweergave;
- het indienen van een nieuwe melding;
- het plaatsen van externe of interne berichten zonder afsluiting;
- het koppelen of ontkoppelen van beheerders;
- het sluiten van de eigen melding door de melder;
- het accepteren van een oplossing door de melder;
- het heropenen door gebruiker of beheerder;
- het doorzetten naar docent;
- het periodiek definitief verwerken van verlopen heropentermijnen; dit valt onder UC-GEN-TIC-016 en niet onder deze beheerderactie;
- beheer van afsluitstatussen, popupteksten, systeemberichtsjablonen of seeddata.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De beheerder is ingelogd. |
| PRE-002 | De beheerder heeft een actieve beheerdercontext. |
| PRE-003 | De meldingenfunctionaliteit is sitebreed beschikbaar. |
| PRE-004 | De beheerderdetailweergave van een melding is geopend of er is een geldige ticketreferentie beschikbaar. |
| PRE-005 | De melding bestaat als Tickets-record. |
| PRE-006 | De melding is niet functioneel gesloten. |
| PRE-007 | De melding heeft een actieve behandelcontext via minimaal één actieve beheerderkoppeling. |
| PRE-008 | De melding heeft niet uitsluitend de status Nieuw. |
| PRE-009 | De beheerder mag de melding in beheercontext lezen en behandelen. |
| PRE-010 | Er zijn geldige TicketResolutionTypes beschikbaar. |
| PRE-011 | De beheerder kan een oplossing of sluittoelichting invoeren. |
| PRE-012 | De applicatie kan sluiting, statuswijziging, systeembericht en history transactioneel verwerken. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Er is een nieuwe formele sluitregistratie in TicketClosures vastgelegd. |
| POST-002 | De gekozen afsluitstatus is via TicketResolutionTypes aan de sluitregistratie gekoppeld. |
| POST-003 | De oplossing of sluittoelichting is beschikbaar voor de melder op het tabblad Oplossing. |
| POST-004 | Tickets.Status is gewijzigd naar Closed. |
| POST-005 | De sluitregistratie bevat een concrete ReopenDeadlineUtc voor de gebruikersgerichte heropentermijn. |
| POST-006 | De melding wordt voor de melder gedurende de heropentermijn gebruikersgericht als Opgelost weergegeven. |
| POST-007 | De melder ontvangt een systeembericht met EntityType = Ticket en EntityId = TicketId. |
| POST-008 | Er is een compacte TicketHistory-regel vastgelegd voor oplossing/sluiting. |
| POST-009 | Actie-indicaties zoals Wacht op mij worden opnieuw afgeleid en verdwijnen wanneer de melding niet langer WaitingForUser is. |
| POST-010 | Eerdere externe en interne discussieberichten blijven historisch beschikbaar. |
| POST-011 | Eventuele actieve beheerderkoppelingen blijven historisch herleidbaar; deze usecase ontkoppelt beheerders niet automatisch. |
| POST-012 | Bij een validatie- of transactionele fout ontstaat geen gedeeltelijke sluitregistratie, statuswijziging, systeembericht of historyregel. |
6. Trigger
De usecase start wanneer een beheerder in de beheerderdetailweergave van een melding de actie kiest om de melding formeel op te lossen of te sluiten.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Beheerder | Beheerdersoverzicht meldingen | Selecteert een melding of heeft een meldingdetail al geopend. | Het systeem toont de beheerderdetailweergave. | UC-GEN-TIC-009. |
| 2 | Beheerder | Sectie Oplossing / beheeractie | Kiest de actie om de melding op te lossen of te sluiten. | Het systeem toont de invoer voor oplossing/sluittoelichting en afsluitstatus. | Formele afsluitflow. |
| 3 | Systeem | Beheerderdetailweergave | Toont relevante ticketcontext. | De beheerder ziet melding, status, gekoppelde beheerders en bestaande communicatie. | Besluitvorming op actuele ticketgegevens. |
| 4 | Beheerder | Oplossingsformulier | Voert een oplossing of sluittoelichting in. | Het systeem houdt de invoer lokaal in het formulier vast. | Nog geen mutatie. |
| 5 | Beheerder | Oplossingsformulier | Selecteert een afsluitstatus. | Het systeem accepteert alleen geldige TicketResolutionTypes. | Gesloten waardelijst. |
| 6 | Beheerder | Oplossingsformulier | Bevestigt het oplossen of sluiten. | Het systeem toont of verwerkt de bevestigingsstap voor formele afsluiting. | Popup: POP-GEN-TIC-RESOLVE-CONFIRM. |
| 7 | Systeem | Meldingenservice | Controleert sessie, featurestatus en actieve beheerdercontext. | Alleen een bevoegde beheerder kan doorgaan. | Server-side autorisatie is leidend. |
| 8 | Systeem | Meldingenservice | Controleert of de melding bestaat en beschikbaar is. | De actuele tickettoestand wordt uit de database gelezen. | Tickets.Id; objectcontrole. |
| 9 | Systeem | Meldingenservice | Controleert of de melding niet functioneel gesloten is. | Bij open melding gaat verwerking door. | Geen dubbele sluiting via reguliere flow. |
| 10 | Systeem | Meldingenservice | Controleert of de melding een actieve behandelcontext heeft. | Alleen meldingen met minimaal één actieve beheerderkoppeling mogen via deze usecase worden opgelost of gesloten. | Status Nieuw vereist eerst UC-GEN-TIC-010. |
| 11 | Systeem | Meldingenservice | Controleert de actuele status. | InProgress en WaitingForUser zijn normale startstatussen; New wordt geblokkeerd. | Procesmodel blijft consistent. |
| 12 | Systeem | Meldingenservice | Valideert afsluitstatus en oplossing/sluittoelichting. | Alleen geldige, veilige en volledige invoer wordt verwerkt. | TicketResolutionTypes; sanitizing. |
| 13 | Systeem | Meldingenservice | Berekent de heropentermijn. | Het systeem bepaalt een concrete ReopenDeadlineUtc op basis van de geldende configuratie. | Standaard 7 dagen, tenzij anders geconfigureerd; er wordt geen losse TickerQ-taak per ticket aangemaakt. |
| 14 | Systeem | Database | Start transactionele verwerking. | De sluiting wordt als één consistente mutatie verwerkt. | Geen gedeeltelijke updates. |
| 15 | Systeem | Database | Maakt een sluitregistratie aan. | Er ontstaat een TicketClosures-record met oplossing/sluittoelichting, afsluitstatus, actor en heropen-deadline. | Formele bron voor oplossing/sluiting. |
| 16 | Systeem | Database | Wijzigt de processtatus van de melding. | Tickets.Status wordt Closed. | Backendstatus wordt gesloten. |
| 17 | Systeem | Database | Legt compacte auditinformatie vast. | Er ontstaat een TicketHistory-regel voor de oplossing/sluiting. | Vrije tekst wordt niet volledig in history gekopieerd. |
| 18 | Systeem | Berichtensysteem | Maakt een systeembericht voor de melder. | De melder krijgt een bericht met klikbare verwijzing naar dezelfde melding. | SystemMessages.EntityType = Ticket; EntityId = TicketId. |
| 19 | Systeem | Database | Commit de transactie. | Sluiting, statuswijziging, history en systeembericht zijn blijvend opgeslagen. | Transactionele consistentie. |
| 20 | Systeem | Beheerderdetailweergave | Ververst de melding. | De beheerder ziet de melding als gesloten met vastgelegde afsluitstatus. | Beheercontext. |
| 21 | Systeem | Gebruikersdetailweergave / berichten | Maakt de oplossing zichtbaar voor de melder. | De gebruiker ziet de melding als Opgelost zolang de heropentermijn loopt en kan accepteren of heropenen. | UC-GEN-TIC-006 en UC-GEN-TIC-007. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 7 | De sessie is verlopen of ontbreekt. | Het systeem start de generieke loginflow. | Generieke loginflow. | Geen. |
| ALT-002 | 7 | De gebruiker heeft geen actieve beheerdercontext. | Het systeem weigert de beheeractie. | Generieke toegang-geweigerd-afhandeling. | Geen. |
| ALT-003 | 8 | De melding bestaat niet of is niet beschikbaar. | Het systeem toont geen ticketdetails en verwerkt geen mutatie. | POP-GEN-TIC-NOT-AVAILABLE. | Geen. |
| ALT-004 | 9 | De melding is al functioneel gesloten. | Het systeem blokkeert opnieuw oplossen of sluiten via deze flow. | POP-GEN-TIC-RESOLVE-NOT-ALLOWED. | Geen. |
| ALT-005 | 10 | Er bestaat geen actieve beheerderkoppeling. | Het systeem blokkeert de afsluiting en verwijst functioneel naar eerst koppelen/oppakken. | POP-GEN-TIC-RESOLVE-NOT-ALLOWED. | Geen. |
| ALT-006 | 11 | De melding heeft nog status Nieuw. | Het systeem staat niet toe dat de melding rechtstreeks vanuit Nieuw wordt opgelost of gesloten. | POP-GEN-TIC-RESOLVE-NOT-ALLOWED. | Geen. |
| ALT-007 | 12 | De oplossing of sluittoelichting ontbreekt. | Het systeem toont inline validatie en verwerkt de actie niet. | Inline validatie in het formulier. | Geen. |
| ALT-008 | 12 | Er is geen afsluitstatus gekozen. | Het systeem toont inline validatie en verwerkt de actie niet. | Inline validatie in het formulier. | Geen. |
| ALT-009 | 12 | De gekozen afsluitstatus is onbekend, inactief of niet toegestaan voor deze flow. | Het systeem weigert de verwerking. | Inline validatie of POP-GEN-TIC-RESOLVE-NOT-ALLOWED. | Geen. |
| ALT-010 | 12 | De tekst bevat niet-toegestane of onveilige inhoud. | Het systeem sanitizet of weigert de invoer volgens de centrale rich-textregels. | Inline validatie of veilige melding. | Geen bij weigeren; gesanitized opslag bij toegestane correctie. |
| ALT-011 | 13 | De heropentermijnconfiguratie ontbreekt of is ongeldig. | Het systeem gebruikt geen impliciete onduidelijke deadline en blokkeert de afsluiting. | POP-GEN-TIC-RESOLVE-FAILED. | Geen. |
| ALT-012 | 15 | De sluitregistratie kan niet worden opgeslagen. | Het systeem rolt de transactie terug. | POP-GEN-TIC-RESOLVE-FAILED. | Geen blijvende mutatie. |
| ALT-013 | 16 | De ticketstatus kan niet naar Closed worden gezet. | Het systeem rolt de volledige transactie terug. | POP-GEN-TIC-RESOLVE-FAILED. | Geen blijvende mutatie. |
| ALT-014 | 17 | De historyregistratie kan niet worden aangemaakt. | Het systeem rolt de volledige transactie terug, omdat audit verplicht is. | POP-GEN-TIC-RESOLVE-FAILED. | Geen blijvende mutatie. |
| ALT-015 | 18 | Het systeembericht voor de melder kan niet worden aangemaakt. | Het systeem rolt de volledige transactie terug, omdat gebruikerscommunicatie onderdeel is van de afsluitflow. | POP-GEN-TIC-RESOLVE-FAILED. | Geen blijvende mutatie. |
| ALT-016 | 14-19 | Race condition door gelijktijdige reactie, sluiting, heropening of assignmentwijziging. | Het systeem gebruikt de actuele server-side tickettoestand en verwerkt alleen wanneer de actie nog toegestaan is. | POP-GEN-TIC-RESOLVE-NOT-ALLOWED of POP-GEN-TIC-RESOLVE-FAILED. | Alleen een consistente mutatie blijft bestaan. |
| ALT-017 | 20 | De beheerderdetailweergave kan na succesvolle verwerking niet direct verversen. | Het systeem bewaart de brondata en toont de bijgewerkte toestand bij opnieuw laden. | Generieke niet-technische foutmelding of geen popup. | Sluitregistratie blijft staan. |
| ALT-018 | 21 | De gebruiker opent het systeembericht nadat de heropentermijn verlopen is. | Het systeem toont de melding nog wel, maar de gebruikersgerichte status is dan Gesloten en heropenen is niet meer beschikbaar. | Geen meldingenpopup; detailweergave toont actuele toestand. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Alleen gebruikers met actieve beheerdercontext mogen een melding via beheerderflow oplossen of sluiten. |
| BR-002 | Een melding mag alleen via deze usecase worden opgelost of gesloten wanneer zij niet functioneel gesloten is. |
| BR-003 | Een melding met status Nieuw mag niet rechtstreeks via deze usecase worden opgelost of gesloten. |
| BR-004 | Externe inhoudelijke beheerhandeling, waaronder oplossen of sluiten, vereist een actieve behandelcontext met minimaal één actieve beheerderkoppeling. |
| BR-005 | De eerste inhoudelijke beheerhandeling richting melder moet voorafgegaan worden door of gecombineerd zijn met het oppakken/koppelen van de melding via UC-GEN-TIC-010. |
| BR-006 | Oplossen of sluiten door beheer wordt formeel vastgelegd in TicketClosures. |
| BR-007 | Iedere formele sluitregistratie door beheer moet een geldige afsluitstatus uit TicketResolutionTypes hebben. |
| BR-008 | Iedere formele sluitregistratie door beheer moet een oplossing of sluittoelichting bevatten die voor de melder zichtbaar kan worden gemaakt. |
| BR-009 | Oplossen of sluiten door beheer zet Tickets.Status op Closed. |
| BR-010 | Opgelost is geen aparte backendstatus maar een gebruikersgerichte afgeleide toestand op basis van Closed en de actuele heropentermijn. |
| BR-011 | De heropentermijn moet als concrete ReopenDeadlineUtc worden vastgelegd. |
| BR-011A | Oplossen of sluiten door beheer maakt geen afzonderlijke schedulerjob per melding aan; verlopen heropentermijnen worden periodiek en idempotent verwerkt door UC-GEN-TIC-016. |
| BR-012 | Na oplossing of sluiting door beheer ontvangt de melder een systeembericht met verwijzing naar de melding. |
| BR-013 | De systeemberichtverwijzing naar de melding gebruikt EntityType = Ticket en EntityId = TicketId. |
| BR-014 | Oplossen of sluiten door beheer moet auditbaar zijn via TicketHistory. |
| BR-015 | Vrije oplossingstekst of sluittoelichting hoort in TicketClosures en niet volledig in TicketHistory. |
| BR-016 | Deze usecase ontkoppelt actieve beheerders niet automatisch. |
| BR-017 | Deze usecase maakt geen privéberichtthread aan. |
| BR-018 | De afsluitflow moet transactioneel zijn; sluitregistratie, statuswijziging, systeembericht en history mogen niet gedeeltelijk ontstaan. |
| BR-019 | De melder kan na deze usecase de oplossing accepteren of, zolang de heropentermijn loopt, heropenen via de daarvoor bedoelde usecases. |
| BR-020 | Doorzetten naar docent gebruikt niet deze gewone sluitflow maar de samengestelde flow UC-GEN-TIC-015. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
TicketId / ticketreferentie | Verplicht, geldig formaat en bestaand Tickets-record. |
| Actieve gebruiker | Moet ingelogd zijn en actieve beheerdercontext hebben. |
| Featurestatus | Meldingenfunctionaliteit moet beschikbaar zijn. |
Tickets.Status | Moet een bekende behandelbare status zijn en mag niet New of functioneel gesloten zijn. |
| Actieve behandelcontext | Minimaal één actieve TicketAssignments-koppeling moet bestaan. |
| Oplossing/sluittoelichting | Verplicht, niet leeg, niet alleen whitespace en begrensd volgens de geldende maximale tekstlengte. |
| Berichtinhoud / rich text | Alleen toegestane veilige opmaak is toegestaan; invoer wordt server-side gesanitized en veilig geëncodeerd. |
| Afsluitstatus | Verplicht en moet verwijzen naar een geldige, toegestane TicketResolutionTypes-waarde. |
| Heropentermijn | Moet tot een concrete server-side UTC-deadline kunnen worden omgerekend. |
| Actor bij mutatie | Uitvoerende beheerder moet worden vastgelegd bij sluitregistratie en history. |
| Tijdstippen | Worden server-side in UTC vastgelegd. |
| Systeembericht | Moet aan de melder gekoppeld zijn en verwijzen naar EntityType = Ticket en de juiste EntityId. |
| Transactionele verwerking | TicketClosures, Tickets.Status, SystemMessages en TicketHistory moeten consistent samen verwerkt worden. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 15 | Create | TicketClosures | Formele sluitregistratie met oplossing/sluittoelichting, afsluitstatus, actor, tijdstip en ReopenDeadlineUtc. |
| 15 | Event | TicketResolvedOrClosedByAdmin | Domeinevent of afgeleide eventregistratie voor formele oplossing/sluiting door beheer. |
| 16 | Update | Tickets | Status wordt gewijzigd naar Closed; laatste wijzigingsmetadata wordt bijgewerkt. |
| 16 | Event | TicketStatusChanged | Statusovergang naar Closed wordt geregistreerd. |
| 17 | Create | TicketHistory | Compacte auditregel voor oplossing/sluiting wordt vastgelegd. |
| 18 | Create | SystemMessages | Systeembericht aan melder met EntityType = Ticket en EntityId = TicketId. |
| 18 | Event | SystemMessageCreated | Event of afgeleide registratie voor aangemaakt systeembericht. |
| 21 | Event | TicketSolutionAvailable | Optioneel domeinevent voor beschikbaar gekomen oplossing richting melder. |
| ALT-012 t/m ALT-016 | Event | TicketResolveFailed | Alleen wanneer fout- of technische events worden geregistreerd. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
TicketAssignments | Deze usecase koppelt of ontkoppelt geen beheerders; actieve behandelcontext moet al bestaan. |
TicketDiscussionMessages | De oplossing/sluittoelichting wordt formeel in TicketClosures vastgelegd, niet als regulier discussiebericht. |
TicketReopenRequests | Deze usecase heropent geen melding. |
TicketForwardedToTeacher | Doorzetten naar docent valt onder UC-GEN-TIC-015. |
PrivateMessageThreads / PrivateMessages | Oplossen of sluiten door beheer is geen privéberichtflow. |
TicketTechnicalSnapshots | Technische meldcontext blijft de oorspronkelijke snapshot van aanmaakmoment. |
| Gebruikersprofiel van de melder | Sluiting wijzigt geen profiel- of voorkeurgegevens. |
TicketResolutionTypes | Afsluitstatussen worden gelezen; deze usecase beheert de waardelijst niet. |
13. State diagram — oplossen of sluiten door beheer
14. Decision flow — melding oplossen of sluiten
15. Data lifecycle diagram — oplossing/sluiting
16. Sequence diagrammen
16.1 Melding oplossen of sluiten
16.2 Melding met status Nieuw wordt geblokkeerd
16.3 Transactionele fout bij oplossen of sluiten
17. Popupverwijzingen
| PopupKey | Moment | Variant | Doel |
|---|---|---|---|
POP-GEN-TIC-NOT-AVAILABLE | Wanneer de melding niet bestaat, niet beschikbaar is of niet geopend mag worden. | InfoOnly | Voorkomen dat beheerder handelt op een ontbrekende of ontoegankelijke melding. |
POP-GEN-TIC-RESOLVE-CONFIRM | Vlak vóór definitief oplossen of sluiten door beheer. | Confirm | Bevestigen dat de beheerder de melding formeel wil afsluiten met de ingevulde oplossing en afsluitstatus. |
POP-GEN-TIC-RESOLVE-NOT-ALLOWED | Wanneer oplossen/sluiten niet toegestaan is, bijvoorbeeld bij status Nieuw, ontbrekende behandelcontext of al gesloten melding. | InfoOnly | Uitleggen dat de formele afsluitactie niet kan worden uitgevoerd. |
POP-GEN-TIC-RESOLVE-FAILED | Wanneer afsluiten, statuswijziging, history of systeembericht transactioneel mislukt. | InfoOnly | Veilige foutmelding tonen zonder technische details. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft oplossen/sluiten door beheer als formele afsluitactie vanuit een actieve behandelcontext. |
| Functioneel Ontwerp | Beschrijft dat een melding met status Nieuw eerst moet worden opgepakt via beheerderkoppeling voordat zij inhoudelijk opgelost of gesloten kan worden. |
| Functioneel Ontwerp | Beschrijft dat de beheerder bij oplossen/sluiten een oplossing of sluittoelichting en een afsluitstatus moet vastleggen. |
| Functioneel Ontwerp | Beschrijft dat de melder na oplossing/sluiting een systeembericht ontvangt en de oplossing ziet op het tabblad Oplossing. |
| Functioneel Ontwerp | Beschrijft dat Opgelost gebruikersgericht wordt afgeleid uit Closed met actieve heropentermijn. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijft de transactionele verwerking uit voor TicketClosures, statuswijziging naar Closed, TicketHistory en SystemMessages. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijf dat deze flow geen PrivateMessages, TicketReopenRequests, TicketForwardedToTeacher of automatische assignmentontkoppeling uitvoert. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijf server-side validatie, sanitizing, heropentermijnberekening en objectautorisatie. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijf dat er geen losse schedulerjob per melding wordt aangemaakt; verlopen heropentermijnen worden door de periodieke TickerQ-verwerking uit UC-GEN-TIC-016 opgepakt. |
| Software Requirements Specification | Beschrijft requirements voor actieve behandelcontext, verplichte oplossing/sluittoelichting, afsluitstatus, heropentermijn, systeembericht, audit en transactionele consistentie. |
| Database-informatie | Controleer dat TicketClosures oplossing/sluittoelichting, afsluitstatus, actor, tijdstip, ReopenDeadlineUtc en verwijzing naar ticket kan vastleggen. |
| Popupregister | Neem POP-GEN-TIC-RESOLVE-CONFIRM, POP-GEN-TIC-RESOLVE-NOT-ALLOWED en POP-GEN-TIC-RESOLVE-FAILED op; hergebruik POP-GEN-TIC-NOT-AVAILABLE. |
19. SRS-trace
Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.
| Usecase-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-GEN-TIC-013-001 | SRS-TIC-003 SRS-ADM-001 AC-TIC-003 AC-ADM-001 | Alleen gebruikers met actieve beheerdercontext toestaan om meldingen via beheerderflow op te lossen of te sluiten |
REQ-UC-GEN-TIC-013-002 | SRS-AUTH-001 SRS-TIC-003 SRS-ADM-002 SRS-ADM-001 AC-AUTH-001 AC-TIC-003 AC-ADM-002 AC-ADM-001 | Vóór verwerking server-side controleren of de melding bestaat en door de beheerder behandeld mag worden |
REQ-UC-GEN-TIC-013-003 | SRS-TIC-002 AC-TIC-002 | Voorkomen dat een melding met status Nieuw rechtstreeks via deze usecase wordt opgelost of gesloten |
REQ-UC-GEN-TIC-013-004 | SRS-TIC-003 SRS-ADM-001 AC-TIC-003 AC-ADM-001 | Oplossen of sluiten door beheer alleen toestaan wanneer minimaal één actieve beheerderkoppeling bestaat |
REQ-UC-GEN-TIC-013-005 | SRS-TIC-002 AC-TIC-002 | Voorkomen dat een al functioneel gesloten melding opnieuw via deze reguliere flow wordt opgelost of gesloten |
REQ-UC-GEN-TIC-013-006 | SRS-TIC-007 SRS-ADM-001 AC-TIC-007 AC-ADM-001 | Een oplossing of sluittoelichting verplicht stellen bij oplossen of sluiten door beheer |
REQ-UC-GEN-TIC-013-007 | SRS-TIC-007 AC-TIC-007 | Een geldige afsluitstatus uit TicketResolutionTypes verplicht stellen |
REQ-UC-GEN-TIC-013-008 | SRS-AUTH-001 SRS-TIC-007 SRS-NFR-SEC-001 AC-AUTH-001 AC-TIC-007 AC-NFR-SEC-001 | Oplossingstekst of sluittoelichting server-side valideren, sanitizen en veilig renderen |
REQ-UC-GEN-TIC-013-009 | SRS-TIC-007 AC-TIC-007 | Een formele sluitregistratie opslaan in TicketClosures |
REQ-UC-GEN-TIC-013-010 | SRS-AUTH-001 SRS-TIC-003 SRS-ADM-001 SRS-NFR-AUD-001 AC-AUTH-001 AC-TIC-003 AC-ADM-001 AC-NFR-AUD-001 | De uitvoerende beheerder en het server-side UTC-tijdstip bij de sluitregistratie vastleggen |
REQ-UC-GEN-TIC-013-011 | SRS-TIC-007 SRS-NFR-AUD-001 AC-TIC-007 AC-NFR-AUD-001 | Een concrete ReopenDeadlineUtc berekenen en vastleggen voor de sluitregistratie |
REQ-UC-GEN-TIC-013-012 | SRS-TIC-007 AC-TIC-007 | Tickets.Status naar Closed wijzigen bij succesvolle oplossing of sluiting |
REQ-UC-GEN-TIC-013-013 | SRS-RDM-001 SRS-TIC-004 AC-RDM-001 AC-TIC-004 | Opgelost als gebruikersgerichte afgeleide status tonen zolang de heropentermijn actief is |
REQ-UC-GEN-TIC-013-014 | SRS-TIC-003 AC-TIC-003 | Na verlopen heropentermijn of acceptatie de melding gebruikersgericht als Gesloten behandelen |
REQ-UC-GEN-TIC-013-015 | SRS-TIC-007 AC-TIC-007 | De oplossing of sluittoelichting tonen op het tabblad Oplossing van de gebruikersdetailweergave |
REQ-UC-GEN-TIC-013-016 | SRS-MSG-001 SRS-TIC-001 AC-MSG-001 AC-TIC-001 | Bij succesvolle oplossing of sluiting een systeembericht voor de melder aanmaken |
REQ-UC-GEN-TIC-013-017 | SRS-MSG-001 SRS-TIC-002 AC-MSG-001 AC-TIC-002 | Het systeembericht koppelen met EntityType = Ticket en EntityId = TicketId |
REQ-UC-GEN-TIC-013-018 | SRS-TIC-007 SRS-ADM-001 SRS-NFR-AUD-001 AC-TIC-007 AC-ADM-001 AC-NFR-AUD-001 | Oplossing/sluiting door beheer auditbaar vastleggen in TicketHistory |
REQ-UC-GEN-TIC-013-019 | SRS-TIC-007 SRS-NFR-AUD-001 AC-TIC-007 AC-NFR-AUD-001 | Vrije oplossingstekst of sluittoelichting niet volledig in TicketHistory dupliceren |
REQ-UC-GEN-TIC-013-020 | SRS-RDM-001 SRS-TIC-002 AC-RDM-001 AC-TIC-002 | Actie-indicaties voor de melder opnieuw afleiden na statuswijziging naar Closed |
REQ-UC-GEN-TIC-013-021 | SRS-MSG-001 SRS-TIC-001 AC-MSG-001 AC-TIC-001 | Bij gewone oplossing/sluiting geen PrivateMessageThreads of PrivateMessages aanmaken |
REQ-UC-GEN-TIC-013-022 | SRS-TIC-001 AC-TIC-001 | Bij gewone oplossing/sluiting geen TicketReopenRequests aanmaken |
REQ-UC-GEN-TIC-013-023 | SRS-TIC-001 AC-TIC-001 | Bij gewone oplossing/sluiting geen TicketForwardedToTeacher aanmaken |
REQ-UC-GEN-TIC-013-024 | SRS-REL-003 SRS-REL-006 SRS-TIC-003 SRS-ADM-001 AC-REL-003 AC-REL-006 AC-TIC-003 AC-ADM-001 | Actieve beheerderkoppelingen niet automatisch ontkoppelen door gewone oplossing/sluiting |
REQ-UC-GEN-TIC-013-025 | SRS-MSG-001 SRS-TIC-007 SRS-NFR-AUD-001 AC-MSG-001 AC-TIC-007 AC-NFR-AUD-001 | Afsluitflow transactioneel uitvoeren met sluitregistratie, statuswijziging, history en systeembericht |
REQ-UC-GEN-TIC-013-026 | SRS-TIC-007 SRS-SHR-001 SRS-NFR-AVL-001 AC-TIC-007 AC-SHR-001 AC-NFR-AVL-001 | Bij mislukte transactionele verwerking geen gedeeltelijke sluiting zichtbaar maken |
REQ-UC-GEN-TIC-013-027 | SRS-TIC-002 AC-TIC-002 | Bij niet-beschikbare melding POP-GEN-TIC-NOT-AVAILABLE gebruiken |
REQ-UC-GEN-TIC-013-028 | SRS-TIC-007 AC-TIC-007 | Bij niet-toegestane oplossing/sluiting POP-GEN-TIC-RESOLVE-NOT-ALLOWED gebruiken |
REQ-UC-GEN-TIC-013-029 | SRS-TIC-007 AC-TIC-007 | Vlak vóór definitieve oplossing/sluiting POP-GEN-TIC-RESOLVE-CONFIRM gebruiken |
REQ-UC-GEN-TIC-013-030 | SRS-TIC-002 AC-TIC-002 | Bij technische of transactionele fout POP-GEN-TIC-RESOLVE-FAILED gebruiken |
REQ-UC-GEN-TIC-013-031 | SRS-TIC-007 SRS-TCH-001 AC-TIC-007 AC-TCH-001 | Doorzetten naar docent niet via deze gewone sluitflow verwerken maar via UC-GEN-TIC-015 |
REQ-UC-GEN-TIC-013-032 | SRS-TIC-001 SRS-ARCH-004 AC-TIC-001 AC-ARCH-004 | Bij het oplossen of sluiten van een melding geen afzonderlijke TickerQ-taak per melding aanmaken voor het verlopen van de heropentermijn |