BPMN Support
Without BPMN support, migrating process models created in tools like Camunda Modeler, Signavio, or Bizagi means re-drawing every flow in the Workflow Engine Designer by hand - time-consuming, error-prone, and disconnected from how your team already works.
BPMN support is a plugin that reads BPMN 2.0 XML files and converts them into executable Workflow Engine schemes.
With BPMN support, you upload a BPMN diagram and the plugin produces a working scheme in the Designer, preserving the core flow structure - gateways, events, tasks, and sequence flows. For example, a purchase approval diagram modeled in Camunda Modeler becomes a Workflow Engine scheme ready to run against your persistence database, without re-drawing a single element.
What it is
Think of BPMN support as a translator between two languages. Your team draws processes in a familiar BPMN modeling tool - the standard notation for process design. Workflow Engine executes processes using its own scheme format. The BPMN plugin reads a BPMN 2.0 XML file and produces an equivalent Workflow Engine scheme, mapping each BPMN element type to the closest matching runtime construct.
| BPMN element | What it becomes in Workflow Engine |
|---|---|
| Start event | Initial activity (the first activity the runtime executes) |
| End event | Final activity (completes the process instance) |
| Service task | Intermediate activity with auto-trigger |
| Exclusive (XOR) gateway | Custom activity type - outgoing transitions act as conditional branches |
| Parallel (AND) gateway | Custom activity type - enables concurrent execution paths |
| Timer catch event | Intermediate activity with timer trigger |
| Message catch event | Intermediate activity that waits for an external command |
| Terminate event | Final activity that ends all parallel branches |
Import is not lossless. Boundary events and complex gateways are imported with limitations rather than skipped. Each outgoing flow from an interrupting boundary event becomes a transition from the attached activity to the target activity. Supported message and timer event definitions become command and timer triggers on those transitions. Non-interrupting boundary events are converted in the same way, but their non-interrupting BPMN semantics are not preserved. The importer records a warning that the flow may behave differently.
A complex gateway becomes a regular Workflow Engine activity. Its incoming and outgoing sequence flows become transitions, but the BPMN activation condition is not applied. The importer records warnings in the import results and the converted scheme. Use BPMN import as a migration tool for the structural flow, not as a fidelity-preserving converter. The canonical editing format is Workflow Engine's native scheme format.
For developers: The BpmnPlugin implements IWorkflowPlugin and registers eight custom activity types (ServiceTaskActivity, ExclusiveGateway, ParallelGateway, MessageCatchEvent, TimerCatchEvent, StartEvent, EndEvent, TerminateEvent) plus a Designer action (bpmnplugin_uploadbpmn). Install the NuGet package WorkflowEngine.NETCore-BpmnPlugin and register the plugin with runtime.WithPlugin(new BpmnPlugin()).
Why it matters
BPMN support delivers these outcomes:
- Flow structure carries over - Import keeps gateways, events, tasks, and sequence flows, so a flow modeled in another tool is not drawn again by hand.
- Reuse existing BPMN designs - Process analysts can import the supported flow structure from diagrams created in their BPMN modeling tool rather than recreating those elements by hand. Each import is a one-way conversion into an independent Workflow Engine scheme; later changes are not synchronized automatically. If both the BPMN source and the imported scheme change, preserving both sets of changes requires a manual merge or custom integration; the plugin does not write scheme changes back to BPMN.
- Bulk import of existing BPMN assets - The core flow structure imports; command bindings, rule assignments, and code actions are configured after import.
Who it is for
Developer: The plugin turns BPMN XML into a runtime scheme in one step. Rule providers and action providers you register work the same for imported and hand-authored schemes.
Enterprise architect: BPMN import preserves the structural intent of enterprise process models. Combined with Workflow Engine's persistence and clustering, you can model processes in BPMN-standard tools and deploy them on a horizontally scalable runtime without manual schema translation.
When to use it
Use BPMN import when existing process diagrams are in BPMN 2.0 format. Typical examples:
- Migrating from Camunda, Signavio, or Bizagi - You have hundreds of BPMN diagrams in production on another engine. Import each diagram to Workflow Engine, add runtime configuration (actions, rules, commands), and deploy. The core flow structure transfers; the runtime-specific wiring is new.
- Procurement or compliance documentation - Your compliance team maintains process documentation as BPMN diagrams in a modeling tool. Import the approved diagram to create the executable scheme, ensuring the running process matches the documented design.
- Partner or vendor process exchange - A partner provides integration workflows as BPMN 2.0 XML. Import the file directly rather than translating the flow manually into the Designer.
How it compares
The table below shows the tradeoffs between the Workflow Engine approach and the alternative.
| Approach | What it requires | Result |
|---|---|---|
| Re-author by hand | Copy each BPMN element into the Designer: re-create activities, transitions, gateways, and conditions manually | Risk of transcription errors. Divergence between design model and running process. |
| Workflow Engine BPMN import | Upload the BPMN 2.0 XML file through the Designer. Add runtime wiring (actions, rules) after import. | Supported core flow structure is converted into an independent Workflow Engine scheme. If both the BPMN source and the scheme change, preserving both requires a manual merge or custom integration; the plugin does not write scheme changes back to BPMN. |
Import fidelity depends on element complexity. Simple flows (start - tasks - exclusive gateway - end) import cleanly. Boundary events and complex gateways are retained with the limitations described above. Review the import results and warnings in the converted scheme before deployment.
Frequently asked questions
Does Workflow Engine support exporting schemes as BPMN 2.0 XML?
Not currently. The BpmnPlugin is import-only. Schemes edited in the Designer or modified at runtime cannot be exported back to BPMN format. Use the Designer's built-in scheme export for backups and the Simple Process Notation for version control.
Do I need a specific license for BPMN import?
Yes. The BpmnPlugin checks for a BPMN license restriction at registration. If your license does not include BPMN support, the plugin throws on OnPluginAdd. See Workflow Engine Editions for per-feature license mapping.
How does BPMN import handle boundary events and complex gateways?
Interrupting boundary events become transitions from the attached activity, with supported message and timer definitions mapped to command and timer triggers. Non-interrupting boundary events are also converted, but their non-interrupting semantics are not preserved. Complex gateways become regular activities with their flows retained as transitions; their BPMN activation conditions are not applied.
What happens to transitions and conditions during import?
Sequence flows become transitions. Conditions on exclusive gateway outgoing flows become the condition expressions on each transition. Parallel gateways produce concurrent outgoing transitions - the runtime executes all branches. The converter handles subprocesses by creating inlined schemes (sub-schemes referenced from the main process).