OptimaJet offers two products to create and manage workflows:
- Workflow Server – developed as a separate solution with a control panel, HTTP API for process control, and frontend subsystem.
The solutions share a common process design and features but differ in the delivery format. This comparison table provides a full list of features for each of the solutions. Although the products have a common base, they are self-contained.
|Feature||Workflow Engine||Workflow Server|
|Workflow version control|
|Integration with other components|
|Restful API/HTTP API/Swagger|
|Security (users, roles, permissions)||*||*|
* Can integrate with your security provider, but development is required.
Let us take a closer look at the solutions.
First, you need to create a scheme. It can be created either from scratch or by using one of the ready-made schemes on our test server. We recommend starting with the simplest, TestScheme, which contains three states and two transitions with commands.
After creating the scheme, use the Workflow API from the admin panel to manage the processes. Via this interface, you can create a process based on the scheme, get the list of available commands, and execute a command. Each section provides code examples of how to call methods from the external system using the HTTP API.
You can restrict access to the API and admin panel from the Security tab on the Dashboard.
If you have an external system with users, roles, etc. and want to integrate the Workflow Server with it, just follow this guide.
To extend the functionality, you can apply the Code Actions or rebuild WorkflowServer using the Visual Studio solution, delivered with the package.
Starting with version 2.6, the user interface constructor and user form creator are available, like in a CMS. In version 2.7, you can authorize users to access forms.
To start working, you need to create an instance of WorkflowRuntime. This object provides you with access to the C# API for creating and managing workflow instances. The key functions are:
- CreateInstance – create a process (workflow) instance.
- GetAvailableCommands – get the list of available commands.
- ExecuteCommand – execute a command.
- SetState – set a state.
- DeleteInstance – delete a process (workflow) instance.
Please, see here for further details.
We recommend starting with one of the examples, where you find an already configured WorkflowRuntime and an example of a workflow.
The currently available sample applications for WebForms, ASP.NET MVC and ASP.NET Core are:
- WebForms (.NET Framework) samples
- ASP.NET MVC (.NET Framework) samples
- ASP.NET Core (.NET Core) samples
If you use Angular, you can see one example based on the standard angular and angular boilerplate solutions. Unfortunately, we have no other examples because they’re rarely used, and creating and supporting them requires considerable effort.
Workflow Engine stores basic information about processes in the WorkflowProcessScheme and WorkflowProcessInstance tables in the database. You can find further information here.
Once you get acquainted with the product, you can start integrating it into your project. Please, use our step-by-step integration guide.
If you plan to manage users and roles in your schemes, you need to integrate the engine with your security system. This article explains in detail how to perform the task using the Basic Plugin.
WorkflowEngine has extensive design customization options. For example, you can declare Actions of your own on the backend, and specify a set of parameters for the call. Based on this description, WorkflowDesigner automatically shows the form with the parameters specified.
These terms are common to Workflow Engine and Workflow Server.