Drupal Rules
Nee, geen artikel over hoe geweldig Drupal is, maar een artikel over de Rules module. Met behulp van deze module voeg je een rules engine toe aan je webapplicatie waarmee eenvoudig business rules zijn op te stellen en te beheren. Maar eerst een korte introductie over wat een rules engine en business rules nu zijn.
Rules engine
Organisaties zijn meer en meer afhankelijk van software voor het uitvoeren van hun bedrijfsprocessen. Maar het aanpassen van software is vaak een proces dat veel tijd kost. Het resultaat is dat dezelfde software die ze in staat stelt hun processen efficiƫnt en effectief uit te voeren een organisatie tegelijkertijd minder wendbaar maakt.

Bedrijfsstrategie en -processen veranderen vaker dan software en de onderliggende ICT-infrastructuur
Met een rules engine worden business rules uit de applicatiecode onttrokken en op een centrale plek beheerd. Dit heeft als voordeel dat het gedrag van een applicatie is aan te passen zonder de onderliggende code aan te passen. Geen aanpassing van de onderliggende code betekent een verhoogde wendbaarheid.
De heilige graal is dat de proceseigenaren zelf de regels kunnen aanpassen, zonder tussenkomst van programmeurs of rules engine experts. Maar behalve bij een triviale of zeer beperkte scope is dit vaak niet haalbaar. En is ondersteuning toch nodig.
Business Rules
Business rules zijn compacte stellingen over een bedrijfsaspect. In tegenstelling tot programmacode zijn de stellingen opgesteld in een simpele taal die begrijpbaar is voor alle partijen, zowel in de business (bijvoorbeeld een productowner) als de techniek (technisch architect, programmeur).
Business rules hebben altijd de volgende constructie:
IF
<conditie>
THEN
<actie>
Er is geen ELSE in een business rule, omdat dit tot ongewenste bijeffecten leidt en de regel lastiger te testen is. Indien een regel moet worden opgesteld voor het geval dat de conditie niet van toepassing is, wordt een nieuwe business rule toegevoegd:
IF
NOT <conditie>
THEN
<actie>
Een eenvoudig voorbeeld van een business rule uit een praktijkcase is de volgende:
IF
<gebruiker logt in en profiel is incompleet>
THEN
<stuur gebruiker naar profielpagina>
Drupal Rules
De Rules module biedt de mogelijkheid business rules op te stellen die op specifieke events of op afroep (handmatig of programmatisch) worden uitgevoerd. De mogelijkheden zijn divers en uitgebreid en het maakt daarmee specialistische kleine modules, zoals Login Destination, overbodig.
De module is te installeren als normaal. Dit kan met drush of handmatig door de module te downloaden en in de sites/all/modules map te plaatsen. In de beheeromgeving kan de module vervolgens worden geactiveerd, waarna er een extra optie verschijnt in de beheeromgeving.
De module maakt gebruik van verschillende modules, waaronder de token module. De token module stelt systeemwaarden zoals gebruikers id en het huidige pad, beschikbaar zodat ze kunnen worden gebruikt bij vergelijkingen of om waarden in te stellen. Andere modules, zoals Path Rules en Flag, breiden de beschikbare condities en acties uit die gebruikt kunnen worden. Zo biedt de Privatemsg module de actie om een gebruiker een bericht toe te sturen.
Het opstellen van een regel gaat door middel van de beheeromgeving. Bij het opstellen van een regel kunnen verschillende condities worden toegekend die door middel van AND- of OR-operatoren worden samengevoegd. Bij elke conditie kan worden aangegeven of de NOT-operator moet worden toegepast. Vervolgens kan bij de actie een of meer acties worden toegepast. In de onderstaande tabel zijn enkele events, condities en acties opgesomd om een idee te geven van de mogelijkheden.
| Events | Condities | Acties |
|---|---|---|
|
|
|
De eerder genoemde business rule wordt als volgt vertaald:
In deze implementatie is gebruik gemaakt van de flag module om gebruikers met een incompleet profiel te markeren. Een extra conditie is toegevoegd op het huidige pad om een oneindige recursie te voorkomen. Een aparte business rule kan worden opgesteld om de vlag te verwijderen zodra de gebruiker het profiel heeft ingevuld.
Er is nog veel te vertellen over deze module en de mogelijkheden, maar ik zal hier slechts nog het im- en exporteren benoemen. Met de import/export functie kunnen de regels worden opgeslagen als text en op deze manier naar andere Drupal installaties worden overgebracht, zonder een database synchronisatie.
Conclusie
Drupal Rules is een veelzijdige module waarmee Business Rules te beheren en eenvoudig aan te passen zijn.
Het voordeel is dat de business rules hiermee op een plek zijn samengevoegd in plaats van verspreid over de code. Met de Rules module worden ook veel kleine modules overbodig die slechts een specifieke taak uitvoeren (bijvoorbeeld een redirect).
Referenties
- Morgan, A. (2002) Business Rules and Information Systems: Aligning IT with Business Goals,
Addison-Wesley, Boston - Drupal, http://drupal.org
- Rules Module, http://drupal.org/project/rules
- Path Rules Module, http://drupal.org/project/pathrules
- Drush, http://drupal.org/project/drush
- Token module, http://drupal.org/project/token
- Flag module, http://drupal.org/project/flag
- Login Destination module, http://drupal.org/project/login_destination
- Privatemsg module, http://drupal.org/project/privatemsg



Reageer
RSS feed for comments on this post · TrackBack URI