Blog 2: helderheid over transactionele systemen

De bomen en het bos in het IT landschap
Blog 2 geeft helderheid over transactionele systemen

Wil jij als ondernemer verder digitaliseren in je productiebedrijf of wil je het IT-landschap van je organisatie verbeteren? Maar zie jij door de bomen het bos niet meer? Binnen de ‘digitale fabriek’ wemelt het van de applicaties met afkortingen zoals ERP, CRM, CAD/CAM, MES en APS. Mobina helpt je in een serie van 6 blogs overzicht te krijgen. Voor een goed werkend IT-landschap is het belangrijk verschillende typen applicaties te onderscheiden en te begrijpen hoe deze met elkaar kunnen samenwerken. Deze tweede blog gaat dieper in op transactionele systemen, zoals ERP.

Transactionele systemen

Het type applicatie dat we in deze blog bespreken zijn transactie-verwerkende systemen ofwel transactionele systemen. Voorbeelden van zulke systemen zijn de boekhouding, de magazijnadministratie of de registratie van het onderhanden werk in een fabriek. Een transactie heeft betrekking op één of meer objecten in onderlinge samenhang. Voorbeelden van objecten zijn producten, machines, medewerkers, facturen, orders, betalingen, schulden, en nog veel meer. De informatie over deze objecten wordt bijgehouden in transactionele systemen. Gelijksoortige objecten worden in deze systemen gerepresenteerd in tabellen. 

Hieronder zijn twee van zulke tabellen als voorbeeld weergegeven, namelijk voor de object typen ‘producten’ en ‘werkorders’. In werkelijkheid zijn er vaak veel meer tabellen en zijn zij veel groter dan hier weergegeven.  

In contact komen?

Mocht je nu al vragen hebben? Of heb je zelf ervaring met dit thema? Aarzel dan niet om contact op te nemen. Stuur een email naar de schrijver Hans Wortmann via onderstaande knop. 

Producttabel transactionele systemen

Tabel met product informatie

Tabel met werkorder informatie

Tabellen in transactionele systemen

De tabel met producten toont een drietal producten met vijf attributen. De tabel met werkorders toont drie werkorders met zes attributen. Merk op dat het attribuut ‘Product id.’ in de tabel ‘werkorder’ verwijst naar hetzelfde attribuut in de tabel ‘product’. Het is de bedoeling van deze verwijzing, dat alleen werkorders zijn toegestaan, die verwijzen naar een bestaand product. Dit is een voorbeeld van een integriteit-eis. Zulke integriteitseisen zijn karakteristiek voor transactionele systemen. Deze systemen garanderen de consistentie van de gegevens in de onderliggende database.  

In de tabel ‘werkorder’ is ook een attribuut ‘opmerkingen’ getoond. Hier zie je, dat kleine stukjes tekst in transactionele systemen kunnen worden opgenomen. Vaak zijn die stukjes tekst gestandaardiseerd, en worden zij zichtbaar in een pop-up menu. Dit maakt het eenvoudig om objecten met bepaalde teksten te zoeken. Men moet deze teksten echter niet verwarren met documentaire systemen, die grotere teksten beheren. Daar komen we in een volgende blog op terug.   

Transacties

In een transactioneel systeem komt een transactie neer op het toevoegen, veranderen of verwijderen van de rijen in tabellen die de betreffende objecten representeren. Vaak hebben transacties betrekking op meerdere objecten, die in onderlinge samenhang wijzigen. Bijvoorbeeld de gereedmelding van een werkorder en tegelijkertijd ophogen van de voorraad van het betreffende product in het magazijn.

In transactionele systemen vinden transacties plaats op één moment. Zij vinden ofwel doorgang als geheel, ofwel er gebeurt niets. Dit hangt samen met de integriteitseisen: integriteit moet onder alle omstandigheden blijven gelden. In transactionele systemen worden deze eisen gespecificeerd in een schema, waarin de onderlinge samenhang van de tabellen tot uitdrukking komt. Zo’n schema, of datastructuur diagram, vormt de basis voor allerlei stukken software die automatisch checks uitvoeren of handelingen verrichten. Zo worden logistieke transacties in ERPsystemen automatisch doorgesluisd naar de boekhouding.   

Technologie

De software die automatisch checks uitvoert of handelingen verricht heet wel business logic, oftewel bedrijfslogica. Deze software is geschreven in een programmeertaal die karakteristiek is voor transactionele systemen. Zulke programmeertalen heten vierde generatietalen, afgekort als 4GL. Een goed ontworpen transactioneel systeem is ook in staat om heel veel gebruikers gelijktijdig toegang te geven tot heel veel data. Dit moet netjes worden georkestreerd zodat de gebruikers elkaar niet in de weg zitten, en de integriteit van de database gewaarborgd blijft én transacties niet worden onderbroken. Ook hiervoor is technologie beschikbaar, de zgn. runtime engine, die meestal gebaseerd is op zogeheten client-server architectuur. 

Discussie transactionele systemen

Integratie
problematiek

Heel vaak moeten softwaresystemen gegevens uitwisselen en vaak moet ook gebruik worden gemaakt elkaars bedrijfslogica. Wanneer zulke wensen naar voren komen, spreekt men van integratieproblematiek.  Bij integratie tussen twee transactionele systemen moet men over het algemeen verschillen in elkaars datastructuur overbruggen. Men kan een ERP- systeem zien als een integratie van een aantal operationele systemen (inkoop, boekhouding, personeelsadministratie, productie administratie, magazijn, distributie, service, verkoop etc) waarbij de datastructuren netjes op elkaar zijn afgestemd en waarbij dezelfde technologie is gebruikt: dezelfde 4GL, dezelfde runtime engine etc. Deze software is echter vanaf het begin zó opgezet en als één geheel gebouwd.  

Wanneer men twee bestaande transactionele systemen wil integreren is dat geen sinecure, maar wel goed mogelijk. Bijvoorbeeld het integreren van CRM en ERP. Hier betekent gegevensuitwisseling eveneens dat men datamodellen vergelijkt en aan elkaar relateert. Soms is het wenselijk ook transacties te integreren, en in het ene systeem gebruik te maken van bedrijfslogica uit het andere systeem. Hoewel integraties nooit simpel zijn, is een voordeel bij twee transactionele systemen, dat beide systemen zijn opgezet volgens vergelijkbare principes. Voor andere typen applicaties is het soms lastiger is om met transactionele systemen te integreren. Hierover meer in de volgende blogs in deze serie. 

Tot slot

Transactionele systemen vormen het hart van een applicatielandschap. Samen met de eerdergenoemde integratieproblematiek is dit de reden om deze blog te schrijven.  

NB: De beschrijving van transactionele systemen in deze blog is ideaal-typisch, de beschrijving ziet eruit alsof dit type systemen alleen in de pure vorm voorkomt. In de praktijk is dat zelden het geval.  Het kan bijvoorbeeld wenselijk zijn om een transactioneel systeem ergens een tijdskritisch karakter te geven; of het kan wenselijk zijn om in een transactioneel systeem iets van document management te realiseren. Het komt ook voor dat transactionele systemen niet helemaal zijn gebaseerd op een 4GL. Dat is juist een reden om een ideaal-typische beschrijving te geven, teneinde de verschillende applicaties goed te kunnen positioneren t.o.v. de ideaal-typische vormgeving.  

Mobina  
Mastering complexity  

Meer weten?

Ook een toekomstbestendig en competitief bedrijf?