Skip to main content

Invocation

An Invocation maps internal values to the parameters of a Business Knowledge Model (BKM) or Decision Service.

Structure

It resembles a table where:

  • Header: The name of the function being called.
  • Rows: Mappings of Parameter Name -> Binding Expression.

Example

Calling a BKM named CalculateRisk:

CalculateRisk
AgeApplicant.Age
IncomeApplicant.Income

This is equivalent to the FEEL expression:

CalculateRisk(Age: Applicant.Age, Income: Applicant.Income)

FAQ

Can I invoke a BKM with literal values instead of variable references?

Yes — each parameter binding in an Invocation is a FEEL expression, so you can pass literals (Age: 30), expressions over input data (Age: Applicant.Age), function calls, list filters, anything FEEL supports. Mixing literals and variable references in the same Invocation is fine: CalculateRisk(Age: Applicant.Age, Threshold: 700, Region: "EU").

What happens if I omit a parameter binding in an Invocation?

The omitted parameter is treated as null inside the function body. Because FEEL propagates null through most operations, this often produces a null result rather than a loud error. If the function body has logic that requires the parameter to be present, you'll see a downstream failure or a wrong answer — there's no compile-time check that every parameter is bound. As a defensive pattern, BKMs that take optional parameters should use if param = null then default else param inside their bodies to make the contract explicit.

Can an Invocation call a function defined in another DMN file?

An Invocation calls a BKM by name within the same DMN model. To use logic from another model you have two options: import the other model (declaring it as a dependency in the DMN XML), which makes its BKMs and decision services available by qualified name, or invoke a Decision Service exposed by the other model from a BPMN business-rule task and treat the cross-model call as a model boundary. The second pattern is preferred when the called model has its own lifecycle, deployment cadence, or ownership.