Masterclass InProces 2.11

Datamodeling

Agenda

  • Gegevensmodellering
  • Schemas configureren
  • Datagrid
  • Packagemanager

gegevensmodelering

  • Technisch gegevensmodel voor de server model
  • Logische weergave op  de client
    view

serverside DATA (MODEL)

  • Alle data is gebaseerd op gestructureerde beschrijvingen van die data.
  • Data wordt opgeslagen in de database in de vorm van entiteiten.
  • Een entiteit-beschrijving heet een schema
  • Een entiteit bevat groepen met gegevenselementen.
  • Een groep van gegevenselementen noemen we een fieldset.
  • Een gegevenselement noemen we een field.
  • Een field bevat gegevens van een bepaald datatype

content en context

  • Content is Engels voor inhoud
  • InProces is Enterprise Content Management
  • Dus elk soort inhoud dat waardevol is kan worden beheerd met InProces
  • Content kun je alleen beheren door het in de juiste context te plaatsen.
  • Een document (b.v. een advies) heeft alleen waarde als we weten waar dat advies voor geldt , bv. voor de zaak Aanvraag bouwvergunning van de heer Jansen
  • De context van het advies wordt vastgelegd door een relatie te maken tussen het document en de zaak.
  • De document entiteit wordt beschreven met schema "document"
  • De zaak wordt beschreven met schema "zaak"
  • De relatie wordt beschreven met schema "zaak-document"

technische weergave

  • Entity Relatonschip Diagram (ERD)
  • Grafische weergave van het gegevensmodel

zaak

document

zaak-document

Inhoud

inhoud

relatie

content

content

context

overerving

  • Het datamodel in InProces is gebaseerd op inheritance, ofwel overerving
  • Het allerhoogste nivo voor een bij elkaar horende eenheid van gegevens is een entiteit.

entiteit

naam type doel
schema string gegevensmodel
docunid string technische id
sleutel string logische id

overerving

  • Het hoogste nivo voor inhoud is het schema content
  • Het hoogste nivo voor relatie is het schema  context
  • Zowel content als context erven van schema entiteit

content

naam type doel
docreaders string leestoegang
docauthors string schrijftoegang

context

naam type doel
bronschema string bron
brondocunid string bron
doelschema string doel
doeldocunid string doel

entiteit

STANDAARD model

  • Het standaard datamodel van InProces ligt vast het systeem, ook wel de basis genoemd. Deze basis wordt gebruikt door elke gebruiker.
  • Klantspecifieke modellen bevinden zich in de eigen database.
  • Een klant heeft de mogelijkheid om modellen te overrulen
schema entiteit
bevat beschrijving van gegevensmodel middels fieldsets en fields bevat bij elkaar horende gegevens elementen
bevindt zich in het datamodel van de basisomgeving (programmatuur) of in het klantspecifieke datamodel bevindt zich in de database van de klant
er kan slechts 1 schema bestaan met een bepaalde naam, bijvoorbeeld 
aanvraagkapvergunning
er kunnen meerdere entiteiten van een schema worden gemaakt, bijvoorbeeld meerdere entiteiten met schemanaam 
aanvraagkapvergunning

ScHEMA - ENTITEIT

clientside DATA (view)

  • Elk scherm in InProces is gemaakt met InProces FormGen
  • Een scherm kan gegevens tonen
  • Een scherm kan gegevens bewerken
  • Door het definieren van een formulier wordt direct ook het model gedefinieerd.
  • FormGen biedt een wysiwyg interface voor het maken van schermen en formulieren

schema's maken

zaken.test.webbergen.nl/management

formulieren panel

Het formulieren panel bevat een overzicht van alle formulieren welke zich in het systeem bevinden.

De formulieren met een witte achtergrond bevinden zich in de basis en zijn niet bewerkbaar.

De formulieren met een gekleurde achtergrond bevinden zich in de klantomgeving en zijn bewerkbaar.

