Eekboek stuurtaal
EekBoek is een mooi voorbeeld van een 'Domain Specific Language' (DSL) (Zie de uitgebreide verhandelingen over DSL's van Martin Fowler).
Doordat het een 'taal' is, is EekBoek goed toegankelijk voor programmeurs en andere IT-specialisten die gewend zijn aan het werken met zelfgeschreven scripts en programma's.
De commando's kunnen interactief ingevoerd worden binnen de 'ebshell' maar ook ingevoerd in afzonderlijke bestanden die vervolgens als 'batch' verwerkt kunnen worden. Dit opent de mogelijkheid tot het automatiseren van (delen van) de boekhouding aan de hand van bijvoorbeeld geexporteerde bankafschriften. Met een programma of script kunnen de bankafschriften omgezet worden naar EekBoek commando's die vervolgens automatisch verwerkt kunnen worden.
Syntax
(Het is nog even zoeken naar de juiste vorm maar ik probeer een compact overzicht te creeren)
- ? = optioneel
- * = nul of meer
- + = een of meer
- | = alternatieven
Boekingen
Inkoopfactuur: | inkoop(:nr)? datum omschrijving crediteur (--totaal=bedrag)? regel+ |
Verkoopfactuur: | verkoop(:nr)? datum omschrijving debiteur (--totaal=bedrag)? regel+ |
Bankafschrift: | bank(:nr)? datum omschrijving (crd_regel | deb_regel | std_regel)+ |
Kas: | kas(:nr)? datum omschrijving (crd_regel | deb_regel | std_regel)+ |
Memoriaal: | memoriaal(:nr)? datum omschrijving (crd_regel | deb_regel | std_regel)+ |
crd_regel: | crd datum? crediteur bedrag |
deb_regel: | deb datum? debiteur bedrag |
std_regel: | std datum? regel |
regel: | omschrijving bedrag rekening |
Rekeningschema Bakker
In de opzet van meneer Bakker bestaat een rekeningsschema op twee niveaus. Een niveau is de manier van indelen, het tweede niveau is de indeling zelf.
De manier van indelen betreft de hoofdverdichtingen.
1 Vaste Activa 2 Vlottende activa 3 Eigen vermogen
enzovoorts. Bakker heeft daar een vaste indeling voor. Het tweede niveau is de nummering van (hoofd)verdichtingen:
2 Vlottende activa 21 Handelsvoorraden 2100 Voorraad 22 Vorderingen 2200 Debiteuren 23 Liquide middelen 2300 Kas
Hier bepaalt in elk rekeningnummer het eerste cijfer de hoofdverdichting en de eerste twee cijfers de verdichting. Dat kan natuurlijk alleen maar als je minder dan 10 (hoofd)verdichtingen hebt, of je moet het erg ruim gaan aanpakken:
02 Vlottende activa 0201 Handelsvoorraden 020100 Voorraad 0202 Vorderingen 020200 Debiteuren 0203 Liquide middelen 020300 Kas