Workflow

Configure workflows as per requirements

Overview

Workflows consist of a series of steps that transition a process from one state to another through actions performed by various actors — including humans, machines, and time-based events — to achieve goals such as onboarding an employee, approving an application, or granting a resource. The egov-workflow-v2 is a workflow engine that facilitates these operations seamlessly using a predefined configuration.

Pre-requisites

Before you proceed with the documentation, make sure the following pre-requisites are met -

  • Java 17

  • Kafka server is up and running

  • egov-persister service is running and has a workflow yml added to the persister config path.

  • PostgreSQL server is running, and a database is created to store workflow configuration and data

Key Functionalities

  • Always allow anyone with a role in the workflow state machine to view the workflow instances and comment on them

  • On the creation of the workflow, it will appear in the inbox of all employees who have roles that can perform any state-transitioning actions in this state.

  • Once an instance is marked to an individual employee, it will appear only in that employee's inbox, although point 1 will still hold true, and all others participating in the workflow can still search it and act if they have the necessary action available to them

  • If the instance is marked to a person who cannot perform any state transitioning action, they can still comment/upload and mark to anyone else.

  • Overall SLA: SLA for the complete processing of the application/Entity

  • State-level SLA: SLA for a particular state in the workflow

Environment Variables
Description

egov.wf.default.offset

The default value of offset in search

egov.wf.default.limit

The default value of limit in search

egov.wf.max.limit

The maximum number of records that are returned in search response

egov.wf.inbox.assignedonly

Boolean flag if set to true default search will return records assigned to the user only, if false it will return all the records based on the user’s role. (default search is the search call when no query params are sent and based on the RequestInfo of the call, records are returned, it’s used to show applications in employee inbox)

egov.wf.statelevel

Boolean flag set to true if a state-level workflow is required

Database Diagram

Interaction Diagram

Deployment Details

  1. Deploy the latest version of eGov-workflow-V2 service

    1. Note: This video will give you an idea of how to deploy any DIGIT service. Additionally, you can find the latest builds for each service in our latest release document, available here.

  2. Add BusinessService Persister YAML path in the persister configuration

  3. Add Role-Action mapping for BusinessService APIs

  4. Overwrite the egov.wf.statelevel flag ( true for state level and false for tenant level)

  5. Create a business service (workflow configuration) according to product requirements

  6. Add Role-Action mapping for /processInstance/_search API

  7. Add workflow persister yaml path in the persister configuration

Configuration Details

For configuration details, refer to the links in Reference Docs.

Integration Details

Integration Scope

The workflow configuration can be used by any module which performs a sequence of operations on an application/Entity. It can be used to simulate and track processes in organisations to make it more efficient, too and increase accountability.

Integration Benefits

  • Role-based workflow

  • An easy way of writing a rule

  • File movement within workflow roles

Integration Steps

  1. To integrate, the host of eGov-workflow-v2 should be overwritten in the helm chart.

  2. /process/_search should be added as the search endpoint for searching workflow process Instance objects.

  3. /process/_transition should be added to act on an application. (It’s for internal use in modules and should not be added in Role-Action mapping).

  4. The workflow configuration can be fetched by calling _search API to check if data can be updated or not in the current state.

Reference Docs

API List

Play around with the APIs: DIGIT-Playground

Note: All the APIs are in the same Postman collection; therefore, the same link is added in each row.

Last updated

Was this helpful?