Een schema bevat zowel het model als view. Als je het invulformiler aanpast, wordt automatisch het model aangepast.

formulier toevoegen

Er zijn 2 methodes:

1. Klik op de knop [nieuw formulier] en kies een van de templates

 

2. Zoek een bestaand formulier en klik op de [kopieer] actieknop

In beide gevallen wordt gevraagd om een nieuwe naam voor het formulier. De naam van het formulier mag geen spaties bevatten. Geadviseerd wordt om alleen kleine letters te gebruiken om verwarring te voorkomen. Zo is het formulier aanvraag niet gelijk aan formulier Aanvraag

schermimdeling

MODEL eigenschappen FORMULIER

Door in de data-modelweergave het formulier aan te klikken worden de generieke eigenschappen van het gehele formulier getoond in het eigenschappen van model panel.

Dat zelfde geldt voor tabbladen, fieldstes en fields 

toolbox

De toolbox is een lijst met mogelijke componenten welke op een formulier geplaatst kunnen worden.

In de toolbox kun je filteren op tabblad conponenten,fieldset-componenten, en field-componenten 

Formulier eigenschappen

  • titel = formulier titel
  • schemanaam is niet wijzigbaar
  • erft van schema = parentschema
  • layout beschrijft wijze waarop fieldsets gepositioneerd worden
  • collectie
    • ipdossierdb = context
    • ipdossieropslagdb = documenten
    • ip

 

formulier doelgroepen

Op het tabblad doelgroepen selecteert u de doekgroepen welke dit formulier mogen gebruiken.

 

In dit geval zijn dat aangemelde burgers op het burgerloket (DigiD) en ondernemingen op het ondernemersloket (eHerkenning), en alle medewerkers van de afdeling burgerzaken. Overige gebruikers zullen dit formulier niet te zien krijgen om nieuw in te vullen.

 

Overige tabbladen laten we hier buiten beschouwing.

tabblad toevoegen

Een formulier kan met of zonder een tabblad worden gemaakt. Voor aanvraagformulieren is het aan te raden geen tabbladen te gebruiken. Voor interne formulieren meestal wel.

Een tab kan worden toegevoegd door vanuit de toolbox de tab te slepen op het formulier in de datamodel weergave rechtsonder.

tab eigenschappen

De eigenschappen van een tab kunnen worden gewijzigd door deze in de datamodel weergave of in het formulier voorbeeld aan te klikken. In het eigenschappen venster rechtsboven worden de details van het tabblad getoond. Aanpassingen in de eigenschappen worden direct zichtbaar in de voorbeeld weergave, zoals in dit geval de titel: Uw aanvraag.

fieldset toevoegen

Een fieldset kan worden toegevoegd door vanuit de toolbox een nieuwe fieldset te slepen op het formulier of de tab in de datamodel weergave rechtsonder.

fieldset eigenschappen

Klik op de fieldset om de eigenschappen in het venster rechtsboven te tonen.

Indien u geen Titel invult wordt de naam van de fieldset als titel gebruikt.

 

Een fieldset kan verschillende verschijningsvormen hebben (component). Die kan worden geselecteerd in de component-lijst.

fieldset component

table

elk veld in de fieldset wordt in een kolom weergegeven en opgeslagen als een lijst met 0,1 of meer waarden.

fieldset (standaard)

 

dynamictabpanel

de fieldset wordt als tab weergegeven. de gebruiker kan middels de + knop de fieldset meermalen invullen.

De velden worden lijst opgeslagen in de entiteit.

fieldset conditie

De fieldset conditie is een vergelijking welke waar of niet waar moet opleveren. Als hier en conditie staat welke niet op waar is wordt de gehele fieldset niet getoond aan de gebruiker, noch worden de gegevens uit die fieldset aan de gebruiker getoond. Ook niet door bijvoorbeeld rechtsreeks de gegevens via de data-api op te vragen. 

 

voorbeeld:

