One Star

Implement business rules in Talend

Good day!
Someone tell me if there are any component that can put business rules or decision Tables.
I'm looking for the best way to implement business rules, in order that they may be adjustable.
I hope I can help.
Greetings!
10 REPLIES
Employee

Re: Implement business rules in Talend

Hi caapi,
You can find two components available in Talend Integration Suite Professional Edition and higher versions. Both of these are: tRules & tBRMS. These components use Drools rule engine.
Best,
Pcoffre.
One Star

Re: Implement business rules in Talend

Thank you very much pcoffre
¿TOS has no components of this type?
Employee

Re: Implement business rules in Talend

TOS does not provide this functionnality.
But in TOP, there is a indicator named "DQ Rules", which do not use Drools technology, but can also satisfy some business needs.
(have a look at http://www.youtube.com/watch?v=e3PD32TD0dA)
One Star

Re: Implement business rules in Talend

Can you point me to a good document about tRules? Following the component guide scenario in the studio's help section, I have the following exception when running the job applying RuleAGE and RuleREGION.
"Unable to resolve ObjectType 'row1Struct' : "
Thanks!
Moderator

Re: Implement business rules in Talend

Hi eric,
What talend product version do you use? Perhaps our article need to be updated with the product upgrade. We will make a testing for it. You can go to the component reference tRules, and give us your precious suggestion on this page directly.
Best regards
Sabrina
--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: Implement business rules in Talend

5.2.2 is the right version. Do you have the .xls file and the job? Do we need to import any jar?
Employee

Re: Implement business rules in Talend

Hello Eric,
I could reproduce the error you got using the tRules Job in 5.4.
To be able to run the Job without any exception:
-make sure to name the output schema of the tRules component using the exact names of the rules in the Excel Drools file.
-make sure to use the exact project and job names in your studio when you fill in the Import field in the Excel Drools file. You should use the following format in the Import field: <projectname>.<lowercase jobname>_0_1.<jobname>.*. For example, dq_project.business_rule_0_1.Business_Rule.* means that the name of the project in the studio is dq_project and the name of the Job is Business_Rule.

If you still need the Job, the .xsl file and the input file, please contact me at "hmassytalendcom" that I can send you the job and the files.
Hiyam MASSY
Documentation team
One Star

Re: Implement business rules in Talend

5.2.2 is the right version.  Do you have the .xls file and the job?  Do we need to import any jar?

Hi, I am also interested in testing the job described in the documentation:
https://help.talend.com/search/all?query=tRules&content-lang=en
Could you provide me with the job and the 2 excel files please?
Thanks
Employee

Re: Implement business rules in Talend

Hello Maxime,
We communicated yesterday about your needs and I sent you the files by email.
I'm attaching the job + the .xls files to this message as well in case other people are interested in testing tRules. The topic can be closed this way.
Hiyam MASSY,
Documentation team
tRule.zip_20150130-0955.zip
One Star

Re: Implement business rules in Talend

Hi hmassy,
I'm trying to use your example but when i run the job i have the following error :
Exception in thread "main" java.lang.NoClassDefFoundError: TestEsbSOAP/rules_0_1/Rules$row1Struct (wrong name: testesbsoap/rules_0_1/Rules$row1Struct)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:262)
at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:241)
at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:88)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.drools.base.ClassTypeResolver.importClass(ClassTypeResolver.java:274)
at org.drools.base.ClassTypeResolver.resolveType(ClassTypeResolver.java:173)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:162)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:122)
at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:81)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1813)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:745)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:338)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:567)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:34)
at testesbsoap.rules_0_1.Rules$1KnowledgeBase_tRules_1.readKnowledgeBaseXLS(Rules.java:1028)
at testesbsoap.rules_0_1.Rules$1KnowledgeBase_tRules_1.readKnowledgeBase(Rules.java:978)
at testesbsoap.rules_0_1.Rules.tFileInputDelimited_1Process(Rules.java:1059)
at testesbsoap.rules_0_1.Rules.runJobInTOS(Rules.java:1758)
at testesbsoap.rules_0_1.Rules.main(Rules.java:1615)

Can you help me ?
Best regards.
Takago.