Bibliotheek in ProcessMaker

Vergelijkbare documenten
Inhoud KAS-WEB: HANDLEIDING IDG OPERATOR

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

Sparse columns in SQL server 2008

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Les 15 : updaten van gegevens in de database (deel2).

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

Gebruikers Handleiding

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

En hoe gaan ze dit allemaal terugvinden?

Query SQL Boekje. Fredrik Hamer

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

6. Het maken van een database

Excel Controller. Handleiding Excel Controller Wizard

SQL & Relationele datamodellen in interactieve media

Formulieren maken met Dreamweaver CS 4

Formulieren maken met Dreamweaver CS 4/CS 5

Handleiding. Verlinde Website

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Databases - Inleiding

AFO 142 Titel Aanwinsten Geschiedenis

[TOETS SQL INLEIDING]

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

Handleiding CMS VOORKANT

Subrapporten. 5.1 Inleiding

Secure Application Roles

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

Technische nota AbiFire Rapporten maken via ODBC

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Handleiding configuratie en gebruik tekenmodule

SQL datadefinitietaal

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

PhPlist Gebruikers Handleiding

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

Informatie Voor algemene vragen/opmerkingen omtrent de inhoud van deze site kunt u bellen of en met: Cargo Data Systems BV

Technische nota AbiFire5 Rapporten maken via ODBC

Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008

Het omzetten van een ER-diagram naar SQL

Koppeling met een database

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

#Stap 1 Uw account activeren en inloggen

Een website maken met databasetoegang.

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Handleiding voor het maken van een online enquête formulier. Google Drive toepassing

Data Warehouse Script Generator Doel

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen.

Handleiding Europont Bestellen via internet (EDI)

Paazl MijnWebwinkel Extensie Handleiding voor het instellen en gebruik van Paazl in de beheeromgeving

12. Meer dan één tabel gebruiken en sub-queries

Informatie & Databases

Les 2 Eenvoudige queries

ACT! link XL voor SnelStart handleiding

2016 Brezan Automaterialen handleiding v1.6 - koppeling PnG met CSS Pagina 1 van 15

Ariba Network Catalog

1. Gebruikers & voertuigen Hoe voeg ik een gebruiker toe?... 3

6.8 Lijsten: oefeningen

DHL KOPPELING GEBRUIKERSHANDLEIDING

PHP en een MySQL database.

Automatische Installatie op IIS server

DHL PARCEL INTRODUCTIE. *Bron: Metapack

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

1. Gebruikers & voertuigen

H AN D L E I DI N G FORM U LI E RM AK E R

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

Inhoudsopgave. Theorie Praktijk Gegevens uit Database halen DML commando s... 14

1. Gebruikers & voertuigen Hoe voeg ik een gebruiker toe?... 3

Handleiding Magento - Asperion

1.1 Een database ontwerpen voor een webliografie

Systeemontwikkeling, Hoofdstuk 5, Formulieren maken in MS Access 2010

Groepswerk Technieken voor Datamodellering

MA!N Rapportages en Analyses

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

1. Gebruikers & voertuigen Hoe voeg ik een gebruiker toe?... 3

SPSS VOOR DUMMIES+ Werken met de NSE: enkele handige basisbeginselen. Gebaseerd op SPSS21.0 & Benchmarkbestand NSE 2014

Handleiding RS Form! 1.0.4

Release Notes. Afdrukdatum: 2008/10/06

Van CaseTalk naar een database in SQLite studio

Instructie Beheren Cases

Handleiding Q8Liberty Web

Handleiding. Act! SnelStart Connect. handleiding. Act! SnelStart Connect. Versie

Correctievoorschrift VWO NederlandsNederl. Informatica. Tijdvak 1 Woensdag 17 mei uur. College-examen schriftelijk.

Handleiding voor het maken van een online enquête formulier. Google Drive toepassing

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen.

AFO 277 Bestelmodule lijsten

Toetsen in Blackboard

Securing. World. G4S Cash portal

Handleiding De Sociale Monitor

INLOGGEN Vul gebruikersnaam en wachtwoord in, en klik op log in.

Snelstart handleiding ZPEAK

Handleiding CMS EWall

Quick Guide VivianCMS

Act! Salutation Tool ICT

Etiketten maken P&A Group

Handleiding. Act! SnelStart Connect Pro. handleiding. Act! SnelStartConnect Pro. Versie

webarchitects Handleiding Shop2rent dream > explore > create > inspire Date: Modified:

Transcriptie:

