Adding external interactions with global variables
Interactions between our code and the business rules are mainly done by the rules that we define and the data that we feed in our running rule engine. In order to interact with data that is not in the Rule Engine context, Drools allows quite a variety of communication mechanisms to the other parts of our code and even to other systems. One of the most used tools for this are called global variables.
Global variables are defined in the DRL code in a similar way that we would define a variable in regular Java code. The syntax to follow is the global keyword, followed by the type of data, and then by the variable name:
global EShopConfigService configService;
Global variables can be a lot of things such as external services, lists of cached data, parameter values for our rule configurations, and anything that we might define in a Java code and we wish to have as a configurable component from our runtime.
In our DRL code examples (which we can...