Make your business processes more intelligent and configurable with decision automation


Note: To get the most value from this example, it is useful to understand the basic IDIOM concept of a ‘formula’. We suggest you read the following before watching the demo.

  • What is a formula?
  • Building formulas using IDIOM

What is a formula?

An IDIOM formula is the specification of the logic that produces a decision value. Formulas are made up of operations. Constructing a formula is a process of selecting the appropriate operators and clipping them together like Lego. As with the formula itself, each operator always returns a single value to its parent. It will produce this value by resolving its own descendent operators. The Figure below illustrates these concepts.


This formula requests an operation to calculate the number of days an insurance policy is ‘in force’. That operation in turn requests two ‘primitive operations’ that read values directly from the XML DOM – these values are the New Term Inception and the Policy Expiry.


The TermDays operation returns the calculated value to the Decision that invoked it.

Figure 1: A formula in IDIOM


A formula can be thought of as an operation, which may itself be comprised of many child operations, thus creating a 'tree' of operations. The root of the tree is the single operator that returns the formula result to the decision 'container'. The formula tree terminates at the 'leaves'. The arguments that comprise these leaves are primitive operators that obtain their values directly from the IDIOM runtime environment:

  • Node operators that obtain their values directly from the XML document DOM, including values derived from collections.
  • Various system values (eg current date, current year).
  • Other formulas or 'user defined operations'.
  • Table operators that retrieve cell values from internal or external tables.
  • Literals (a value supplied by the user directly into the formula).

Building formulas using IDIOM

In IDIOM, the formula construction process, from the leaves through to the root, is supported by wizard controlled assembly of operators, including logic, string, arithmetic, date and other operators. These operators are simply dragged onto the formula palette and plugged together using IDIOM's unique and productive graphical programming approach. As the CEO of one our customers has said, "more fun than playing golf!"


The schemas that are used to describe the business data to IDIOM are used to identify the data - XML nodes and their derivatives - that are used as operator arguments. These can also be ‘dragged and dropped’ onto the formula palette.

The presentation of a formula within the palette starts with the ‘root’ operation to the left of the palette. The result of this operation is also the output from the formula itself, and is passed back to the decision container. The initial presentation of an operator presents a set of unresolved arguments - this is similar to the approach taken by Excel (wherein ‘unresolved’ means that the argument does not have a value, nor does it yet have a definition of how that value can be derived).

While this implies a ‘top down’ approach to formula definition, the formula palette actually allows you to start the definition of the formula at any point - build it bottom-up, top-down, or start at multiple points and plug the evolving parts together. This allows you to approach the problem in your own style, and to build rules quickly and accurately into automated decisions. And there is no need to document your formula in narrative form - IDIOM will generate a business readable PDF of the formula for you (remember to use the 'alias' feature in the schema palette for more readable logical English). And IDIOM generates Java and/or C# source code, error free and ready to implement, also ‘without fingerprints’.