Red Hat Training

A Red Hat training course is available for Red Hat Process Automation Manager

Chapter 2. New features

This section highlights new features in Red Hat Process Automation Manager 7.2.

2.1. Container support

You can install Red Hat Process Automation Manager on Red Hat JBoss Web Server 5.0.1 or later.

You can install Red Hat Process Automation Manager on Red Hat JBoss EAP 7.2.

Note

Red Hat JBoss EAP 7.1 is not supported with Red Hat Process Automation Manager 7.2.

2.2. Business application generator

You can use the http://start.jbpm.org website to generate a Red Hat Process Automation Manager business application based on Spring Boot starters. After you create and configure your business application, you can deploy it to an existing service or to the cloud, through OpenShift.

2.3. Business Central

2.3.1. Experimental properties administration page

Business Central now includes an experimental features administration page which is disabled and hidden by default. When enabled, this page displays a list of some experimental features that are in technology preview. You can enable or disable individual features from this page. To enable the experimental features administration page, set the value of the appformer.experimental.features property to true.

Note

Some experimental features are enabled by default and might not be listed on the experimental properties administration page.

2.3.2. Enhanced process instance logs view

The Business Central process instance logs view has been enhanced. This view enables you to view all of the log events of a process instance based on a timeline of events. On the timeline, node entered events are highlighted in blue whereas node-entered events are greyed out. By default, log events are displayed in groups of ten. You can now view additional human task node details such as ID, state, and owner.

Furthermore, you can now filter process instance logs by the following categories:

  • Event type (such as, Node Entered and Node Completed)
  • Event node type (such as, All, Human Tasks, Start Nodes, End Nodes, Action Nodes, Milestones, Sub Processes, Rule Sets, and Work Items)

For more information about process instance logs, see Interacting with processes and tasks.

2.3.3. Support for SSH Keystore

Red Hat Process Automation Manager uses the SSH protocol for user authentication. It now has a configurable default SSH keystore (where you can register multiple public keys), extensible APIs (for custom implementations), and support for multiple SSH public keys formats.

For more information about SSH keystore, see Configuring Business Central settings and properties.

2.4. Process engine

2.4.1. Narayana transaction manager

Red Hat Process Automation Manager now supports DBCP 2 database connection pooling with Narayana transaction manager.

2.5. Decision engine

2.5.1. Rule units

Red Hat Process Automation Manager 7.2 now supports rule units that you can use to partition a rule set into smaller units, bind different data sources to those units, and then execute the individual unit. A rule unit consists of data sources, global variables, and rules.

You can define a rule unit by implementing the RuleUnit interface as shown in the following example:

Example rule unit class

package org.mypackage.myunit;

public static class AdultUnit implements RuleUnit {
    private int adultAge;
    private DataSource<Person> persons;

    public AdultUnit( ) { }

    public AdultUnit( DataSource<Person> persons, int age ) {
        this.persons = persons;
        this.age = age;
    }

    // A DataSource of Persons in this rule unit
    public DataSource<Person> getPersons() {
        return persons;
    }

    // A global variable valid in this rule unit
    public int getAdultAge() {
        return adultAge;
    }

    // --- life cycle methods

    @Override
    public void onStart() {
        System.out.println("AdultUnit started.");
    }

    @Override
    public void onEnd() {
        System.out.println("AdultUnit ended.");
    }
}

For more information about rule units, see the Drools Documentation.

2.5.2. Multithreaded evaluation in the decision engine

In Red Hat Process Automation Manager 7.2, the decision engine can now evaluate more business rules in parallel by dividing the RETE and PHREAK pattern-matching algorithms in independent partitions and evaluating them in parallel.