Bibliotheek in ProcessMaker Gevraagd wordt voor een bibliotheek een informatiesysteem te ontwerpen. De bibliotheek heeft een aantal bibliothecarissen die de verzameling beheren, en leden die deze boeken kunnen lenen. Leden mogen maximaal 2 boeken thuis hebben. Daarnaast wil de bibliothecaris nieuwe boeken kunnen bestellen bij de verschillende leveranciers. Gevraagd wordt hier een informatiesysteem voor te ontwerpen. Er zijn dus twee processen van belang: boeken aanschaffen en boeken lenen. Specificatie Datamodel Member a Book b Location User c Supplier d Offer Voor de bibliotheek gebruiken we een versimpeld datamodel. Boeken staan op een locatie in de kast (relatie b) of zijn uitgeleend aan een lid (relatie a). Als relatie a niet gezet is, is het boek aanwezig in de bibliotheek. Voor een boek worden offertes uitgebracht (relatie c) door een supplier (relatie d). Proces 1: boek aanschaffen In dit model gaan we ervan uit dat er 5 leveranciers zijn. Analyse: Het model is sound omdat a) alle plaatsen afgedekt zijn met de plaatsinvarianten i+p+q+r+s+f = 1 en t+leveranciers = 5, en b) f+5leveranciers is een home marking. Daarnaast kan transitie bestel boek alleen vuren als er 5 tokens in leveranciers liggen, wat door het model afgedwongen wordt, doordat vraag leverancier en geef levertijd altijd even vaak moeten vuren. Het model is dus correct.

Transitie Rol Omschrijving Selecteer boek librarian De bibliothecaris geeft de details van het boek dat besteld moet worden. Vraag leverancier librarian De bibliothecaris vraagt aan een leverancier om de beschikbaarheid en levertijd op te geven. Levertijd leverancier supplier De leverancier geeft de beschikbaarheid en levertijd van het gevraagde boek door Bestel boek librarian Uit de opgaven van de leveranciers kiest de bibliothecaris de beste optie, en bestelt daar het boek Lever boek supplier De uitverkoren supplier levert het boek af bij de bibliotheek Plaats boek librarian De bibliothecaris plaatst het boek in het rek in de bibliotheek, zodat leden het boek kunnen lenen. Proces 2: leen een boek Aanname: leden brengen boeken altijd terug. Analyse: het model is een Jackson omdat iedere transitie maar één ingaande en één uitgaande pijl heeft. Met behulp van de Jackson reductieregels is het net te reduceren tot een enkele gemarkeerde plaats. Ofwel, het model is sound. Transitie Rol Omschrijving Kies boek Member Een lid van de bibliotheek pakt een boek uit de kast om het te lenen. Controleer uitgeleende boeken Librarian De bibliothecaris controleert of het betreffende lid niet al twee boeken geleend heeft. Is dit het geval, mag het lid het boek niet meenemen. Leen boek Member Het lid neemt het boek mee naar huis Breng boek terug Member Het lid brengt het boek terug Zet boek terug Librarian De bibliothecaris zet het boek terug in de kast.

Implementatie Gebruikers en rollen Eerst maken we de gebruikers aan. 1. Log in op ProcessMaker 2. Ga naar Admin -> users 3. Klik op New en maak de volgende gebruikers aan: User name First name Last name Password asup Ab Supplier absup bsup Bert Supplier besup balie Bert Alie balie lid1 Een Lid eenlid lid2 Tweede Lid tweelid We definiëren vervolgens de volgende drie rollen: Member, Librarian en Supplier. 1. Selecteer Groups 2. Klik op New en maak ieder van de drie rollen aan. 3. Selecteer de rol en klik op Users. Voeg de volgende gebruikers aan de rollen toe: Rol Leden Member lid1, lid2 Librarian balie Supplier asup, bsup Datamodel Het datamodel implementeren we ook in ProcessMaker. Hiervoor blijven we in Admin. 1. Klik op Settings, en ga naar PM tables 2. Klik op New en kies New PM table 3. Maak de volgende tabellen op deze manier: Tabel Veldnaam Label Type Size Primary Key Auto incr. BOOK ID Id VARCHAR 255 Ja NAME Name VARCHAR 255 ISBN ISBN VARCHAR 255 AUTHORS Authors VARCHAR 255 LOCATION Location BIGINT MEMBER Member VARCHAR 255 OFFER SUPPLIER Supplier VARCHAR 255 Ja BOOK Book VARCHAR 255 Ja DELIVERY Delivery date DATETIME PRICE Price FLOAT LOCATION ID Id BIGINT Ja Ja NAME Name VARCHAR 255

