[rules-users] [newbie] Using rules to enforce constraints?

Scott Finnie scott.finnie at virgin.net
Thu Feb 22 16:04:29 EST 2007


Hi,

Apologies if this has been covered somewhere, couldn't find it in the 
archives.

I'm wondering about ability / sensibility of above.  For example, say I 
want to model the following rules:

1. A customer must be suspended if they default on a payment
2. A suspended customer may place any orders

Now the first one I can readily map to the when/then format of 
production rules.  But I can't see how to elegantly represent the second 
one - at least not in a transactionally clean manner.  I could write:

when
	c: Customer (status == "suspended")
	o: Order ( customer == c)
then
	o.reject() #etc.

But that's not really what I want to achieve.  Rather, I'd like the 
check enforced before the order was created, not after.

Or maybe I'm just thinking wrong?  Main influence is RDBMS, where I'd 
write a trigger that would stop the transaction completing if violated.

Hope that makes sense, and thanks in advance.

  - Scoot.




More information about the rules-users mailing list