Multithreaded evaluation is disabled by default in Red Hat Process Automation Manager. To enable multithreaded evaluation for a parallel KIE base, use one of the following options:

  • Enable multithreaded evaluation with KieBaseConfiguration:

    KieServices ks = KieServices.Factory.get();
    KieBaseConfiguration kieBaseConf = ks.newKieBaseConfiguration();
    kieBaseConf.setOption(MultithreadEvaluationOption.YES);
    KieBase kieBase = kieContainer.newKieBase(kieBaseConf);
  • Enable the multithreaded evaluation system property:

    drools.multithreadEvaluation = true
Warning

Rules using queries, salience, or agenda groups are currently not supported by the parallel decision engine. If these rule elements are present in the KIE base, the compiler emits a warning and automatically switches back to single-threaded evaluation. However, in some cases, the decision engine might not detect the unsupported rule elements and rules might be evaluated incorrectly. For example, the decision engine might not detect when rules rely on implicit salience given by rule ordering inside the DRL file, resulting in incorrect evaluation due to the unsupported salience attribute.

2.5.3. Ability to declaratively set calendars in a KIE session

In Red Hat Process Automation Manager 7.2, you can now declaratively set one or more calendars on a KIE session through the kmodule.xml configuration file, as shown in the following example:

<ksession name="KSession1">
  <calendars>
    <calendar name="monday" type="org.domain.Monday"/>
  </calendars>
</ksession>

The type is the name of the class that implements the org.kie.api.time.Calendar interface.

2.6. Process Server

2.6.1. ElasticSearch connector for runtime events

This connector enables you to easily integrate with ElasticSearch to push data from the Process Server and take advantage of the searching capabilities of the ElasticSearch server.

2.6.2. Swagger interface for Process Automation Manager controller REST API

Red Hat Process Automation Manager 7.2 provides a Swagger web interface for the Process Automation Manager controller REST API. You can use this Swagger interface instead of a standalone REST client or curl utility to interact with your Process Server templates (configurations), Process Server instances (remote servers), and associated KIE containers (deployment units) in Red Hat Process Automation Manager.

To access the Swagger interface for the Process Automation Manager controller REST API, you can either start Business Central, which contains a built-in Process Automation Manager controller, or run the headless Process Automation Manager controller application and navigate to http://SERVER:PORT/CONTROLLER/docs in a web browser.

Example Swagger URLs:

  • http://localhost:8080/business-central/docs (for a Process Automation Manager controller in Business Central)
  • http://localhost:8080/my-controller/docs (for a headless Process Automation Manager controller)

For more information about the Process Automation Manager controller REST API, see Interacting with Red Hat Process Automation Manager using KIE APIs.

2.6.3. Decision Model and Notation (DMN) models

Red Hat Process Automation Manager 7.2 provides both design and runtime support for DMN 1.2 models at conformance level 3, and includes enhancements and fixes to FEEL and DMN model components to optimize the experience of implementing DMN decision services with Red Hat Process Automation Manager. You can design your DMN models directly in Business Central or import existing DMN models into your Red Hat Process Automation Manager projects for deployment and execution.

Note

The DMN designer in Red Hat Process Automation Manager 7.2 is a Technology Preview feature and is disabled by default in Business Central. To enable the DMN designer preview in Business Central, in the upper-right corner of the window, click SettingsRoles, select a role from the left panel, click EditorsDMN DesignerRead, and click Save to save the changes.

For more information about DMN support in Red Hat Process Automation Manager 7.2, see Designing a decision service using DMN models.

2.6.4. Executable models in Decision Model and Notation (DMN) projects

In Red Hat Process Automation Manager 7.2, you can now use the kie-maven-plugin build component to generate DMN executable model classes and compile them in a Red Hat Process Automation Manager project (KJAR file). DMN executable model classes are similar to executable rule models used for rule assets. This support enables DMN decision table logic in DMN projects to be evaluated more efficiently.

To enable executable models in DMN projects, add the required kie-dmn-core dependency in the pom.xml file:

<dependency>
  <groupId>org.kie</groupId>
  <artifactId>kie-dmn-core</artifactId>
  <scope>provided</scope>
</dependency>