fieldset met handtekening en certificaat bestand is alleen toegankelijk voor iemand met de rol ' gemeentesecretaris'. De fieldset conditie is dan bijvoorbeeld:

 

 

gebruiker.rollen.indexOf('gemeentesecretaris') > -1

oefening 1

de gebruikers interface

  1. Open het formulieren panel op zaken.test.webbergen.nl/management
  2. zoek het blancotemplate formulier op dmv filter in de kolom
  3. Klik op de kopieer knop
  4. Geef de naam aanvraagsubsidie_{voornaam}
  5. Pas de formulier titel aan naar Subsidie {voornaam}
  6. Voeg een tabblad toe
  7. Sla formulier op
  8. Voeg een fieldset toe met de naam aanvraag en titel Uw aanvraag
  9. Voeg een textfield toe met de naam subsidiesoort
  10. Sla het formulier op

Gegevens elementen (FIELD)

  • Een gegevens element heeft
    • Een naam
    • Een datatype
    • Een formaat
    • Een weergave (component)
    • Waardebepaling (standaard/berekend)
    • Regels
    • Extra eigenschappen

gegevenselement toevoegen

Text

sleep een component uit de toolbox naar een fieldset

naam component datatype formaat
Text textfield string plain
Nummeriek veld numberfield number
Schuifbalk sliderfield number
Datum veld datefield date / time
Rich Text Field richtext string html
Afbeelding image blob
Bestand bijlage blob
Keuzerondjes radiogroup string
Enkel keuzevak checkbox string
Meerdere keuzevakken checkboxgroup string
Selectie uit data n.t.b n.t.b.
Code code string plain,json,xml etc.
Display label string

veld eigenschappen

keuzelijst

(let op! vink meerdere waarden aan op eigenschappen tab)

keuze uit gegevenscollectie

Collectie = naam van schema

Query = bepaald selectie

Tonen = weergaveveld in lijst

Opslaan = vastleggen in record

Template = html sjabloon om een keuzelijst mooi op te maken

regels

  • logische regels beïnvloeden gedrag formulier
  • voorwaarde
    • wordt op de client geëvalueerd
    • vergelijkt huidige veld met een waarde
    • indien waar dan actie uitvoeren op doel
  • doel
    • (ander) veld of fieldset
  • actie
    • tonen
    • verbergen
    • vullen met
    • maak verplicht
    • maak niet verplicht

voorbeeld

Als het gaat om een milieusubsidie dan de fieldset of men zonnepanelen aanschaft tonen, anders vergbergen.

waardebepaling

Een gegevenselement kan een waardebepaling hebben welke op de server wordt geëvalueerd

 

Er zijn twee momenten waarop dit kan plaatsvinden:

  1. Standaard waarde, wordt bij creatie uitgerekend en daarna niet meer
  2. Bereknde waarde, wordt bij elke kaar dat de entiteit wordt opgeslagen geëvalueerd

 

De waardebepaling wordt gedaan m.b.v. IPML, de InProces Markup Language

IPML

Is een markup taal welke alleen op de server kan worden geëvalueerd.

 

Een IPML expressie is een tekst waarin de server gaat kijken of hij IPML elementen kan vinden welke hij dient te vervangen

 

Standaard tekst blijft standaard tekst:

{gebruiker.naam} -> Jan Jansen

Gegevens uit de database via accolade notatie:

{schema.name}

Sportsubsidie -> Sportsubsidie

voorbeeld standaard waarde

helpteksten

Tooltip ->

Vaste tekst voor de  vraag ->

Vaste tekst na de  vraag ->

Resultaat ->

oefening 2

  • Open formulier aanvraag_{voornaam}
  • In fieldset subsidie
    • Voeg een component "selectie uit data" toe met naam subsidiebudgetsoort en label  Subsidie budget
      • Keuzelijst met 3 soorten subsidies (sport, milieu, energie)
    • Voeg een textveld toe met naam toelichting en label Waarvoor wilt u subsidie ontvangen?
    • Voeg een numeriek field toe met de naam gewenstbedrag
      • maak het veld pas zichtbaar als er een subsidiebudgetsoort is gekozen
    • Voorzie elk veld van een helptekst
  • ​Sla het formulier op

