Jaren geleden hoorde ik een SAP consultant praten over ‘Business rules’. Er vlogen flitsende editors langs met lange lijsten aan regeltjes. Gelukkig was het allemaal niet zo ingewikkeld als het leek.
Wat is een business rule
Een business rule is niet meer dan een eenvoudige programmeerconstructie in een vorm als:
- als [conditie] waar is
- onderneem dan de actie [actie]
Denk bijvoorbeeld aan:
- Als ‘actiecode is 42101′
- dan ’20% korting op aankoopbedrag’
Hoe je zo’n business rule vastlegt, en waar je ‘m gebruikt verschilt per softwarepakket. In procesorchestratie kunnen business rules erg handig zijn om logica buiten een proces te bewaren.
Het nut van business rules
Stel je voor dat in een financiëel programma de korting ingeprogrammeerd is op 20%. Als de korting verlaagd wordt of de voorwaarden veranderen moeten de programmeurs aan de slag.
Omdat dit eigenlijk geen technische logica is (vandaar de naam business rule) maar aangepast moet kunnen worden door het bedrijf, zijn er business rule engines. Met de bijbehorende editors kunnen werknemers (applicatiebeheerder, hoofd verkoop etc.) de regels aanpassen.
Oracle BPEL
Oracle heeft nog geen business rule engine geïntegreerd in hun BPEL engine. Volgens Oracle zelf zit het er wel aan te komen met hun Oracle Fusion pakket. En het is natuurlijk gewoon mogelijk business rules via webservices te implementeren.
Microsoft Biztalk 2006
Biztalk 2006 wordt geleverd met een business rule engine en een editor. De Microsoft Business Rule Composer. Het inwerken in deze applicatie kost niet veel tijd. Helaas zit er een nadeel aan, en dat is dat je niet eenvoudig naar meerdere servers kunt publiceren. De server waar je mee werkt wordt namelijk gelezen uit de ‘globale’ biztalk configuratie.
De composer biedt de mogelijkheid om te werken met XML berichten (zoals ook intern gebruikt wordt in een Biztalk proces) databases en .NET classes.
Simpelweg een .xsd importeren, de properties naar een nieuwe business rule slepen en dan condities en acties aanpassen.
Dat is alles wat nodig is om een business rule te maken voor gebruik in een Biztalk proces! Op dit gebied heeft Oracle dus nog even iets in te halen.