To build a DMN project with DMN model compilation enabled, navigate to your Maven project directory in a command terminal and run the following command:

mvn clean install -DgenerateDMNModel=YES

Alternatively, you can define the DMN model property directly in the pom.xml file:

<project>
  ...
  <properties>
    <generateDMNModel>YES</generateDMNModel>
  </properties>
  ...
</project>

For more information about configuring executable models for your Maven or Java project, see Packaging and deploying a Red Hat Process Automation Manager project.

2.6.5. Deactivation of KIE containers on Process Server

You can now deactivate KIE containers on Process Server. This enables you to stop the creation of new process instances from a specified container while enabling you to continue working on existing process instances and tasks. The deactivated container can be activated again. This feature does not require server restarts.

2.6.6. Process Server support for rendering forms

New Process Server support for rendering forms enables you to interact with the Process Server to perform the following operations:

  • Render process forms: Used to start new instances
  • Render case forms: Used to start new case instances, including data and role assignments
  • Render user task forms: Used to interact with user tasks, including life cycle operations

Rendered forms include buttons that perform all operations based on context. For example, if a user task is in the progress state, you can use the Stop, Release, Save, and Complete buttons to interact with the process.

2.7. Red Hat Business Optimizer

2.7.1. Defining weights for constraints

In Red Hat Business Optimizer, you can now define weights for constraints inside a class marked with the @ConstraintsConfiguration annotation. You can assign weights to constraints by the Java or DRL name of the constraint, without needing to modify the code of the constraints.

2.8. OpenShift

2.8.1. LDAP role mapping on OpenShift deployments

When deploying Red Hat Process Automation Manager on Red Hat OpenShift Container Platform, you can now configure LDAP role mapping.

2.8.2. KJAR services in immutable OpenShift deployments

When deploying Red Hat Process Automation Manager on Red Hat OpenShift Container Platform in an immutable deployment, you can now create Process Servers that run services from KJAR files, not from source.

2.8.3. CORS support in trial deployment on OpenShift

In a trial deployment on Red Hat OpenShift Container Platform, you can use client-side JavaScript applications, served from a different domain, to access a Process Server.

2.9. Process designer

2.9.1. Case management properties

The following new properties have been added for case management projects and are related to modeling of case definitions:

  • Ad-hoc: Supports optional modeling paths that can be recommended to users or automatically triggered by rules. Must be set to true to show the case management properties.
  • Case ID Prefix: Provides the option to add a prefix for case IDs. If no prefix is provided, the case ID defaults to CASE-XXX where XXX is an automatically generated number.
  • Case File: Responsible for collecting all data related to a case.
  • Case Roles: Defines roles and cardinality at the process level.

2.9.2. Business Central compensation events

Process managers use compensation events to roll back the actions that were completed during execution. Exception handling activities associated with the normal activities in a business transaction are triggered by compensation events.

Three types of compensation events are available in Business Central:

  • Intermediate boundary (catch) events: Events that are attached to activities, such as tasks that may cause an exception. These events are then associated with a task that is executed if the boundary event catches a thrown compensation signal.
  • Start (catch) events: Events that are used when defining a compensation event subprocess, which requires them in order to be able to catch a (thrown) compensation signal.
  • Intermediate or end (throw): Events that are used to throw compensation events. These events often follow decision nodes that determine whether the work flow execution succeeded up to a specific point in the process. If not, the path including the intermediate or end event is selected to trigger compensation for the activities that failed.

2.9.3. Business Central resolution attribute

A new diagram resolution attribute has been added to the Business Central legacy process designer to enable users to successfully import a Business Process Model and Notation (BPMN) file and convert it to a Java Business Process Model (jBPM) file while retaining the correct scale. Note that this feature has not been added to the new process designer.

2.9.4. Labels on sequence flows

New support for showing the label name for sequence flows coming to and from gateways, nodes, tasks, and end events. You can now click any sequence flow line to view the label name.