Skip to main content

Introducing Formengine - The New Formbuilder, try for FREE formengine.io.

Version: 2.11.0

How to configure and run Workflow Server

General information

Workflow Server is a ready-to-use Workflow Engine-based application that you can deploy into your infrastructure. It can be integrated with NodeJS, PHP, Ruby, .NET, or Java applications via an HTTP API. Workflow Server is a key component for managing the lifecycle of business objects within your enterprise.

Initially, download workflowserver.zip from this page and extract it.

How to launch via docker

  1. Run the startcontainer script

    • For Windows: run the file startcontainer.bat

    • For Linux/MacOS:

      sudo chmod +x docker-files/wait-for-postgres.sh
      sudo chmod +x startcontainer.sh
      sudo ./startcontainer.sh

    This script build this workflowserver's solution and run it with Postgres database.

  2. Open http://localhost:8077 in a browser.

  3. Upload your license key via the Dashboard or save the licence key as 'license.key' into the folder or add to 'license' folder.

  4. Fill in Callback API urls at http://localhost:8077/?apanel=callbackapi to perform integration.

If you would like to run WorkflowServer on MSSQL or MongoDB. You need to use one of docker-compose files:

  • MS SQL Server: docker-files/docker-compose-mssql.yml
  • MongoDB: docker-files/docker-compose-mongo.yml

MongoDB script:

sudo chmod +x docker-files/wait-for-mongo.sh
sudo docker-compose -f docker-files/docker-compose-mongo.yml build
sudo docker-compose -f docker-files/docker-compose-mongo.yml run --rm start_db
sudo docker-compose -f docker-files/docker-compose-mongo.yml up

MSSQL script:

sudo chmod +x docker-files/wait-for-mssql.sh
sudo docker-compose -f docker-files/docker-compose-mssql.yml build
sudo docker-compose -f docker-files/docker-compose-mssql.yml run --rm start_db
sudo docker-compose -f docker-files/docker-compose-mssql.yml up

How to launch it with a custom database

  1. Run the following SQL-scripts on a Database (for MS SQL Server from SQL\MSSQL folder, for PostgreSQL from SQL\PostgreSQL, for Oracle from SQL\Oracle folder, for MySql from SQL\MySql folder):
    • CreatePersistenceObjects.sql
    • WorkflowServerScripts.sql
  2. Make the following changes to the config.json file:
    • Change the URL parameter to the IP and the port of the HTTP listener. Most likely you'll need to leave it as is.
    • Specify "mssql", "postgresql", "oracle", "mysql" or "mongodb" in the "provider" parameter depending on what database provider you are using.
    • Change the ConnectionString parameter to match your database provider connection settings.
  3. Install .NET Core 3.1
  4. Run the Workflow Server.
    • Workflow Server supports console and service modes on Windows:
      • Run the 'start.bat' file to run it in the Console mode.
      • Run the 'installservice.bat' as administrator to run it in the Service mode.
    • For Linux/MacOS:
      • Open the terminal in a folder where you extracted the 'workflowserver.zip' archive to.
      • Run the following command: chmod +x start.sh.
      • Run the following command: './start.sh'.
  5. Open http://localhost:8077 in a browser.
  6. Upload your license key via the Dashboard or save the licence key as 'license.key' into the folder or add to 'license' folder.
  7. Fill in Callback API urls at http://localhost:8077/?apanel=callbackapi to perform integration.

How to rebuild and run

  • For Windows:

    buildandstart.bat
  • For Linux/MacOS:

    sudo chmod +x buildandstart.sh
    sudo chmod +x start.sh
    sudo ./buildandstart.sh

How to run in Visual Studio

  1. Open WorkflowServer.sln in Visual Studio or JetBrains Rider.
  2. Check the connection string to the database in the config.json file, Provider and ConnectionString parameter.
  3. Run WorkflowServer project.

How to completely customize Workflow Server

  1. Open WorkflowServer.sln in Visual Studio or JetBrains Rider.
  2. The solution contains only one project, WorkflowServer; you can add references to your own projects and dlls to it.
  3. In the WorkflowServer project, find the Program.cs file; you can optionally configure WorkflowRuntime here.

Project

Program.cs contains the following code:

(bool success, IWebHost host) = initializer.BuildWebHost(workflowServer =>
{
// Register your own Action and Rule providers
// workflowServer.RegisterActionProvider(new ActionProvider());
// workflowServer.RegisterRuleProvider(new RuleProvider());

// Register your own CodeAutocompleter
// workflowServer.RegisterCodeAutocompleters(new CodeProvider());

// register additional assemblies
WorkflowRuntime.CodeActionsRegisterAssembly(typeof(System.Net.Http.HttpClient).Assembly);
});

The object workflowServer.WorkflowRuntime is available here; thus, you can add your own versions of:

Therefore, you get access for complete customization of Workflow Engine in Workflow Server.