The most important difference is probably the scope. Variables are scoped to one process instance (so each variable of a process instance can have it's own value, unique to that process instance), where a global is scoped to the session (so shared across all process instances in that session).
Kris Esteban Aliverti wrote: > These are some of the differences between variables and globals: > > * You can make inference about your globals using rules > * Variables are persisted as part of the process instance info. > Globals are not. > * I didn't test it in every node type, but at least in Script > Tasks, you can access process variables using just its name. > > Best Regards, > > XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > > Esteban Aliverti > - Developer @ http://www.plugtree.com <http://www.plugtree.com> > - Blog @ http://ilesteban.wordpress.com > > > On Wed, Apr 13, 2011 at 8:39 AM, gs76pl <[email protected] > <mailto:[email protected]>> wrote: > > hi, > > this seems like a basic question i should know the answer to after > reading > some documentation but unfortunately after doing some tests with > onExitActions there seems to be some discrepancy between what doc > reads and > how the process/action behaves. Could anyone verify my observations: > > 1. while documentation in "4.4. Data" reads "...Actions can access > variables > directly, simply by using the name of the variable as a parameter > name" in > fact this is INCORRECT as at that point actions expect a global > object to be > in the session!! e.g. below code in onExitAction throws an > exception if > tracker obj hasn't been defined as a global variable and entered > into the > session (it doesn't matter that the process has tracker variable > defined) > > tracker.addVisitedNode("dasdf"); > > 2. the only way of accessing process variables is via context > object as > below > > context.getVariable("tracker") > > 3. inserting/updating object in the session can be done > a) context.getKnowledgeRuntime().insert("myFact"); > b) insert("myFact"); > > looks like there is no difference here and the second one is simple a > shorter version of doing the same > > > > -- > View this message in context: > > http://drools.46999.n3.nabble.com/what-is-the-difference-between-process-variable-global-variables-tp2815658p2815658.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > [email protected] <mailto:[email protected]> > https://lists.jboss.org/mailman/listinfo/rules-users > > > ------------------------------------------------------------------------ > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
