A number of features and components have been deprecated in BAMOE and will be removed in a future release. See table below for the feature and version it was deprecated or removed in:

Deprecated Feature

Replacement

Version

Support for Java 17

Java 21

9.5.0

DMN Editor (classic)

DMN Editor Learn more…​

9.3.0

BPMN Editor (classic)

BPMN Editor Learn more…​

9.3.0

Test Scenario Editor (classic) Learn more…​

Test Scenario Editor Learn more…​

9.3.0

Jobs Service addons:

  • org.kie:kogito-addons-quarkus-jobs

  • org.kie.kogito:jobs-service-storage-jpa

  • org.kie:kogito-addons-quarkus-jobs-management

Embedded Jobs service addons Learn more…​

9.3.0

DMN Editor (classic)

This section covers the DMN Editor (classic).

Editor page for a Decision on BAMOE Canvas with highlighted elements of the DMN Editor
Figure 1. Editor page for a Decision on BAMOE Canvas with highlighted elements of the DMN Editor
  1. DMN Editor tabs → Here you can switch between the four screens that compose the DMN Editor.

    1. Editor → Will display your DRG and DRDs you select. This is where you edit your DMN model and create relationships between its nodes.

    2. Documentation → Will display a downloadable PDF containing the specification of your Decision.

    3. Data Types → Lets you manage the Data Types that are part of your Decision.

    4. Included Models → Lets you manage other Decisions you linked to your current Decision. Including a Decision lets you reuse nodes and Data Types from it.

  2. Search button → Lets you search specific elements of your Decision.

  3. Side panel strip → Lets you select which side panel you want to toggle. From top to bottom, those are the available panels:

    1. Navigator → Displays all the elements of your Decision organized by DRG and DRDs, and types.

    2. Properties → Lets you manage the properties of a Decision element.

    3. Preview → Displays a minimap of your DRG.

  4. Node palette → From here you can select nodes and drag them into your DRG or DRDs.

  5. Keyboard shortcuts panel toggle → Clicking here toggles a panel with information of keyboard shortcuts available on the DMN Editor.

The DMN Editor lets you develop Decisions and Business Knowledge Models (BKMs) using the DMN Boxed Expression Editor. Drag a new Decision or BKM node to the DRG and open it with the DMN Boxed Expression Editor.

tools/image6 tools/image2

Decision and Business Knowledge Model on the DMN Editor, side by side, showing their Edit button, that brings you to their implementations inside the Boxed Expression Editor, on BAMOE Canvas.

Selecting Edit on a new Decision will bring you to an empty Boxed Expression. On a new BKM you will have an empty Boxed Function. The implementation of this Boxed Function can be of any type.

legacy editor bkm boxed expression editor
Figure 2. Boxed Expression Editor for a new BKM inside the DMN Editor on BAMOE Canvas
legacy editor decision boxed expression editor
Figure 3. Boxed Expression Editor for a new Decision inside the DMN Editor on BAMOE Canvas

Selecting a Boxed Expression type will update the implementation of the Decision or BKM.

Here is an example Decision Table.

legacy editor decision table
Figure 4. Boxed Expression implementation example for a Loan Pre-Qualification Decision inside the DMN Editor, on BAMOE Canvas

And a BKM with a Literal implementation.

legacy editor boxed function
Figure 5. Boxed Expression implementation example for a PITI BKM inside the DMN Editor, on BAMOE Canvas

The Boxed Expression Editor is very capable, and can handle complex implementations. It is built based on the same Table component BAMOE Canvas uses on DMN Runner.

Developing Decisions through DMN files is a complex subject and has many intricacies that are out of the scope of this document. See DMN-specific material, like the Decision Model and Notation (DMN) specification itself.

BPMN Editor (classic)

Following are the elements present in BPMN Editor (classic):

