Re: [rules-users] process-designer deserialization error
by melc
I also get this error when creating a bpmn process in eclipse (galileo) and
trying to open/view it in guvnor, having it committed first.
I'm using jboss-5.1.0.GA and drools version 5.1 . The application server is
running on port 8080 (default configuration). I'm not using any rdbms only
what
comes bundled (h2 embedded db ) with drools. For oryx designer i'm using
designer.war Revision 35836: /labs/jbossrules/contrib/designer as downloaded
from url,
http://anonsvn.jboss.org/repos/labs/labs/jbossrules/contrib/designer/
as specified in,
http://blog.athico.com/2010/09/bpmn2-authoring-in-drools-guvnor.html
The only way I have managed to view and edit a bpmn model inside guvnor by
using
the oryx designer and also being able to open for view and editing in
eclipse
with commits and updates back and forth with guvnor and everything to work
fine
is by,
1. creating a model from scratch in oryx designer (
http://localhost:8080/designer/editor ), preferably just a start and end
point and maybe also a single task between them (start and end only works
fine).
2. download the model from the option of oryx designer "Download BPMN 2.0 DI
XML"
3. import in eclipse from filesystem
4. add/change stuff and add to guvnor
Afterwards everything works fine whether edited and committed from guvnor
and
viewed in eclipse or edited and committed from eclipse and viewed in guvnor.
By comparing the bpmn xml files created from oryx and from eclipse there
seem to
be differences that actually cause this error, since they stop occurring if
using the same syntax.
I'm still trying to find which different part actually casuses this, when i
find
it i will post it.
Sorry for the long text, any help will be greatly appreciated!!
Thank you.
p.s. just to make things more annoying I would like to mention that when
adding from eclipse
to a bpmn model that "works" a Rule Task element and then close the bpmn
model tab
in eclipse and reopen it a strange error appears, which occurs because of a
strange prefix 'g' character inserted in the xml of the bpmn. If it is
removed from the xml
everything works fine.... I suppose everything has to do with the different
xml
schemas, namespaces and tags used in the xml bpmn.. . .
p.s.2 another post already exists maybe they should be merged or delete one
of them. Sorry for posting in both but don't know which one works....
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/process-designer-dese...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 7 months
Re: [rules-users] ActivationCancellationEvent
by Michael Anstis
Please don't email me direct. I won't reply in the future. All questions and
answers are of value to the community as a whole.
AFAIK, Activation Cancelled events would trigger in reaction to the
revocation of a logically inserted fact that caused an activation to trigger
in the first place. It would not help identifying which pattern in a rule
was not matched causing your rule not to activate.
I don't believe there is a public API (or any) that could be used to trace
which RETE nodes matched for a given rule's definition and hence which did
not for you to identify unmatched patterns. Someone correct me if I am
wrong.
Of the top of my head, you could possibly achieve what you are looking for
by structuring your rules differently; having each pattern in a separate
rule and tracking accumulated rule activations yourself. Not nice, not
helpful if rules are authored by anybody other than a techy, but it might
just work....
rule "bootstrap"
salience 100
when
not exists Tracker(rule == "rule 1")
then
insert(new Tracker("rule 1"));
end
rule "rule 1 - subrule 1"
when
$t : Tracker(rule == "rule 1")
MySubPattern1( ... )
then
$t.addMatchSubRule("subrule 1");
update($t);
end
rule "rule 1 - subrule 2"
when
$t : Tracker(rule == "rule 1")
MySubPattern2( ... )
then
$t.addMatchedSubRule("subrule 2");
update($t);
end
If Tracker(rule == "rule 1") does not contain stages 1 and 2 then you can
determine which pattern did not match.
Untried, untested.
Cheers,
Mike
On 3 November 2010 09:31, <renganathan.p(a)tcs.com> wrote:
> Dear Manstis,
>
> Hope you are doing good.
>
> I saw your post regarding AgendaEventlisterner.
>
> I got your zip file, the code is working fine.
>
> But the activationcancellation method is not getting invoked. I need to
> identify which condition in the rule failed.
>
> Can you pls help me.
>
> Regards,
>
> Renganathan P
>
15 years, 7 months
Drools 5.1 Flow in a "Clustered" environment
by Ken Young
We are looking at embedding Drools 5.1 (specifically Drools Flow) in our application, but I am coming up short on determining how to configure clustering, or the support.
Specifically, I want to ensure that background processes that are taking place (reminders, timers, etc.) only happen once on a cluster. Does drools support this and how?
In other software that we have clustered (Quartz for example), where a shared database lock is used to ensure the the processing happens in one place. I was wondering if Drools 5.1 worked in a similar fashion.
Thanks
Ken
15 years, 7 months
importing functions in rules
by Samuli Saarinen
Hello,
Using mvel dialect in rules I'm getting rule compilation errors
depending on the way I import functions. I have the following rule:
rule "R1"
dialect "mvel"
when
then
test()
end
Using import function com.test.Functions.test compiles and runs fine.
but using import function com.test.Functions.* causes the compilation to
fail with the following message:
Unable to build expression for 'consequence': [Error: Failed to compile:
1 compilation error(s):
- (1,6) unable to resolve method using strict-mode:
java.lang.Object.test()]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0] ' test();
' : [Rule name='R1']
If I set the dialect to java it works in both ways. Is this expected
behavior?
Cheers,
Samuli
--
Remion Oy Etävalvontajärjestelmät liiketoiminnan
Samuli Saarinen tehostamiseen
gsm +358 (0)50 3560075
fax +358 (0)3 2125064 www.remion.com
15 years, 7 months
Question about Rete Tree example with NotNode in "Drools JBoss Rules 5.0 Developers Guide"
by Tina Vießmann
Hi,
I'm working through the explanations about Rete Trees in chapter 12 of
"Drools JBoss Rules 5.0 Developers Guide" on page 264-265. I have a
problem in understanding the input of the NotNode.
The rule says:
when
$address : Address ( addressLine == "Rossa Avenue" )
not (
$account : Account ( balance < 100 ) and
Customer ( accounts contains $account )
)
then
...
The related figure shows:
1. The Address object being processed and a tuple will be created by a
LeftInputAdapterNode.
2. The tuple of 1. will be joined with the Account fact with no
constraints (so that there's a tuple of size two?).
3. The tuple of 2. will be joined with the Customer fact with the
restriction 'accounts contains $account'. (That results in a tuple with
size 3!?)
4. The tuple of 3. will then be processed by a RightInputAdapterNode.
5. The tuple/fact from 3. will be processed using a NotNode together
with the Address-tuple from 1.
I don't understand while the tuple from 1. will in step 2 be joined with
the Account fact. I would have expected something like:
1. // same
2. The Account fact will be processed and a tuple will be created by a
LeftInputAdapterNode.
3. The Customer fact will be joined with the Account tuple with the
constraint 'accounts contains $address'. Resulting in a tuple.
4. // somehow the tuple from step 3 will be negated and joined with the
tuple from step 1.
Could anybody explain to me why it's done the way its drawn in the book?
Thank you! :)
Tina
15 years, 7 months
What's wrong with this rule
by 赵侃侃
Hello,
With the help from the community I managed to get my first rule working, and
I'm trying to write my second rule on my own but it just doesn't seem to
work correctly.
Here is the scenario, what I want is to identify a pattern that there's no
EventB coming in within 2 minutes with a particular index value.
For example, EventB would have a property named index and assume the value
of index would be either 0 or 1.
Before firing the rules, I would manually insert facts of possibleIndex with
value 0 and 1 into the workingMemory.
Within 2 minutes, if there only comes one EventB with index valued 0 then
the system should report no EventB coming in with index value 1 in last 2
minutes.
Vice versa, in the case of only coming one EventB with index valued 1 then
the system should report no EventB coming in with index value 0 in last 2
minutes.
If within 2 minutes, there comes 2 EventB with both value 0 and 1 then
nothing should report.
Here is what I wrote, but it doesn't seem to work correctly.
I used a timer to fire this rule every 10 seconds because I don't think the
rule would run automatically if I don't add that. (not too sure though)
rule "no B in 2 minutes"
timer (0 10s)
when
possibleIndex( $index : index ) from entry-point "Event stream"
$p : PatternConsumer ( name == 'no B' && index == $index )
not ( EventB( index == $index && this after[0ms,2m] $p) over window:time(2m)
from entry-point "Event stream" )
then
PatternConsumer pc = new PatternConsumer( "no B", $index );
insert(pc);
System.out.println("no B in 2 minutes " + $index);
end
Best Regards,
Kevin Zhao
15 years, 7 months
Internal error in Drools Plugin
by marc.schneiderman
Environment
-----------------
Windows 7 64bit
Java 1.6 JRE
Eclipse SDK 3.5.2
GEF 3.5.2
Drools 5.1 GA Eclipse Workbench
When importing a very simple drools project ( a personal implementation of
the classic fibonacci problem), which had worked fine without any build or
runtime errors when using drools 5.0, I received the following two build
errors in the Eclipse environment. I tried looking on the Nabble news group
but did not find any similar postings. Also Googled the errors but to no
avail. Any help would be very much appreciated. Thanks.
ERROR #1
-----------
Internal error in Drools plugin:
org.drools.RuntimeDroolsException: value '1.4' is not a valid language level
at
org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setJavaLanguageLevel(JavaDialectConfiguration.java:79)
at org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(Unknown
Source)
at org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(Unknown
Source)
at org.drools.eclipse.DroolsEclipsePlugin.parseResource(Unknown Source)
at
org.drools.eclipse.editors.DroolsLineBreakpointAdapter.canToggleLineBreakpoints(Unknown
Source)
at
org.eclipse.debug.ui.actions.ToggleBreakpointAction.update(ToggleBreakpointAction.java:187)
at
org.eclipse.ui.texteditor.AbstractRulerActionDelegate.update(AbstractRulerActionDelegate.java:132)
at
org.eclipse.ui.texteditor.AbstractRulerActionDelegate.setActiveEditor(AbstractRulerActionDelegate.java:89)
at
org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate.setActiveEditor(RulerToggleBreakpointActionDelegate.java:98)
at
org.eclipse.ui.internal.EditorPluginAction.editorChanged(EditorPluginAction.java:75)
at
org.eclipse.ui.internal.EditorActionBuilder$EditorContribution.editorChanged(EditorActionBuilder.java:83)
at
org.eclipse.ui.internal.EditorActionBuilder$ExternalContributor.setActiveEditor(EditorActionBuilder.java:129)
at
org.eclipse.ui.internal.EditorActionBars.partChanged(EditorActionBars.java:345)
at org.eclipse.ui.internal.WorkbenchPage$3.run(WorkbenchPage.java:632)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.runtime.Platform.run(Platform.java:888)
at
org.eclipse.ui.internal.WorkbenchPage.activatePart(WorkbenchPage.java:621)
at
org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3527)
at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:614)
at
org.eclipse.ui.internal.WorkbenchPage.showEditor(WorkbenchPage.java:2943)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2843)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2754)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2705)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2701)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2685)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2676)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:1105)
at
org.eclipse.ui.internal.views.markers.ExtendedMarkersView.openMarkerInEditor(ExtendedMarkersView.java:254)
at
org.eclipse.ui.internal.views.markers.ExtendedMarkersView.openSelectedMarkers(ExtendedMarkersView.java:1572)
at
org.eclipse.ui.internal.views.markers.ExtendedMarkersView$4.open(ExtendedMarkersView.java:568)
at
org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:842)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.runtime.Platform.run(Platform.java:888)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:840)
at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1101)
at
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1205)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:264)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:258)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:298)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
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:368)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
ERROR #2
----------
Unable to create view ID org.eclipse.ui.views.ContentOutline: value '1.4' is
not a valid language level:
org.drools.RuntimeDroolsException: value '1.4' is not a valid language level
at
org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setJavaLanguageLevel(JavaDialectConfiguration.java:79)
at org.drools.eclipse.DroolsEclipsePlugin.generateParsedResource(Unknown
Source)
at org.drools.eclipse.DroolsEclipsePlugin.parseResource(Unknown Source)
at
org.drools.eclipse.editors.outline.RuleContentOutlinePage.initRules(Unknown
Source)
at org.drools.eclipse.editors.outline.RuleContentOutlinePage.update(Unknown
Source)
at
org.drools.eclipse.editors.outline.RuleContentOutlinePage.createControl(Unknown
Source)
at
org.eclipse.ui.views.contentoutline.ContentOutline.doCreatePage(ContentOutline.java:137)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:409)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:752)
at org.eclipse.ui.part.PageBookView.showBootstrapPart(PageBookView.java:921)
at org.eclipse.ui.part.PageBookView.createPartControl(PageBookView.java:492)
at
org.eclipse.ui.views.contentoutline.ContentOutline.createPartControl(ContentOutline.java:121)
at
org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:367)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:226)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:529)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:668)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)
at
org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)
at
org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:272)
at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:982)
at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2626)
at org.eclipse.ui.internal.WorkbenchWindow$27.run(WorkbenchWindow.java:2965)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2946)
at
org.eclipse.ui.internal.WorkbenchWindow$21.runWithException(WorkbenchWindow.java:2263)
at
org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3885)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3506)
at
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
at
org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1384)
at
org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3885)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3506)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2316)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
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:368)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Internal-error-in-Dro...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 7 months
Equality vs Equality
by H.C.
We have the potential for duplicate data and so we have some rules we wrote
to de-dupe things. We are attempting the check if we have two different
objects in memory but they equal each other by equals(). We have overridden
equal() and hashCode() in all our classes.
I came a cross two variations of the same de-duping rule that yields
different results but to me seems logically equivalent. How do these two
rules apply equality differently?
v1:
<code>rule "Ensure no ConfigurationEntities are duplicates of others"
when
$config1 : ConfigurationEntity( )
$config2 : ConfigurationEntity( eval( $config1 != $config2 ) && this ==
$config1 )
then
errorList.add( new ConfigError( ConfigErrorCodes.DUPLICATE_CONFIGURATION,
$config1 ));
end</code>
v2:
<code>rule "Ensure no ConfigurationEntities are duplicates of others"
when
$config1 : ConfigurationEntity( )
$config2 : ConfigurationEntity( )
eval( $config1 != $config2 && $config2.equals($config1) )
then
errorList.add( new ConfigError( ConfigErrorCodes.DUPLICATE_CONFIGURATION,
$config1 ));
end</code>
Our understanding is that:
1. eval( $config1 != $config2 ) compares the memory reference
2. this == $config1 is the same thing as eval( $config2.equals($config1) )
Given our disparate results, our assumptions must be wrong somewhere. Would
very much appreciate some insight.
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Equality-vs-Equality-...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 7 months
check if a
by Tina Vießmann
Is it possible to write the following conditions without using eval?
$object : MyObject ( $valueList : valueList ) // of type List
$ value : Value ( // other restrictions
&& eval( !($valueList.contains($value)) ) )
Thank you :)
Tina
15 years, 7 months
Re: [rules-users] check if a
by Greg Barton
$value : Value( $value : value, // other restrictions )
$object : MyObject( $value not memberOf valueList )
GreG
On Nov 1, 2010, at 9:55, Tina Vießmann <tviessmann(a)stud.hs-bremen.de> wrote:
Is it possible to write the following conditions without using eval?
$object : MyObject ( $valueList : valueList ) // of type List
$ value : Value ( // other restrictions
&& eval( !($valueList.contains($value)) ) )
Thank you :)
Tina
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
15 years, 7 months