Executing Decisions

Traceable Automated Decision Making

Executing Decisions

  • Many products have Decision Services: invoke the function with the inputs and get the output

  • From a process: use Business Rule Task and refer to decision model

  • Consider testing using parameterised tests

Results from a Decision Service: Requirements

background

Results from a Decision Service: Decision

background

From a Business Process

  • Don’t model decisions with gateways

  • Often followed by a gateway to act on the result or a task that uses the data produced

  • Versioning is an important concern here: consider the lifecycles of processes and decisions

  • Even more complex? Consider using decision flow that coordinates multiple DMN models, service tasks and/or script tasks from a call activity in the process

bpmn level 2 business rule task

With a Process Engine

  • Make sure to make decision input expressions independent of execution environment

    • Resolve expressions to values before inputting

    • Don’t refer to beans or other technical concepts from the decision table

    • Create pure functions

  • Use your engine’s components well

    • Routing logic: in a process model that sometimes acts on decision output.

    • Decision automation with DMN models

    • Service invocation

    • Human task management

    • Scheduling

    • Advanced workflow patterns

    • …​

Simulation and Prototyping