image5
Figure 6. Editor page for a Workflow with highlighted elements of the BPMN Editor (classic)
  1. Node palette → From here you can select node types and their variations.

  2. Side panel strip → Lets you select which side panel you want to toggle. From top to bottom, those are the available panels:

    1. Properties → Lets you manage the properties of a Workflow element.

    2. Navigator → Displays a minimap with the diagram of your Workflow and a list of all elements present on it.

  3. Keyboard shortcuts panel toggle → Clicking here toggles a panel with information about keyboard shortcuts available in the BPMN Editor (classic).

Developing Workflows through BPMN files is a complex subject and has many intricacies that are beyond the scope of this document. For more information, see BPMN-specific material, Business Process Model And Notation (BPMN) specification.

Invoking a Decision from a Workflow

A common use case for a Workflow is to invoke Decisions as part of its logic. On your Workflow, create a new “Business Rule Task" node.

image9
Figure 7. Node palette open for Task nodes inside the BPMN Editor (classic)

Open the “Properties” panel using the first icon at the “Side panel strip” and look for Implementation/Execution. There, you can change the "Rule language" to "DMN". Select the file you want and the Decision inside it. Here is an example:

image23
Figure 8. Implementation/Execution section of the Properties panel for a Business Rule Task inside a Workflow

When your Workflow executes, this Decision will be invoked with the inputs being passed to the Business Rule task. The result of the Decision will be the output of the Business Rule task.

Creating Process Variables

  1. Click anywhere in the diagram area and then click on the properties tab to access the properties panel.

    BPMN Editor (classic) Global Properties
    Figure 9. BPMN Editor (classic) properties
  2. Set the following properties:

    • Name: Provide a label for the process.

    • ID: Specify an identifier that will be used for endpoints.

    • Description: Write a detailed description of the process.

  3. To add input variables:

    • Click the plus button to add a new variable.

    • Set the variable name and data type.

      • Name is the ID and name of the variable which can be referenced via scripts or the input/output of activities.

      • Data type refers to a Java type. If you click Select Custom, the field turns into the fully qualified name of the class.

Process properties
Figure 10. Process properties

Define Workflow Elements

Use the following elements to define your workflow:

  • Start Event: Green circle indicating the starting point of the workflow.

  • Intermediate Events: Yellow circle for events that occur between the start and end points.

  • End Events: Red circle marking the end of the workflow.

  • Activities: Empty rectangle representing tasks or activities in the workflow.

  • Subprocess: Rectangle with a square for subprocesses.

  • Gateways: Diamond shape for decision points.

  • Lanes: Checklist icon to organize tasks by roles or departments.

  • Non-executable Items: 3D cube for items not executed within the workflow.

  • Miscellaneous: Engine icon for other workflow components.

For the conformance level of BPMN elements, see Reference → Business Process Model and Notation (BPMN)

Adjust Properties and Add Process Variables

  1. Create a start node with a script to initialize variables:

    System.out.println("New Hiring has been created for candidate: " + candidateData.getFullName());
    kcontext.setVariable("hr_approval", false);
    kcontext.setVariable("it_approval", false);
  2. Add an exclusive gateway for decision-making.

  3. Create a business rule task with specific properties and data assignments:

    System.out.println("###################################");
    System.out.println("Generated offer for candidate: " + candidateData.getFullName());
    System.out.println("Job Category: " + offer.getCategory());
    System.out.println("Base salary: " + offer.getSalary());
    System.out.println("###################################");
  4. Create and configure User Tasks and boundary events:

    System.out.println("###################################");
    System.out.println("HR Interview have been avoided after reasonable time");
    System.out.println("###################################");
  5. Add scripts for various tasks and events to log important details and actions:

    System.out.println("###################################");
    System.out.println("To: " + candidateData.getEmail());
    System.out.println("Subject: Congratulations you made it!");
    System.out.println("Dear " + candidateData.getFullName() + ", we are happy to tell you that you've successfully went through the hiring process. You'll find the final Offer details in attached.");
    System.out.println("Job Category: " + offer.getCategory());
    System.out.println("Base salary: " + offer.getSalary());
    System.out.println("###################################");
    
    System.out.println("###################################");
    System.out.println("Candidate " + candidateData.getFullName() + " doesn't meet the requirements for the position but we'll keep it on records for the future!");
    System.out.println("###################################");