velden toevoegen

oefening 3

selectie van gegevens uit de database

  1.  Open je aanvraag_{voornaam} formulier
  2. Selecteer het veld "subsidiebudgetsoort"
  3. Kies op tabblad "keuzelijst"  voor collectie
  4. Kies als collectie "subsidiebudget"
  5. Query (filter) blijft {query}*
  6. Gegeven tonen = "omschrijving"
  7. Gegeven opslaan = "omschrijving"
  8. Controleer of het resultaat is:

geavanceerde eigenschappen

Voor formulieren is er een JSON API beschikbaar

JSON = javascript object notatie

{
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
}

Aan formulier, fieldset en field kunnen middels deze interface configuraties worden toegevoegd welke niet standaard beschikbaar zijn. Beschikbare configuratie parameters kunnen worden gevonden bij de ExtJS API website

 

fieldset interne eigenschappen

Niet alle mogelijk configuratie wordt via de interface ondersteund.

Voor geavanceerde opties is het mogelijk meer  om op het interne eigenschappen tabblad een JSON config object te specificeren.  In dat config object worden de extra eigenschappen opgenomen. Dit geldt voor formulier, tabblad, fieldset en field.

standaard labels links ->

key "labelAlign" met value "top":

field EXTRAeigenschappen

Ook voor velden kunnen extra eigenschappen worden gedefinieerd:

config = {
    "minLength": 5,
    "minLengthText": "Minimaal 5 tekens.",
    "maxLength": 20,
    "maxLengthText": "Maximaal 20 tekens",
    "tabIndex": 1
}
    

field EXTRA eigenschappen

Voorbeeld: Validatie functie is een javascript functie welke een veldinvoer kan valideren.

config = {
    "validator": function(waarde) {
        return waarde == "chips" ? "De waarde mag geen chips zijn." : true;
    }
}
    

bestaande fieldsets hergebruiken

  1. Een bestaande fieldset kan worden gekopieerd vanuit een bestaand schema
  2. Een bestaande feillooste kan worden gedeeld van een bestaand schema
  3. Sleep component bestaande fieldset naar de plaats in de model-weergave waar deze moet komen.
  4. Een dialoog wordt getoond met bestaande fieldsets. 
  5. Zoek de juiste en klik hem aan.

bestaande fieldsets hergebruiken

  1. Beantwoord de vraag of je de fieldset wil kopieren of delen
  2. Bij kopieren is de fieldset niet meer gekoppeld aan de bestaande fieldset en kan in dit schema worden bewerkt
  3. Bij delen is de fieldset niet bewerkbaar in dit formulier. Als de fieldset bij de bron veranderd, veranderd deze ook in het huidige formulier!

oefening 4

  1. Open formulier aanvraag_{voornaam}
  2. Plaats de bestaande fieldset afzender persoon optioneel  eerste fieldset in het formulier
  3. Kies voor delen en niet kopiëren

schema templates

voorgedefnieerde formulieren

InProces heeft voor 3 schema' s van voorgedefinieerde templates beschikbaar.

  1. Aanvraagformulier
  2. Behandelformulier voor zaak
  3. Zoekscherm

Om een nieuw formulier te maken gebaseerd op een templates kies je voor de nieuw formulier knop.

schema templates

voorgedefnieerde formulieren

Bij aanvraag templates bepaal je welke fieldsets nodig zijn en verwijderd de overige.

Als een aanvraag anoniem gedaan kan worden laat je fieldset afzender persoon optioneel en afzender burger uit BRP staan en verwijder je fieldset afzender gemachtigde

 

Als aan het product geen kosten verbonden zitten kun je de betalings fieldsets ook weghalen

