DEV Community

Cover image for Introducing BPMN support in .NET Workflow Engine library
Optimajet Limited
Optimajet Limited

Posted on

Introducing BPMN support in .NET Workflow Engine library

Many .NET developers, during the POC process, requested that we add the ability to import BPMN schemas into our WorkflowEngine. In an new update, Optimajet's Workflow Engine now introduces foundational BPMN support, making it easier for .net developers to work with familiar process elements and streamline workflow designs. While Workflow Engine is not a dedicated BPMN engine, this new capability bridges some gaps by enabling users to work with BPMN elements, enhancing compatibility and efficiency for process modeling.

Workflow Engine is not a BPMN engine, so full compliance with the BPMN standard isn't achievable. However, the process execution principles in Workflow Engine align with those of BPMN. Consequently, BPMN support in Workflow Engine is grounded in two key aspects:

BPMN Elements in Workflow Engine Scheme: We have added basic BPMN elements to Workflow Engine so that when a BPMN diagram is imported, familiar elements remain, making it clear where attention should be focused. Some of these elements are useful on their own, such as the Parallel Gateway, which can be beneficial for creating and merging subprocesses in Workflow Engine in a simpler and more understandable way.

BPMN Import: You can import a BPMN diagram, and it will be converted into a Workflow Engine scheme. A detailed log and comments will indicate what is unsupported or only partially supported in the current implementation.
The structure of this section will be as follows. First, we will describe the differences between BPMN diagrams and Workflow Engine process schemes. Then, we will review which BPMN diagram elements are supported in Workflow Engine and how they are implemented. Finally, we will explain how to integrate BPMN import into an application running Workflow Engine and how to customize this import process.

BPMN elements support in Workflow Engine

The BPMN plugin for Workflow Engine currently supports only the most essential BPMN elements, with new functionalities being progressively added. Here’s an overview of the supported and partially supported elements:

Tasks

  • Generic Task - Converted into a standard Activity.
  • Service Task - Transformed into a specialized Activity based on the values of attributes like camunda:topic and camunda:delegateExpression.
  • Receive Task - Supported, with an outgoing transition triggered by a Command.
  • User Task. Not supported yet; support will be added after the release of the plugin integrating Workflow Engine with forms.
  • Business Rule Task. Not supported; will be converted into a standard Activity.
  • Manual Task. Not supported; will be converted into a standard Activity.
  • Script Task. Not supported; will be converted into a standard Activity.
  • Send Task. Not supported; will be converted into a standard Activity.

Gateways

  • Exclusive Gateway and Parallel Gateway - Supported.
  • Event-Based Gateway - Supported and converted into an Activity with transitions triggered by corresponding events.
  • Inclusive and Complex Gateways - Not supported and are currently converted into standard Activities.

Events

  • Start Events - Generic Start Event is supported, with partial support for Message and Timer types.
  • End Events - Generic and Terminate End Events are supported.
  • Boundary Events - Partially supported; Message and Timer Boundary Events are converted into transitions with Command and Timer triggers.

Other Elements

  • Subprocesses and Pools - Converted to Inline Activities or separate workflow schemes.
  • Call Activities and Lanes - Not supported; Lanes are ignored due to no equivalent grouping method in Workflow Engine.
  • Parallelism
  • In BPMN diagrams, implicit parallelism is converted to explicit parallelism in Workflow Engine, using dashed lines to mark the start of subprocesses and dash-dotted lines for their completion.

Feedback
Since BPMN support is an evolving feature, your feedback on the BPMN elements you need is invaluable to us. Please let us know in the comments below which elements are critical to your workflows, so we can prioritize their implementation in future releases. We will gradually add new BPMN elements based on requests from .NET developers who have chosen Workflow Engine as the workflow library for their business applications.

Top comments (0)