Book Image

Mastering JBoss Drools 6

By : Mariano De Maio, Mauricio Salatino, Esteban Aliverti
Book Image

Mastering JBoss Drools 6

By: Mariano De Maio, Mauricio Salatino, Esteban Aliverti

Overview of this book

Mastering JBoss Drools 6 will provide you with the knowledge to develop applications involving complex scenarios. You will learn how to use KIE modules to create and execute Business Rules, and how the PHREAK algorithm internally works to drive the Rule Engine decisions. This book will also cover the relationship between Drools and jBPM, which allows you to enrich your applications by using Business Processes. You will be briefly introduced to the concept of complex event processing (Drools CEP) where you will learn how to aggregate and correlate your data based on temporal conditions. You will also learn how to define rules using domain-specific languages, such as spreadsheets, database entries, PMML, and more. Towards the end, this book will take you through the integration of Drools with the Spring and Camel frameworks for more complex applications.
Table of Contents (18 chapters)
Mastering JBoss Drools 6
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Preface
Index

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...