Guvnor - Loading enums programatically using rule metadata
by GPatel@tsys.com
The Guvnor manual specifies how to load enum data programtically but it
seems like only other fields on the same Fact can be used to filter the
values that can show up in the drop-down fields, as shown below:
'Fact.field[dependentField1, dependentField2]' : '(new
com.yourco.DataHelper()).getListOfAges("@{dependentField1}",
"@{dependentField2}")'
Is it possible to somehow use other rule attributes, like package name or
rule metadata to filter the list? Something like the following:
'Fact.field[dependentField1]' : '(new
com.yourco.DataHelper()).getListOfAges("@{dependentField1}",
drools.getRule().getMetaData().get("ID"))'
Thanks
G. Patel
-----------------------------------------
The information contained in this communication (including any
attachments hereto) is confidential and is intended solely for the
personal and confidential use of the individual or entity to whom
it is addressed. If the reader of this message is not the intended
recipient or an agent responsible for delivering it to the intended
recipient, you are hereby notified that you have received this
communication in error and that any review, dissemination, copying,
or unauthorized use of this information, or the taking of any
action in reliance on the contents of this information is strictly
prohibited. If you have received this communication in error,
please notify us immediately by e-mail, and delete the original
message. Thank you
12 years, 8 months
guvnor rule editor
by mtg.wai.liauw
Hi,
I am trying to use the Guvnor rule editor to build rules. I created a fact
model with a String field. But I can't figure out how to build a rule that
this String field "not matches" a regex. I know DRL supports "not matches",
but how to do it on the rule editor?
Thanks in advance.
--
View this message in context: http://drools.46999.n3.nabble.com/guvnor-rule-editor-tp4025672.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
12 years, 8 months
Timer in decision table from a different column?
by dunnlow
I have a Drools 5.5 guided decision table (via guvnor).
I am trying to populate both the timer value AND a value on the RHS with a
value from a single column. For example, I'm trying to produce code that
looks like:
I want to have source like:
rule "rule1"
timer(*1d*)
when
$car : Car (name matches "ford")
then
WorkIssue $wi = new WorkIssue();
$wi.setTimeout (*1d* );
end
Note that the timer and the setTimeout setter are using the same value.
Anyone have any insight on how/if this can be accomplished via decision
tables (I had it working in my templates)?
Thanks,
-J
--
View this message in context: http://drools.46999.n3.nabble.com/Timer-in-decision-table-from-a-differen...
Sent from the Drools: User forum mailing list archive at Nabble.com.
12 years, 8 months
Problem initializing Drools from EMF model editor plugin
by rmpillat
Hi,
I’m using the EMF model editor of the project MDT/BPMN2 to edit BPMN models
and I’d like to use Drools to validate my models. However, when the code
line:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
is called into the editor application, I get the following error:
!ENTRY org.eclipse.ui 4 0 2013-08-22 15:56:32.784
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError:
org/drools/builder/KnowledgeBuilderFactory
at
org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
at
org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:229)
at
org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:210)
at
org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:131)
at
org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:171)
at
org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:851)
at
org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:744)
at
org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:728)
at
org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:667)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1022)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:916)
at
org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:585)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
I’ve already added standard Drools runtime libs to build path, but the error
goes on.
Can someone help me?
Thanks,
Raquel
--
View this message in context: http://drools.46999.n3.nabble.com/Problem-initializing-Drools-from-EMF-mo...
Sent from the Drools: User forum mailing list archive at Nabble.com.
12 years, 8 months
decision tables conditional matching
by Atul Bhatia
We are using drools decision tables and have a quite a few scenarios where
there are three conditions: A, B, and C.
The behavior we want is:
if A is true, then B and C must be true (if B and C are true, we want to
output true, otherwise we want to output false)
if A is not true, then B and C don't matter, the output should be true.
Currently the way we are doing it is the following:
0 (priority), A is true (CONDITION), B is true (CONDITION), C is true
(CONDITION), set eligibility to TRUE (ACTION)
0 (priority), NOT A (CONDITION), set eligibility to TRUE (ACTION)
-1 (priority), A is true (CONDITION), set eligibility to FALSE (ACTION)
We are using decision tables and we are dealing with more complex
conditions than this simple example. For example, there are scenarios like
if A and B are true then C and D must be true, in which we'd have to check
if NOT (A and B) which can get messy.
Any suggestions around best practices?
12 years, 8 months