Hi All,
I wanted to throw to discussion a feature that might be good in Drools. I am basically
trying to model a formula evaluator in a decision table. The idea being that a business
user directly defines formulas(without having to use Guided Editors in the BRMS or
Eclipse, as business users love Excel more than anything else..;)).
The thing I am trying to do is the following:
Condition Action
T:FormulaFact
formulaName int salary=t.getSalary();
t.setBenefit($1);
Formula1 salary * 100
Formula2 salary * 1000
Everything runs great as Excel simply substitutes the entered string into the function.
The problem I face is when I write something like this:
Formula3 min(salary,100)
The "," here is treated as the delimited of a parameter. So the compiled DRL
does not set the string correctly. It would make a rule like
Rule FormulaTable_123
When
T: FormulaFact(formulaName="Formula1")
Then
int salary=t.getSalary();
t.setBenefit(min(salary); //Since the words after the , become part of $2 which is not
defined.
End
Is there any-way to declaratively change the Decision Table Parser to not use , for
delimiting between parameters and use some other character.
I could always write the DT using my character, then compile the DT into DRL and replace
my character with ,(I am thinking of using "Colon"), but would it be a good idea
to have an Excel or a Property File that can be read by the SpreadSheetCompiler to change
the delimited character used by the Parser.
Cheers,
Vikrant
MASTEK LTD.
Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
In the US, we're called MAJESCOMASTEK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opinions expressed in this e-mail are those of the individual and not that of Mastek
Limited, unless specifically indicated to that effect. Mastek Limited does not accept any
responsibility or liability for it. This e-mail and attachments (if any) transmitted with
it are confidential and/or privileged and solely for the use of the intended person or
entity to which it is addressed. Any review, re-transmission, dissemination or other use
of or taking of any action in reliance upon this information by persons or entities other
than the intended recipient is prohibited. This e-mail and its attachments have been
scanned for the presence of computer viruses. It is the responsibility of the recipient to
run the virus check on e-mails and attachments before opening them. If you have received
this e-mail in error, kindly delete this e-mail from desktop and server.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Show replies by date
Hi,
All this boils down to RuleModel which does not have mechanism of sending more than 1
attribute in an action. Look at BRDRLPersistence and also ActionFieldSetValue classes in
drools-compiler.
Regards,
- Nimesh
From: rules-users-bounces(a)lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On
Behalf Of Vikrant Yagnick
Sent: Friday, October 10, 2008 7:52 PM
To: Rules Users List
Subject: [rules-users] Changing the default character for delimiter in decision tables
Hi All,
I wanted to throw to discussion a feature that might be good in Drools. I am basically
trying to model a formula evaluator in a decision table. The idea being that a business
user directly defines formulas(without having to use Guided Editors in the BRMS or
Eclipse, as business users love Excel more than anything else..;)).
The thing I am trying to do is the following:
Condition Action
T:FormulaFact
formulaName int salary=t.getSalary();
t.setBenefit($1);
Formula1 salary * 100
Formula2 salary * 1000
Everything runs great as Excel simply substitutes the entered string into the function.
The problem I face is when I write something like this:
Formula3 min(salary,100)
The "," here is treated as the delimited of a parameter. So the compiled DRL
does not set the string correctly. It would make a rule like
Rule FormulaTable_123
When
T: FormulaFact(formulaName="Formula1")
Then
int salary=t.getSalary();
t.setBenefit(min(salary); //Since the words after the , become part of $2 which is not
defined.
End
Is there any-way to declaratively change the Decision Table Parser to not use , for
delimiting between parameters and use some other character.
I could always write the DT using my character, then compile the DT into DRL and replace
my character with ,(I am thinking of using "Colon"), but would it be a good idea
to have an Excel or a Property File that can be read by the SpreadSheetCompiler to change
the delimited character used by the Parser.
Cheers,
Vikrant
MASTEK LTD.
Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
In the US, we're called MAJESCOMASTEK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opinions expressed in this e-mail are those of the individual and not that of Mastek
Limited, unless specifically indicated to that effect. Mastek Limited does not accept any
responsibility or liability for it. This e-mail and attachments (if any) transmitted with
it are confidential and/or privileged and solely for the use of the intended person or
entity to which it is addressed. Any review, re-transmission, dissemination or other use
of or taking of any action in reliance upon this information by persons or entities other
than the intended recipient is prohibited. This e-mail and its attachments have been
scanned for the presence of computer viruses. It is the responsibility of the recipient to
run the virus check on e-mails and attachments before opening them. If you have received
this e-mail in error, kindly delete this e-mail from desktop and server.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MASTEK LTD.
Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
In the US, we're called MAJESCOMASTEK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opinions expressed in this e-mail are those of the individual and not that of Mastek
Limited, unless specifically indicated to that effect. Mastek Limited does not accept any
responsibility or liability for it. This e-mail and attachments (if any) transmitted with
it are confidential and/or privileged and solely for the use of the intended person or
entity to which it is addressed. Any review, re-transmission, dissemination or other use
of or taking of any action in reliance upon this information by persons or entities other
than the intended recipient is prohibited. This e-mail and its attachments have been
scanned for the presence of computer viruses. It is the responsibility of the recipient to
run the virus check on e-mails and attachments before opening them. If you have received
this e-mail in error, kindly delete this e-mail from desktop and server.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~