[rules-users] Dynamically selecting a subflow at runtime

james_d jamesdull at gmail.com
Sat Nov 3 23:18:29 EDT 2007


Excellent information, thank you



Kris Verlaenen wrote:
> 
> Currently, the reference to the subflow indeed needs to be explicitly 
> specified in the ruleflow.  Once we have ruleflow variable support, it
> will 
> be possible to use a variable that contains the name of the process to 
> start.  But that is currently not yet supported.
> 
> However, as you have noticed correctly, you can just use 
> drools.getWorkingMemory().startProcess() inside your rules to start a 
> subflow.  However, this call will return once the process has been started 
> (and possibly already finished but this is usually not the case).  If you 
> want to wait until the subflow process has been terminated, you should 
> probably register a RuleFlowListener that updates the working memory with 
> some kind of event if a subflow has been completed, and use a milestone
> node 
> to wait for that event before continuing with the cleanup.  Basically,
> this 
> is almost the same as how it is implemented internally.
> 
> Kris
> 
> ----- Original Message ----- 
> From: "james_d" <jamesdull at gmail.com>
> To: <rules-users at lists.jboss.org>
> Sent: Friday, November 02, 2007 9:45 PM
> Subject: [rules-users] Dynamically selecting a subflow at runtime
> 
> 
>>
>> Hi,
>>
>> When creating a ruleflow, is there a mechanism that allows me to select
>> which subflow is executed at runtime?  I don't want to have to hardcode a
>> specific subflow in the Ruleflow GUI/editor.
>>
>> Here's a contrived example of what I'm attempting to do:
>>
>> If the following subflows exist: bake cookies, "bake pizza", "grill 
>> steaks",
>> "fry fish", etc.,  I'd like to have a ruleflow with the following
>> rulegroups: |Start| -> Get Order -> Make food -> Cleanup -> |Repeat|. 
>> For 
>> a
>> requested order, the corresponding subflow is invoked at the "Make food"
>> stage then the process repeats.
>>
>> I saw that calling drools.getWorkingMemory().startProcess(...) might be
>> an
>> option, however I'm not sure that this will return control to the
>> original
>> ruleflow when done (causing the "Cleanup" group to not get executed).  If 
>> I
>> try to use the subflow widget in the Ruleflow GUI I have to explicitly 
>> name
>> the subflow I want invoked.
>>
>> thank you
>>
>>
>> -- 
>> View this message in context: 
>> http://www.nabble.com/Dynamically-selecting-a-subflow-at-runtime-tf4728437.html#a13520181
>> Sent from the drools - user mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users 
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Dynamically-selecting-a-subflow-at-runtime-tf4728437.html#a13569670
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list