Control / script · All operations

Apply business rules

A variant of Run a script

Evaluate a rule set from a rules engine against each row or the collected rows and act on the result.

Status

In arcform

Not built yet

arcform does not do this yet; it would live in how a Protocol runs. Its place on the roadmap

What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

Apache Hop (2)
Pentaho Data Integration (2)
  • Rule Accumulatorread 2026-09-27

    Evaluate a Drools rule against a collected set of rows

  • Rule Executorread 2026-09-27

    Evaluate a Drools rule against each row

Talend (2)
  • tBRMSread 2026-09-27

    Apply Drools business rules from a rules repository to the rows and write the result as XML

  • tRulesread 2026-09-27

    Apply Drools business rules from an .xls or .drl file to keep the relevant rows

Background

A business rules engine is a software system that executes one or more business rules in a runtime production environment.[1] A business rule system lets company policies and other operational decisions be defined, tested, executed and maintained separately from application code.[1] In Apache Hop, the Rules Executor runs each incoming row's fields against a rule set, while the Rules Accumulator first collects the rows.[2][3]

When to use it

In any application, business rules can change more frequently than other parts of the application code.[1] Separating business rules from application code allows business users to modify the rules without the need for IT intervention.[1] A system with external business rules still has the usual requirements of quality assurance and other testing.[1] Failing to separate workflow design from rule design can lead to problems with reusing and controlling both business rules and workflows.[1] Reach for a rules engine when the rules are many, change often and are owned by people outside the pipeline; a handful of stable conditions reads more plainly as a CASE expression. (Meridian's view)

Apache Hop's Rules Executor and Rules Accumulator use Drools as their rule engine.[2][3] In Apache Hop, the Rules Executor may be useful to determine additional information about rows or to route rows onto another transform.[2] In Apache Hop, the Rules Accumulator may be useful to determine the answer to a question or otherwise analyse a dataset.[3] Apache Hop's Rules Accumulator executes the rule set only once all incoming rows have been collected, for example when the previous transform shuts down.[3]

In Talend, tRules uses business rules defined in a Drools file of .xls or .drl format to filter data.[4] In Talend, tBRMS applies Drools business rules to an incoming flow and writes the output data to an XML file.[4]

The method

Most rules engines used by businesses are forward chaining.[1] One class of forward-chaining engine processes production rules, which represent behaviours of the type IF condition THEN action.[1] Some rules engines support backward chaining, in which the engine seeks to resolve the facts to fit a particular goal.[1]

The Rete algorithm is a pattern matching algorithm for implementing rule-based systems, developed to apply many rules or patterns to many objects, or facts, efficiently.[5] The Rete algorithm was designed by Charles L. Forgy of Carnegie Mellon University, first published in a working paper in 1974, and later elaborated in his 1979 Ph.D. thesis and a 1982 paper.[5] The Rete algorithm is designed to sacrifice memory for increased speed.[5] Drools is a business rule management system with a forward and backward chaining inference-based rules engine, using an enhanced implementation of the Rete algorithm.[6]

In Apache Hop's Rules Executor, each column of a row is converted to a Rules.Column object, injected into the rule engine and executed against the rule set.[2] Apache Hop's Rules Executor generates results from Rules.Column objects that the rules create, which the transform picks up by name.[2]

Compared with the alternatives

Business rules encoded in computer code in an operational program are known as business logic.[7] A rule written as a CASE expression in a pipeline is business logic in that sense; a rules engine keeps the same rule outside the pipeline, where it can change without the pipeline changing. (Meridian's view)