Location kunnen we van te voren al vullen met waarden, zeg Kast 1 en Kast 2. Dit doen we door op de tabel Location te klikken en op Data te klikken. Nu hebben we de tabellen en gebruikers aangemaakt, en kunnen we de processen gaan definiëren.

Proces 1: Bestel boek Omzetting van Petrinet: in plaats van de constructie met de plaats Leverancier gebruiken we het multi-instance task workflowpatroon, door de taak Geef levertijd het type Parallel mee te geven. Daarmee wordt de taak uitgevoerd door alle Suppliers, en Bestel boek kan pas vuren nadat alle taken zijn afgerond. Daarmee heeft het BPMN-model hetzelfde gedrag als bovenstaand Petrinet, voor een willekeurig aantal leveranciers. Om een formulier te maken, klik in het zijmenu op Dynaforms Formulier: Selecteer boek Dit formulier vult de bibliothecaris in bij het bestellen van een nieuw boek. Elementen: Textbox book String Boek Parent Textbox authors String Auteurs Parent Textbox ISBN String ISBN Parent

Formulier Geef Levertijd : Dit formulier vult een leverancier in om de levertijd en prijs door te geven. Elementen Textbox book String Boek View Textbox authors String Auteurs View Textbox ISBN String ISBN View Datetime deliverytime Datetime Levertijd Parent Textbox price Float Prijs Parent Om bestaande variabelen te gbruiken, kiezen we niet Create variable, maar Select variable (zie hieronder). Om een float-variabele toe te voegen, klik op settings tijdens het koppelen:

