Handoff Register
Business rule logic

Write the rule a decision step follows, check it, test it, and hand it over as BPMN and DMN.

A process map that says "the clerk decides" is where automation stalls and audits ask questions. In Handoff Register a decision step can carry a rule table: the inputs it looks at, a condition on each, and where each rule sends the case. The table is checked for overlaps, gaps and a missing default, can be tested with sample values, and goes into the exports as an exclusive gateway with a condition on every flow and as a DMN 1.3 decision table.

Five steps, one rule table, drawn

Drawn by the register from the BPMNDI coordinates in its own file: the decision step as a business rule task, the gateway after it, the conditions on the flows, the default flow marked, and a named route as its own task.

Five steps with a rule table, As-is, as writtenkeep: user taskhand over: service taskunclear: taskre-keyed dataFive steps with a rule tableCustomer serviceCreditcontrollerFinance managerWarehouseOver credit limit: yes [overCreditLimit = true]Over credit limit: yesOver credit limit: no and Order value > 10,000 [overCreditLimit = false and orderValue > 10000]Over credit limit: no and…otherwiseotherwiseStartStartEnters the order in the ERPre-keyed1Enters the order inthe ERPChecks the order against the customer credit limit2Checks the orderagainst the customercredit limitRelease or hold?Release or hold?Credit controller second checkroute, step 2Credit controllersecond checkApproves the order on hold3Approves the order onholdPicks and ships the order4Picks and ships theorderSends the invoice5Sends the invoiceEndEndFive steps with a rule table. As-is, as written. Exported 2026-10-08. Handoff Register BPMN 1.0

The specimen's two worked tables

The 32-step specimen, warehouse receiving to dispatch, carries a first-match table on the credit check and a unique table on the freight choice. On the specimen run both can be edited and tested.

Step 12 Check the customer is within their credit limit before releasing the order.

Release the order or hold it for credit. Hit policy: first match. Default route: Route: Finance manager review.

#Over credit limit
overCreditLimit yes / no
Customer type
customerType text
Order value
orderValue number
Route
1Over credit limit: yesanyanyStep 13: If the order is on credit hold, finance releases it or calls
2Over credit limit: noCustomer type = newOrder value > 10,000Route: Finance manager review
3Over credit limit: noanyanyStep 14: Applies the customer's contract pricing to the order lines
In plain words
  1. The rules are read in order; the first that matches decides.
  2. Rule 1: If Over credit limit: yes, go to Step 13: If the order is on credit hold, finance releases it or calls.
  3. Rule 2: If Over credit limit: no and Customer type = new and Order value > 10,000, go to Route: Finance manager review.
  4. Rule 3: If Over credit limit: no, go to Step 14: Applies the customer's contract pricing to the order lines.
  5. Otherwise, go to Route: Finance manager review.
The conditions on the gateway's flows (FEEL)
  • Step 13: If the order is on credit hold, finance releases it or calls: overCreditLimit = true
  • Route: Finance manager review: overCreditLimit = false and customerType = "new" and orderValue > 10000 (also the default)
  • Step 14: Applies the customer's contract pricing to the order lines: overCreditLimit = false and not(overCreditLimit = false and customerType = "new" and orderValue > 10000)
  • Clean Checked 5 kinds of case: every case reaches exactly one route (first match), no rule is dead, and the default catches anything new.
  • Note Rules 2 and 3 overlap when Over credit limit: no, Customer type = new, Order value above 10,000; with first match, rule 2 wins.
Step 26 Decide whether the order goes express or standard from the promised date.

Express or standard freight. Hit policy: unique. Default route: Next step (step 27).

