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

Special nodes in the network


So far we have covered the basic types of nodes present in PHREAK that allow us to create simple rules in Drools. But there are some others nodes with very specific behaviors that are used for some conditional elements we haven't discussed so far. This section will analyze the most commonly used of these conditional elements: not, exists, accumulate, and from.

The Not Node

The not conditional element is the non-existential quantifier in Drools that checks for the absence of one or more patterns in the working memory.

Drools provides a specialized version of a Beta Node to implement the necessary logic of the not conditional element.

As an example, let's use the following rule:

rule "Sample Rule 1"
when
    $c: Customer()
    not (SuspiciousOperation(customer == $c))
then
    channels["clean-customer-channel"].send($c);
end

This rule is activated when there is a Customer in the session without any SuspiciousOperation. With this example, we can tell that the not element...