Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Acties DMN integratie, mapping #17

Open
alextreme opened this issue Dec 9, 2024 · 0 comments
Open

Acties DMN integratie, mapping #17

alextreme opened this issue Dec 9, 2024 · 0 comments
Labels
enhancement New feature or request triage

Comments

@alextreme
Copy link
Member

alextreme commented Dec 9, 2024

Gebruikersverhaal

Als gemeentelijke ontwikkelaar
wil ik dat een ProductType mogelijke acties kan bevatten, waarbij een DMN-tabel bepaalt of een actie wel of niet mag worden uitgevoerd
zodat inwoners alleen relevante acties kunnen uitvoeren, zoals aanvragen, verlengen of opzeggen, en doorgeleid worden naar het juiste formulier indien de actie toegestaan is.


Acceptatiecriteria

Acties in ProductType

  • Het datamodel van de ProductType-entiteit bevat een veld acties, dat een lijst van mogelijke acties kan opslaan.
  • Elke actie bevat de volgende velden:
    • naam: De naam van de actie (bijv. "Aanvragen", "Verlengen", "Opzeggen").
    • dmn_key: Een unieke identificatie of sleutel voor de relevante DMN-tabel.
    • mapping: Een key-value mapping die de benodigde inputvariabelen definieert voor de DMN-tabel (bijv. {"productId": "product.id", "status": "product.status"}).
    • formulier_url: Een URL naar het formulier dat gebruikt wordt om de actie uit te voeren.

DMN-integratie

  • De API retourneert bij het opvragen van een ProductType of een Product:
    • De lijst van mogelijke acties inclusief de dmn_key en mapping.
  • De aanroepende applicatie gebruikt de gegevens van de API om de DMN-engine aan te roepen en te bepalen of een actie wel of niet mag worden uitgevoerd.
  • Indien de DMN-engine aangeeft dat een actie toegestaan is, wordt de gebruiker doorgeleid naar de formulier_url van de betreffende actie.

Validatie

  • De API valideert bij het aanmaken of wijzigen van een actie:
    • Dat een geldige dmn_key wordt opgegeven.
    • Dat de mapping correct gestructureerd is.
    • Dat een geldige formulier_url wordt opgegeven.
  • Bij foutieve of ontbrekende waarden retourneert de API duidelijke foutmeldingen in het Nederlands, zoals:
    • "De DMN-sleutel 'aanvragen' bestaat niet."
    • "De invoervariabele 'productId' ontbreekt in de mapping."
    • "Het formulier-URL veld mag niet leeg zijn."

API-functionaliteit

  • De API biedt endpoints voor het opvragen en beheren van acties binnen een ProductType.
  • Bij het opvragen van een Product retourneert de API:
    • De lijst van acties van het gekoppelde ProductType.
    • De dmn_key, mapping, en formulier_url van elke actie.
  • De API retourneert geen directe uitvoerbaarheid van acties; dit wordt bepaald door de aanroepende applicatie via de DMN-engine.

Documentatie

  • De API-documentatie bevat voorbeelden van het instellen van acties, inclusief het configureren van mappings en het opvragen van gegevens voor een DMN-aanroep.
  • Voorbeeld-API-aanvragen tonen hoe een aanroepende applicatie op basis van de output van de DMN-engine bepaalt of een actie uitgevoerd mag worden en hoe de gebruiker wordt doorgeleid.

Definition of Done (DoD)

  • Het veld acties is toegevoegd aan het ProductType-datamodel en geïmplementeerd in de API.
  • De API ondersteunt het beheren en opvragen van acties met dmn_key, mapping, en formulier_url.
  • Validatie en foutafhandeling zijn volledig geïmplementeerd.
  • Unit tests en integratietests valideren correcte output van acties.
  • Documentatie is bijgewerkt met uitleg, voorbeelden, en validatieregels.
@alextreme alextreme added enhancement New feature or request triage labels Dec 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request triage
Projects
None yet
Development

No branches or pull requests

1 participant