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
- Open het formulieren panel op zaken.test.webbergen.nl/management
- zoek het blancotemplate formulier op dmv filter in de kolom
- Klik op de kopieer knop
- Geef de naam aanvraagsubsidie_{voornaam}
- Pas de formulier titel aan naar Subsidie {voornaam}
- Voeg een tabblad toe
- Sla formulier op
- Voeg een fieldset toe met de naam aanvraag en titel Uw aanvraag
- Voeg een textfield toe met de naam subsidiesoort
- 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:
- Standaard waarde, wordt bij creatie uitgerekend en daarna niet meer
- 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
-
Voeg een component "selectie uit data" toe met naam subsidiebudgetsoort en label Subsidie budget
- Sla het formulier op
velden toevoegen
oefening 3
selectie van gegevens uit de database
- Open je aanvraag_{voornaam} formulier
- Selecteer het veld "subsidiebudgetsoort"
- Kies op tabblad "keuzelijst" voor collectie
- Kies als collectie "subsidiebudget"
- Query (filter) blijft {query}*
- Gegeven tonen = "omschrijving"
- Gegeven opslaan = "omschrijving"
- 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
- Een bestaande fieldset kan worden gekopieerd vanuit een bestaand schema
- Een bestaande feillooste kan worden gedeeld van een bestaand schema
- Sleep component bestaande fieldset naar de plaats in de model-weergave waar deze moet komen.
- Een dialoog wordt getoond met bestaande fieldsets.
- Zoek de juiste en klik hem aan.

bestaande fieldsets hergebruiken
- Beantwoord de vraag of je de fieldset wil kopieren of delen
- Bij kopieren is de fieldset niet meer gekoppeld aan de bestaande fieldset en kan in dit schema worden bewerkt
- 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
- Open formulier aanvraag_{voornaam}
- Plaats de bestaande fieldset afzender persoon optioneel eerste fieldset in het formulier
- Kies voor delen en niet kopiëren
schema templates
voorgedefnieerde formulieren
InProces heeft voor 3 schema' s van voorgedefinieerde templates beschikbaar.
- Aanvraagformulier
- Behandelformulier voor zaak
- 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
- Sjablonen worden gebruikt als basis voor documentcreatie.
- 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.
- 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.
- Een sjabloon wordt gedefinieerd d.m.v. IPML
- Als alle gegevens zijn ingevuld kan het document worden gecreëerd in het formaat dat is gedefinieerd bij het sjabloon.
- 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:
- Geen tabbladen
- Nog niet alle componenten worden ondersteund (tabellen, dynamictabpanels, sliders)
- Extra eigenschappen in JSON zijn niet het zelfde voor interne formulieren dan voor externe.
- Webformulieren zijn nu eenvoudiger webrichtlijnen compliant te maken
responsive webformulieren

Er is een knopje website beschikbaar in de formulieren editor.
- Vanuit de zaken applicatie kan middels alt-shift-d het datagrid worden geopend.
- Dit datagrid bied toegang tot de data op basis van de geconfigureerde schema's
- Alleen toegankelijk voor personen met beheer rechten
- Mogelijkheden
- entiteiten verwijderen, ook in bulk
- gegevenselementen bewerken (ook in bulk)
- entiteiten toevoegen
- entiteiten exporteren naar CSV (tbv excel e.d.)
- entiteiten importeren vanuit een CSV bestand
- 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

- Vanuit de zaken applicatie kan middels alt-shift-p de package-manager worden geopend.
- een package is een export van entiteiten naar een IPP bestand. Een IPP bestand is een InProces Package XML bestand.
- Mogelijkheden
- Packages maken
- Packages importeren
- Een package kan zowel configuratie als content bevatten
- Configuratie
- Schemas (fieldsets en fields gaan automitisch mee)
- Zaaktypen
- Sjablonen
PACKAGEMANAGER
- 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.
- Tip: Combineer de datagrid met de packagemanager. Zoek in de datagrid de benodigde entiteiten en sleep ze naar de packagemanager.
- 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