#Days to promised date
daysToPromisedDate number
Order weight kg
orderWeightKg number
Route
1Days to promised date < 2anyNext step (step 27)
2Days to promised date ≥ 2Order weight kg ≤ 30Step 28: Sort out the Friday stuff for the big account.
3Days to promised date ≥ 2Order weight kg > 30Route: Pallet freight booking
In plain words
  1. Exactly one rule may match any case.
  2. Rule 1: If Days to promised date < 2, go to Next step (step 27).
  3. Rule 2: If Days to promised date ≥ 2 and Order weight kg ≤ 30, go to Step 28: Sort out the Friday stuff for the big account..
  4. Rule 3: If Days to promised date ≥ 2 and Order weight kg > 30, go to Route: Pallet freight booking.
  5. Otherwise, go to Next step (step 27).
The conditions on the gateway's flows (FEEL)
  • Next step (step 27): daysToPromisedDate < 2 (also the default)
  • Step 28: Sort out the Friday stuff for the big account.: daysToPromisedDate >= 2 and orderWeightKg <= 30
  • Route: Pallet freight booking: daysToPromisedDate >= 2 and orderWeightKg > 30
  • Clean Checked 7 kinds of case: every case reaches exactly one route, no rule is dead, and the default catches anything new.

What goes where

In the rule tableIn the BPMN 2.0 fileIn the DMN 1.3 file
The decision stepbpmn:businessRuleTask with implementation set to DMN, camunda:decisionRef and an hr:decision extension carrying the tabledecision with usingTask and usingProcess pointing back at the .bpmn file
Inputs (number, text, yes / no)FEEL variable names in the conditionsinput clauses with inputExpression and typeRef; inputData with information requirements
Each ruleIts condition, in FEEL, on the flow to its routeA rule row: one unary test per input, the route as the output entry, your note as the description
Hit policyUnder first match each flow excludes the earlier rules it overlaps, so the gateway takes the same route the table doeshitPolicy="FIRST" or "UNIQUE"
Default routeThe gateway's default flow, which carries no conditiondefaultOutputEntry on the output
A named route or laneA task named after the route in the matching lane, then on to the next stepAn output value
Source, owner, effective dateIn the business rule task's documentationIn the decision's description

How it is checked

Free and paid

Pricing.

What it does not do

It does not execute the rules or run the process: the files are a model your workflow or rules engine imports. It does not take free FEEL expressions, calculations or dates as conditions, decisions that feed other decisions, or hit policies other than first match and unique.

Questions

What is a rule table in Handoff Register?

A decision table attached to one step of the process: the inputs the decision looks at (a number, a text value or yes / no), a condition on each input for every rule (equal, not, less than, at most, more than, at least, between, one of, or any), the route each rule sends the case to, a hit policy and a default route.

Which hit policies are there?

First match, where the rules are read in order and the first that matches decides, and unique, where exactly one rule may match any case. These are the DMN hit policies FIRST and UNIQUE.

What does the check find?

Field errors (a value that is not a number, a range with its ends reversed, a rule with no route, a route to the step itself), overlapping rules in a unique table, a rule that can never fire under first match, cases no rule covers, and a missing default route, each with an example case in plain words. The check splits the inputs on every value the rules name, so it looks at every kind of case, not a sample.

Where can a rule send the case?

To the next step, to any later or earlier step of the process, to the end, to a lane, or to a route you name. A named route appears in the BPMN diagram as its own task.

What goes into the BPMN file?

The decision step becomes a business rule task linked to its DMN decision, followed by an exclusive gateway. Every outgoing flow carries a FEEL conditionExpression that means exactly what the table means, under first match too, and the default route is the gateway's default flow. The diagram shows the conditions on the flows.

What is in the .dmn file?

A DMN 1.3 definitions file with one decision table per rule table: input clauses with FEEL names and types, the output route with its allowed values and default, one rule per row with FEEL unary tests, input data and information requirements, a diagram (DMNDI), and usingTask links back to the business rule task in the .bpmn file.

Can I import rules from an existing .bpmn file?

Yes, on Solo and Team. Conditions on a deciding gateway's flows (JUEL such as ${amount > 10000}, FEEL, or the usual &&, ||, ==) become a rule table on the step before the gateway, with the default flow as the default route. A condition that cannot be read, such as a method call, is counted and left out, never guessed.