Hi folks,

Given a decision table a bit like this (hopefully the monospaced font lays it out ok!):

Account Currency CanTrade
   1       EUR       Y
   1       USD       Y
   1       IDR       Y
   1     Otherwise   N
   2       EUR       Y
   2       USD       Y
   2     Otherwise   N

LHS conditions are generated a bit like this:
account == 1, currency == 'EUR'
account == 1, currency == 'USD'
        account == 1, currency == 'IDR'
account == 1, currency not in ('EUR', 'USD', 'IDR')
account == 2, currency == 'EUR'
account == 2, currency == 'USD'
account == 2, currency not in ('EUR', 'USD', 'IDR')

… which has the effect that for account 2, currency IDR, the rule does not fire. For the business analysts building the rules, this does't make a lot of sense, as they're expecting it to mean:
account == 2, currency not in ('EUR', 'USD')

Unfortunately this means that if a currency is permitted for one account, then a row must be added for every other account, indicating that the currency is not permitted.

I'm trying to achieve a sensible default (fire the rule to reject the trade) unless the currency is explicitly permitted.

Is there a decent mechanism for achieving this in a decision table?

One alternative I can think of is to create a technical rule which logically inserts a rejection which exists as long as this rule hash't fired. But I would really prefer to avoid doing anything like that, as I reckon it would be something of a maintenance nightmare.

Any thoughts?

Cheers,

Steve