[rules-users] Regarding implementation of bussiness Rule in Talend
Lavanya
aouklavanyareddy at gmail.com
Wed Dec 21 04:18:10 EST 2011
Hi All,
I am new user of Drools tool. I have done a sample business Rule in
Drools and tested. It is working fine in Drools. So I validated the package
and imported .drl file into talend studio under Meta data (Embedded Rules).
The code generated for the business rule is as follows:
package modelonsales
import salesmodel.Sales
import java.util.ArrayList
import java.util.HashMap
import java.lang.Integer
global ArrayList list
global HashMap globalMap
rule "SalesBR"
dialect "mvel"
when
exists Sales( sales >= "100" )
then
Sales fact0 = new Sales();
fact0.setName( "Discount" );
fact0.setSales( -10 );
insert(fact0 );
end
When I executing the job it is giving errors as follows:
*Starting job DroolsJob at 14:14 21/11/2011.
[statistics] connecting to socket on port 3678
[statistics] connected
[Error: unknown class or illegal statement: Sales]
[Near : {... es fact0 = new Sales();
fact0. ....}]
^
[Line: 1, Column: 13]
at
org.mvel2.compiler.AbstractParser.procTypedNode(AbstractParser.java:1278)
at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:712)
at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:106)
at
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:55)
at
org.drools.rule.builder.dialect.mvel.MVELExprAnalyzer.analyzeExpression(MVELExprAnalyzer.java:86)
at
org.drools.rule.builder.dialect.mvel.MVELDialect.analyzeBlock(MVELDialect.java:492)
at
org.drools.rule.builder.dialect.mvel.MVELConsequenceBuilder.build(MVELConsequenceBuilder.java:84)
at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:86)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1159)
at
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:649)
at
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:290)
at
org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:488)
at
org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25)
at
project1.droolsjob_0_1.DroolsJob$1KnowledgeBase_tRules_2.readKnowledgeBaseDRL(DroolsJob.java:595)
at
project1.droolsjob_0_1.DroolsJob$1KnowledgeBase_tRules_2.readKnowledgeBase(DroolsJob.java:584)
at
project1.droolsjob_0_1.DroolsJob.tFileInputExcel_2Process(DroolsJob.java:648)
at project1.droolsjob_0_1.DroolsJob.runJobInTOS(DroolsJob.java:1247)
at project1.droolsjob_0_1.DroolsJob.main(DroolsJob.java:1121)
Unable to resolve ObjectType 'Sales' : [Rule name='SalesBR']
Unable to build expression for 'consequence': unknown class or illegal
statement: Sales 'Sales fact0 = new Sales();
fact0.setName( "Discount" );
fact0.setSales( -10 );
insert(fact0 );
' : [Rule name='SalesBR']
Error importing : 'salesmodel.Sales'
Exception in component tRules_2
java.lang.IllegalArgumentException: Could not parse knowledge.
at
project1.droolsjob_0_1.DroolsJob$1KnowledgeBase_tRules_2.readKnowledgeBaseDRL(DroolsJob.java:604)
at
project1.droolsjob_0_1.DroolsJob$1KnowledgeBase_tRules_2.readKnowledgeBase(DroolsJob.java:584)
at
project1.droolsjob_0_1.DroolsJob.tFileInputExcel_2Process(DroolsJob.java:648)
at project1.droolsjob_0_1.DroolsJob.runJobInTOS(DroolsJob.java:1247)
at project1.droolsjob_0_1.DroolsJob.main(DroolsJob.java:1121)
[statistics] disconnected
Job DroolsJob ended at 14:14 21/11/2011. [exit code=1]
*
I have attached the screen shots as follows:
http://drools.46999.n3.nabble.com/file/n3603531/sales.jpg
http://drools.46999.n3.nabble.com/file/n3603531/sales_error.jpg
Please help me out on this issue.
Thanks and Regards,
Lavanya.
--
View this message in context: http://drools.46999.n3.nabble.com/Regarding-implementation-of-bussiness-Rule-in-Talend-tp3603531p3603531.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
More information about the rules-users
mailing list