Hi Avneesh (guessing your name from your email address),
I'm curious what you're actually trying to do. Especially as you refer to
"companyDivision" as a rule and as a function in different parts of your email.
If you intend to apply a function to all objects, is there any reason for it to be a
guided rule in Guvnor? As Mike mentions, you could create a free-format DRL
"technical rule" exactly as you wrote it below. It's perfectly fine to mix
the two up. Some rules suit management by a 'business' person within a guided
editor and others suit being hard-coded by a developer.
With the example you provide, it looks like you're trying to clone a fact when it is
inserted and call a function using the cloned fact as an argument.
If you have a guided rule or decision table which inserts a fact, and you wish to apply a
rule/function to the fact after being processed by the first rule, you can do things like
set a flag on that fact or insert a new fact type, which the technical free-form DRL rule
matches.
As a very trivial example:
when
$company: CompanyBean(!companyDivisionValidated)
then
companyDivision($company);
Steve
On 5 Sep 2012, at 10:02, Michael Anstis <michael.anstis(a)gmail.com> wrote:
Forwarded to mailing list.
You would have to consider use of free-format DRL in this scenario.
---------- Forwarded message ----------
From: <avneesh.sisodia(a)intelegencia.com>
Date: 4 September 2012 12:33
Subject: how to import function in drl file on guvnor
To: michael.anstis(a)gmail.com
Hello mantis,
I am very new in drools and guvnor users. I have a problem during making rules. I want to
use my predefined functions in rule execution.
Suppose I have a rule "companyDivision" and i want to import it into my rule
file like this:
package com.exp.test
import com.abc.bean.CompanyBean
import function
com.abc.util.Validation.companyDivision;
rule "CompanyInfo"
dialect "mvel"
when
CompanyBean( businessType == "ABC" , insuranceProgram ==
"XYZ" )
then
CompanyBean fact0 = new CompanyBean();
fact0.setBusinessType( "ABC" );
fact0.setInsuranceProgram( "XYZ" );
companyDivision(fact0 );
end
How I can do this.
I am doing following steps to c\generate rules::
1. creating com.exp.test package
2. uploading jar(model) file which included all pojo files of application
3. creating "CompanyInfo" rule
rule file generated by guvnor is like this:::
package com.exp.test
import com.abc.bean.CompanyBean
rule "CompanyInfo"
dialect "mvel"
when
CompanyBean( businessType == "ABC" , insuranceProgram ==
"XYZ" )
then
CompanyBean fact0 = new CompanyBean();
fact0.setBusinessType( "ABC" );
fact0.setInsuranceProgram( "XYZ" );
insert(fact0 );
end
I have only two options there 1. insert and 2. insert logically.
but on place of insert and insert logically I want to use "companyDivision"
function.
Please guys tell me how it is possible.
Thanks
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users