sjablonen

  1. Sjablonen worden gebruikt als basis voor documentcreatie.
  2. Een document in InProces wordt gecreëerd d.m.v. Het ingeven van de metadata, zoals de geadresseerde, documentatie, en eventuele andere parameters. Als alle gegevens zijn ingevuld kan het document worden gecreëerd op basis van het bijbehorende sjabloon.
  3. Bij het creëren van een document zoekt InProces naar een sjabloon dat is gedefinieerd bij het zaaktype, of met de naam van het schema dat voor het document wordt gebruikt. 
  4. Een sjabloon wordt gedefinieerd d.m.v. IPML
  5. Als alle gegevens zijn ingevuld kan het document worden gecreëerd in het formaat dat is gedefinieerd bij het sjabloon.
  6. Het uitvoerformaat kan zijn HTML, MS-Word (DOCX), Open Office (ODF) of Portable document formaat (PDF).  

responsive webformulieren

Sinds 2.7 zijn formulieren voor websites ook in een zogenaamde reponsive avriant beschikbaar, en daarmee te configureren voor responsive websites welke ook op telefoons en tablets goed invulbaar zijn.

Aangezien dit nieuwe technologie is en er een volledig ander framework is gemaakt zijn er een nog aantal aandachtspunten:

 

  1. Geen tabbladen
  2. Nog niet alle componenten worden ondersteund (tabellen, dynamictabpanels, sliders)
  3. Extra eigenschappen in JSON zijn niet het zelfde voor interne formulieren dan voor externe.
  4. Webformulieren zijn nu eenvoudiger webrichtlijnen compliant te maken

 

responsive webformulieren

Er is een knopje website beschikbaar in de formulieren editor.

  1. Vanuit de zaken applicatie kan middels alt-shift-d het datagrid worden geopend.
  2. Dit datagrid bied toegang tot de data op basis van de geconfigureerde schema's
  3. Alleen toegankelijk voor personen met beheer rechten
  4. Mogelijkheden
    1. entiteiten verwijderen, ook in bulk
    2. gegevenselementen bewerken (ook in bulk)
    3. entiteiten toevoegen
    4. entiteiten exporteren naar CSV (tbv excel e.d.)
    5. entiteiten importeren vanuit een CSV bestand
  5. Als data wordt bijgewerkt op de server zal ALTIJD het bijbehorende schema worden toegepast. Op deze wijze kunnen er nooit ongeautoriseerd gegevens in de database terechtkomen en zullen gegevens altijd de waardebepaling volgen welke in het schema is gedefinieerd.

datagrid

datagrid

  1. Vanuit de zaken applicatie kan middels alt-shift-p de package-manager worden geopend.
  2. een package is een export van entiteiten naar een IPP bestand. Een IPP bestand is een InProces Package XML bestand.
  3. Mogelijkheden
    1. Packages maken
    2. Packages importeren
  4. Een package kan zowel configuratie als content bevatten
  5. Configuratie
    1. Schemas (fieldsets en fields gaan automitisch mee)
    2. Zaaktypen
    3. Sjablonen

PACKAGEMANAGER

  1. Als een zaaktype  naar de packagemanager wordt gesleept dan zal InProces trachten ook bijbehorende sub-zaaktypes, sjablonen en schema's mee te nemen in het package.
  2. Tip: Combineer de datagrid met de packagemanager. Zoek in de datagrid de benodigde entiteiten en sleep ze naar de packagemanager. 
  3. Indien bron en doel versie van InProces afwijkt zal de packagemanager dat melden maar een import niet blokkeren. Het correct functioneren van de geïmporteerde componenten is de verantwoordelijkheid van u als gebruiker/functioneel beheerder.

PACKAGEMANAGER

Masterclass InProces 2.11 Datamodeling

By Ronald Brinkerink

Masterclass InProces 2.11 Datamodeling

Datamodelering, content, context, formulieren, schemas

  • 217