Formulier Bestel boek Dit formulier gebruikt de bibliothecaris om de leverancier te selecteren waarbij hij of zij het boek wil bestellen. Elementen: Textbox book String Boek View Textbox authors String Auteurs View Textbox ISBN String ISBN View Dropdown preferred_supplier String Leverancier Parent Daarnaast zetten we nog de SQL query voor de Dropdown om de juiste opties te tonen. We willen dat de leveranciers getoond worden, samen met de waarden die ze geselecteerd hebben. Dat doen we met de volgende query: SELECT SUPPLIER AS k, CONCAT(USR_FIRSTNAME, ' ', USR_LASTNAME, ': ', DELIVERY, ' (prijs:',round(price,2),')') AS v FROM PMT_OFFER INNER JOIN USERS ON USR_UID=SUPPLIER WHERE BOOK="@#APPLICATION" De query retourneert twee velden: een key en een label. In dit geval is de key de supplier, en de value is de naam van de supplier, samen met de levertijd en prijs die de leverancier voor dat boek heeft ingevuld. Het boek identificeren we aan de hand van de variabele @@APPLICATION (in SQL moet je daar @# voor schrijven volgens de ProcessMaker handleiding). Omdat we niet het ID van de supplier willen hebben, maar de volle naam, halen we deze op uit de tabel USERS. Daarmee krijg je dus een INNER JOIN op die tabel. (Je kunt deze query altijd uitproberen met bijvoorbeeld PHPMyAdmin).

Formulier Lever boek Dit formulier gebruikt de leverancier om aan te geven dat het boek is geleverd. Elementen Textbox book String Boek View Textbox authors String Auteurs View Textbox ISBN String ISBN View Datetime delivered Datetime Datum Parent

Formulier Plaats boek Dit formulier gebruikt de bibliothecaris om het boek in het systeem en in de kast te plaatsen. Elementen Textbox book String Boek View Textbox authors String Auteurs View Textbox ISBN String ISBN View Datetime delivered Datetime Datum View Dropdown location Bigint Locatie Parent Daarnaast moeten we nog de opties voor de locaties in de Dropdown aangeven. Dit doen we weer met een SQL query: SELECT id, name FROM PMT_LOCATION; Koppel vervolgens de formulieren aan de betreffende taken. Role-Assignment Koppel de taken aan de gebruikersrollen zoals in de specificatie bij de transities vermeld (selecteer self-service):

Voor de taak Geef levertijd, selecteer je Parallel Assignment, met de rol Supplier. Eerste testrun Nu is in principe het model rond, en kun je gaan testen of het werkt. Zoals je merkt, krijgen de twee leveranciers de taak geef levertijd toebedeeld, maar ziet de tweede leverancier de waarden van de eerste leverancier. Ook is de Drop-down voor de leverancier nog leeg, omdat het systeem er geen data in zet! Dat gaan we doen met triggers! Triggers Trigger 1: Sla leveranciersgegevens op. We willen de waarden die de leverancier heeft ingevuld opslaan in de tabel PMT_OFFER. Dat geeft drie stappen: 1. Haal de waarden op die de leverancier heeft ingevuld 2. Stop deze in de database 3. Reset de formulierwaarden voor de volgende run. Dat levert de volgende PHP-code op: // get the values $current_case = @@APPLICATION; $current_user = @@USER_LOGGED; $deliverytime = @@deliverytime; $price = @@price; $query = "INSERT INTO PMT_OFFER (SUPPLIER, DELIVERY, PRICE, BOOK) VALUES('". $current_user. "', '". $deliverytime. "',". $price. ", '". $current_case. "');"; // execute the query executequery($query); // reset delivery time and price @@deliverytime = getcurrentdate(); @@price = 0;

Wat doet deze code? Allereerst haalt deze de waarden op uit ProcessMaker: @@APPLICATION ofwel de case identifier van het proces gebruiken we als ID voor het boek, de supplier is de huidige gebruiker, ofwel @@USER_LOGGED. De deliverytime halen we uit @@deliverytime en de prijs uit @@price. Vervolgens maken we een query die deze waarden als een nieuwe rij in de tabel invoegt. Deze voeren we vervolgens uit. Tenslotte zetten we de ProcessMaker varaibelen weer op de initiële waarden voor de volgende gebruiker. Deze trigger koppelen we vervolgens aan Geef levertijd, zodat deze NA het invullen van het formulier wordt getoond. Open hiervoor het menu Steps van deze taak, klap het dynaform uit, en sleep de trigger in After Dynaform :

Trigger 2: Sla boek op in database Als laatste stap moeten we het boek ook in het systeem opslaan, zodat leden het boek ook daadwerkelijk kunnen uitlenen. Ook dit doen we met een trigger, volgens bovenstaande procedure. Dit levert de volgende PHP-code op: $id = @@APPLICATION; $titel = @@book; $auteurs = @@authors; $isbn = @@ISBN; $location = @@location; $query = "INSERT INTO PMT_BOOK (ID, NAME, ISBN, AUTHORS, LOCATION) VALUES(". "'". $id. "'". ", '". $titel. "'". ", '". $isbn. "'". ", '". $auteurs. "'". ", ". $location. ");"; executequery($query); Deze trigger slaan we op, en voeren we uit NA het tonen van de dynaform van Plaats boek. Lever boek door de juiste leverancier laten uitvoeren Als laatste stap willen we dat Lever boek door de geselecteerde leverancier laten uitvoeren. De geselecteerde leverancier wordt gekozen met de Dropdown preferred_supplier in de taak Bestel boek. Dus gebruiken we die variabele voor het selecteren van de juiste gebruiker:

Proces 2: Leen boek Omzetting van Petrinet Letterlijke omzetting. Alleen Leen boek en controleer Lener zijn in dit model samengenomen. Formulier: Pak boek Dit formulier toont alle niet uitgeleende boeken die een lid kan pakken. Elementen Dropdown book String Boek Parent Om de beschikbare boeken te selecteren, voegen we de volgende SQL query toe aan de Dropdown: SELECT ID AS k, CONCAT(AUTHORS, ': ', NAME) AS lbl FROM PMT_BOOK WHERE (MEMBER IS NULL OR MEMBER = '') ORDER BY AUTHORS Ofwel, alle boeken waarvan het veld MEMBER leeg is (of NULL). Formulier: Controleer lener Dit formulier wordt getoond aan de bibliothecaris die bepaalt of het boek al dan niet uitgeleend wordt.

Elementen Textbox member_first String Voornaam View Textbox member_last String Achternaam View Textbox books_borrowed Int Boeken uitgeleend View Textbox book_title String Boek View Checkbox approved Boolean Goedgekeurd Parent Het idee van dit formulier is dat de bibliothecaris ziet welk lid het boek wil lenen, samen met het aantal boeken dat het lid al geleend heeft. De bibliothecaris gebruikt het veld approved om te bepalen of het lid al dan niet een boek mag lenen. Formulier Breng boek terug Dit formulier toont het boek dat het lid moet terugbrengen. Elementen Textbox book_title String Boek View

Formulier Zet boek terug Elementen Textbox book_title String Boek View Textbox authors String Auteurs View Dropdown location int Locatie Parent Voor dropdown willen we alle locaties tonen. Dus voegen we de volgende SQL query toe: SELECT ID, NAME FROM PMT_LOCATION ORDER BY NAME; Koppel de taken en formulieren (1-op-1 correspondentie). Triggers Trigger 1: Haal member-gegevens op Allereerst willen we weten welk lid de casus start. Immers deze moet ook het boek terugbrengen. Eerst maken we onder Variables een nieuwe variabele aan: Member van het type string. Vervolgens maken we een trigger die member en de bijbehorende velden vult, zoals je hieronder kunt zien. Het eerste statement kijkt of de variabele @@member een waarde heeft (dus null of leeg is). Als dat het geval is, geven we @@member de waarde van @@USER_LOGGED, ofwel de gebruiker die ingelogd is. Deze waarde kennen we ook toe aan $member, zodat we deze in de code kunnen gebruiken. Vervolgens halen we de voor- en achternaam op van de gebruiker, door een query op te stellen, en die uit te voeren. Als het resultaat minimaal 1 rij is, kunnen we @@member_first en @@member_last vullen met de voor- en achternaam, respectievelijk. Als laatste bepalen we hoeveel boeken een lid heeft uitgeleend. Dit zien we in de tabel PMT_BOOK, waarin het aantal rijen waarin MEMBER de huidige gebruiker is aangeeft hoeveel boeken deze heeft geleend. Dat doen we met de query: SELECT COUNT(*) AS BORROWED FROM PMT_BOOK WHERE MEMBER=' '; Waarna we het resultaat in @@books_borrowed opslaan. Dit levert de volgende trigger op:

if (!isset(@@member) or empty(@@member)) { @@member = @@USER_LOGGED; } $member = @@member; $query = "SELECT USR_FIRSTNAME, USR_LASTNAME FROM USERS WHERE USR_UID='".$member."'"; $res = executequery($query); if (is_array($res) && count($res) > 0) { @@member_first = $res[1]['usr_firstname']; @@member_last = $res[1]['usr_lastname']; } $query = "SELECT COUNT(*) AS BORROWED FROM PMT_BOOK WHERE MEMBER='".$member."';"; $res = executequery($query); if (is_array($res) && count($res) > 0) { @@books_borrowed = $res[1]['borrowed']; } Trigger 2: Haal boekgegevens op Vervolgens moeten we weten welk boek is geselecteerd door de gebruiker: wat is de titel en wie zijn de auteurs?, zodat we die kunnen weergeven in de formulieren. Dat is een zelfde stukje PHP code: $id = @@book; $query = "SELECT NAME, AUTHORS FROM PMT_BOOK WHERE ID='".$id."'"; $res = executequery($query); if (is_array($res) && count($res) > 0) { @@book_title = $res[1]['name']; @@authors = $res[1]['authors']; } Sla het boek op in $id, haal vervolgens de gegevens van dat boek op, en sla de titel en auteurs op. Trigger 3: Leen boek uit Wanneer de bibliothecaris de uitlening heeft goedgekeurd, moet dit ook in de database aangepast worden. Met het veld MEMBER in tabel PMT_BOOK slaan we op wie op dat moment het boek heeft. Dat leidt tot het volgende stukje PHP-code, dat voor zich spreekt: $book = @@book; $member = @@member; $approved = @@approved; if ($approved) { $query = "UPDATE PMT_BOOK SET MEMBER='". $member. "' WHERE ID='". $book. "';"; executequery($query); }

Trigger 4: Boek terugbrengen Om het boek terug te brengen, moeten we de locatie weer goed zetten, en het veld MEMBER in PMT_BOOK leegmaken, zodat het systeem weet dat het boek terug is. Dat leidt tot de volgende, voor zichzelf sprekende code: $book = @@book; $location = @@location; $query = "UPDATE PMT_BOOK SET MEMBER='', LOCATION=".$location." WHERE ID='".$book."';"; executequery($query); Koppelen van de triggers Wanneer moeten de triggers uitgevoerd worden? Haall Membergegevens moet eigenlijk zo snel mogelijk opgehaald worden, dus voor het tonen van het eerste scherm. De boekgegevens mogen we ophalen zodra we het boek hebben geselecteerd. De andere triggers horen na het tonen van de bijbehorende formulieren uitgevoerd te worden. Dat leidt tot de volgende instellingen: Taak Positie Trigger Pak boek Voor dynaform Haal member-gegevens op Na dynaform Haal boekgegevens op Controleer lener Na dynaform Leen boek uit Zet boek terug Na dynaform Boek terugbrengen Authorisatie Stel de authorisatie als volgt in: Taak Type authorisatie Groep / rol Variabele Pak boek Value-based assignment Member @@member Controleer lener Self-service Librarian Breng boek terug Value-based assignment Member @@member Zet boek terug Self-service Librarian Hiermee hebben we dus twee processen die met elkaar verbonden zijn door de data die ze delen.