Business Rules
Business rules kun je opverschillende manieren instellen.
Er zijn 3 typen:
Blokkerend (Rood, rapport dat deze declaraties bevat kan niet worden ingediend)
Waarschuwend (Geel, rapport dat deze declaraties bevat kan wél worden ingediend)
Informatief (Blauw, rapport dat deze declaraties bevat kan wél worden ingediend).
Je kiest voor blokkerend wanneer er een harde regel is. Bijvoorbeeld een maximum bedrag per declaratie, of rapport. Of een maximum bedrag per categorie in een bepaalde periode.
Deze regels worden gedefinieerd door de klant zelf.
Instellen
Een business rule werkt door middel van een script. Je kunt hierin een declaratie op rapport op bepaalde eigenschappen controleren.
In het veld uitleg zet je de tekst die je aan de gebruiker wilt tonen. Het is hier belangrijk dat de melding duidelijk is zodat de medewerker weet wat er mis is met de declaratie en of hij daar zelf wat aan zou kunnen doen.
In het script definieer je wanneer de melding getoond moet worden, meer info hierover wordt hieronder uitgelegd aan de hand van verschillende voorbeelden.
Je kunt er voor kiezen om een business rule alleen aan een bepaalde groep medewerkers te tonen, bijvoorbeeld wanneer er voor een eerste laag managers een ander maximum bedrag geld dan een derde laags manager. De business rule wordt alleen getoond aan de medewerkers die dus in de groep zitten die bij groepen is gespecifeerd. Als deze leeg is, wordt de melding aan iedereen getoond.
Bij type geef je aan of het een fout (blokkerende businessrule), waarschuwing of opmerking is (informatieve businessrule).
Voorbeelden:
Business rules op categorie
bill.value > 25 && bill.category.code == '4021'
Deze business rule doet het volgende : wanneer een declaratie een bedrag heeft dat hoger is dan 25 € en de gekozen categorie code 4021 heeft, wordt deze business rule getoond. Je kunt natuurlijk ook alle declaraties onder een bepaald bedrag een business rule laten triggeren. Dat ziet er dan zo uit:
bill.value < 25 && bill.category.code == '4021'
Meerdere categorieën
bill.value > 100 && bill.category.code in ['100', '200', '700']
Deze business rule doet het volgende : wanneer een declaratie een bedrag heeft dat hoger is dan 100 € en in een categorie zit met de code 100, 200 of 700, dan gaat deze business rule af.
Je kunt verschillende velden gebruiken om op de categorie te checken in de business rule:
Eigenschappen categorie1. Code veld
In de voorbeelden hierboven wordt het codeveld van een categorie gebruikt, dit is in de meeste gevallen de handigste manier. Tenzij deze code binnen de administratie ook voor andere categorieen gebruikt, dan kun je terugvallen op een ander code veld ( code2, code3 of code4.)
2. Code 2 t/m 4 veld
Omdat deze velden doorgaans niet gebruikt worden om grootboekrekeningnummers of looncodes in te zetten voor de export kun je deze uitstekend gebruiken om zelf een verwijzing in te zetten.
3. Naam (geen aanrader)
Je kunt ook de naam van een categorie gebruiken, dit is echter geen aanrader omdat je hier makkelijk fouten in kan maken en klanten de naam van de categorie nog wel eens willen aanpassen, dan werken je business rules niet meer.
Maximum bedrag per periode
Soms is er geen maximum bedrag per declaratie, maar per periode. Je kunt dan onderstaande business rule gebruiken.
bill.category.code == '135' && DAYAMOUNT(bill.getCategory()) > 62.50
Hier wordt eerst gekeken of de declaratie een categorie heeft met code 135 en checkt vervolgens het dagtotaal (dayamount) van deze categorie (voor deze medewerker) is deze inclusief de huidige declaratie hoger dan het opgegeven bedrag? Dan wordt de business rule getoond.
DAYAMOUNT = dagtotaal
MONTHAMOUNT = maandtotaal
YEARAMOUNT= jaartotaal
Business rules op eigen velden
bill && bill.getFieldData('kostenplaats-2') && ISATTRIBUTE(bill.report.bills,
"getFieldData('kostenplaats-2')", '!=', bill.getFieldData('kostenplaats-2'))
Deze business rule doet het volgende : vraagt van een declaratie (Bill) het custom field met de systeemsleutel kostenplaats-2 op, daarna wordt gekeken naar het rapport waar de declaratie aan toegevoegd is (bill.report.bills), daar wordt dan van alle declaraties het kostenplaats-2 veld opgehaald en vervolgens vergeleken met de waarde in het kostenplaats-2 veld van de originele declaratie. Als deze niet hetzelfde is (!=), wordt de business rule getoond.
De leeftijd van een declaratie
DATEDIFF(bill.expenseDate, 'now', '%r%a') > 180
Bij sommige organisaties moeten medewerkers hun declaraties binnen een bepaalde periode indienen en vervalt anders het recht op terugbetaling. We kunnen dit met een business rule aan de medewerker duidelijk maken. Bovenstaande regel checkt het verschil tussen de datum van de declaraties (bill.expeneseDate) en nu. In dit geval staat het ingesteld op 180 dagen. Als de declaratie dus ouder dan 180 dagen is kan deze niet meer worden ingediend.