Hello there,
I wanted to refer to a variable in a
split constraint in a ForEach node. What is the correct way to nest a split
node in a ForEach node and refer to the variable of the collection?
I have tried the following:
a) Start process and insert process
into session, providing the map containing the collectionExpression. Using:
<import name="org.drools.runtime.process.WorkflowProcessInstance"/>
processIntance: WorkflowProcessInstance()
$item: MyObject: (this == (processInstance.getVariable("item")))
this doesn't seem to grab the variable
like I expected it to.
How can I assign processInstance.getVariable("item")
itself to a variable? (I imagine this would work if this did)
b) Set the variable on the global process
from the current context
kcontext.getProcessInstance().setVariable("item",
kcontext.getVariable("item")
I know this is not the right answer.
c) Insert the item in an action at the
beginning of the loop. Retract it at the end. I then match against the
item of type MyObject at the beginning.
// in action:
insert(item)
// in constraint
$item: MyObject()
// after action
retract(item)
This requires looping in Java to start
the processes individually and setting the variable explicitly each time.
This seems a bit of a roundabout way
of doing it, what is *the* correct method?
Thanks,
This message may contain confidential and privileged information and is intended solely for the use of the named addressee. Access, copying or re-use of the e-mail or any information contained therein by any other person is not authorised. If you are not the intended recipient please notify us immediately by returning the e-mail to the originator and then immediately delete this message. Although we attempt to sweep e-mail and attachments for viruses, we do not guarantee that either are virus-free and accept no liability for any damage sustained as a result of viruses.
Please refer to http://www.bnymellon.com/disclaimer/piml.html for certain disclosures.