When you implement a system that manages business processes, Workflows are an important part. There are various tools like Workflow Engine, K2, Camunda etc. for automating the processes. While this article deals with Workflow Engine – a .NET based application, its features, core components and integration steps.
Workflow Engine is a .NET based software application that helps coordinate and facilitate business processes.
WHY WORKFLOW ENGINE?
Let us imagine that we are implementing a Business Process Management(BPM) system which consists of large number of business flows and data. It is crucial to monitor the status of each flow in a timely manner. So without using a tool like Workflow Engine, it will be a Herculean task to achieve these objectives. By using Workflow Engine, we can automate the business processes, hence enabling us to take better control over its execution.
Flexibility is what every product should offer. While workflow Engine offers this with a choice of two variants – Workflow Engine and Workflow Server.
Workflow Engine is a component intended to be fully integrated with .NET application whereas Workflow Server runs as a standalone service that can be integrated to any application via Rest API.
The inbuilt HTML 5 designer creates workflows of any complexity with ease.
Visual Designer which provides some enhanced features like:
⦁ Drag & Drop workflow activities on canvas
⦁ Auto Arrangement in the best way possible on a click
⦁ Snap each activity to grid for clean and readable design
⦁ Extended info for displaying detailed information
Designs created with visual designer can be downloaded both in XML and BPMN format, thus allowing for easy reuse and sharing.
Tasks can be executed based on timers. Both time intervals as well as time-specific timers can be set to execute workflow activities. Also timer values can be set in different ways like interval, date, time, date and time. Even if the timer value is specified in intervals, the workflow will forecast the exact time. For instance, even if the server goes down for a moment after defining the interval it will not affect the timer functionality.
Logging of debug, informational and error messages can be done with Workflow Server Logging. This feature is available from version 2.3. The logging can be targeted to either console, IDE Debugger output, files, or Windows event log.
Workflow Engine supports popular databases like MS SQL Server, Oracle, mongoDB, redis, Raven DB, PostgreSQL, GridGain.
Scheme is workflow design comprises of actions, its state and transitions.
⦁ Activities: Determines the state and order of the actions to be executed. Also the basic object of a scheme.
⦁ Transitions: Determines the order of execution of processes.
⦁ Actions: Any method to be executed. It can be any business logics, send mails, any external services etc.
⦁ Actors: Used to restrict or allow a user with specific role to do a transition.
⦁ Commands: External triggers to make a transition or a particular action.
⦁ Timer: Internal trigger to make a transition or a particular action.
⦁Download and extract ‘workflowserver.zip’ archive.
⦁ Run CreatePersistenceObjectssql, WorkflowServerScripts.sql scripts on your Database.
⦁ Make appropriate changes to ‘bin/configuration’ file.
Change URL parameter to the IP and port of the HTTP listener if needed.
Specify the Provider depending on the database used.
Change the connection string parameter.
⦁ Run Workflow Server
⦁ Run ‘runserver.bat’ or ‘installservice.bat’ (as administrator) file to run it in Console mode or Service mode respectively.
⦁ For Linux/Mac OS, install .NET Core 2 and run the command ‘./runserver.sh’.
⦁ Create an API solution which contains the Action Provider, Rule Provider etc. Set Callback API urls as the URL of this created solution.
⦁Call Workflow API s via Rest API from our solutions for operations like Instance creation, Command Execution, Set State, Get Instance Information etc.