@os1-platform/workflow-designer
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Workflow Designer

Introduction

This package is used to create objective and job workflows. Built with React, Diagram-js, Javascript, Tailwind.

Installation and Usage

Peer dependencies:

{
  "@apollo/client": ">=3.6.9",
  "axios": ">=0.27.2",
  "graphql": ">=15.5.1",
  "react": ">=17.0.2"
}

Installation

npm install @os1-platform/workflow-designer

Usage

NOTE: Add a json file in the public folder of the application named expressionConfig.json containing all the field with default expression($expr) field values.Example:

{
    "ExecutionTaskId1": {
        "inputField1": "$.inputs.fieldNameToFetchValueFrom",
        "inputField2": "$.inputs.inputField2"
    },
    "ExecutionTaskId2": {
        "inputField1": "$.inputs.inputField1",
        "inputField2": "$.inputs.fieldNameToFetchValueFrom",
        "message": "$.inputs.message"
    },
}
//import the package in your app, use as a component and provide all the required props
import WorkflowDesigner from "@os1-platform/workflow-designer";


NOTE: Required API endpoints-
```js
  GRAPHQL_SERVER: "graphql", (for graphqlUrl)
  (for restUrl)
  WORKFLOWS: "workflow-wrapper/workflows",
  MACROS: "workflow-wrapper/macros",
  DRAFTS: "workflow-wrapper/drafts",
  JOBS: "workflow-wrapper/job-workflows",
  JOBS_DRAFTS: "workflow-wrapper/job-drafts",
```

<WorkflowDesigner
baseUrl={{
    restUrl: "https://{tenant}.{env}.example.io/",
    graphqlUrl: "https://{tenant}.{env}.example.io/graphql/",
  }}
headers={{
    tenantId: "", // pass tenantId (mandatory)
    accessToken: "", // pass accessToken (mandatory)
    requestId: "", // pass requestId (mandatory)
    userInfo: {}, // pass userInfo (optional)
  }}
designerType="OBJECTIVE | JOB"
workflowId="" // pass workflow id to open a workflow
allApplicableReasonCodes={{}} //format for applicable reason codes is mentioned below
defaultExpressionsFilePath="" // path to file where the default expression value is stored, MANDATORY for Objective Workflow. Not needed for JOB-WORKFLOW
searchTagsOptions={Array<Tag>} // list of Tags, to filter objective listing in Job Workflows. Format for tag is mentioned below.
connectionType="STRAIGHT | CURVED | BOTH" // (optional) connection type prop to enable straight-connections or curved-connections on canvas. default -> CURVED
/>;
// Interface for baseUrl
interface BaseUrl {
  restUrl: string;
  graphqlUrl: string;
}
// Interface for headers
interface headers {
  requestId: string;
  tenantId: string;
  accessToken: string;
  userInfo?: object;
}
// Inteface for Tag
interface Tag {
  name: string;
  value: string;
}
//sample for objective workflow (type object)
allApplicableReasonCodes = {
  ET_ID1: {
    // Execution task id
    "E-010": [
      //success RCs
      {
        value: "R-011", //reason code
        label: "PICKUP_DONE", //reason code title/label
      },
    ],
    "E-011": [
      //failure RCs
      {
        value: "R-019", //reason code
        label: "REFUSED_TO_SIGN", //reason code title/label
      },
    ],
  },
  ET_ID2: {
    // Execution task id
    "E-010": [
      //success RCs
      {
        value: "R-012", //reason code
        label: "DELIVER_DONE", //reason code title/label
      },
    ],
    "E-011": [
      //failure RCs
      {
        value: "R-021", //reason code
        label: "CONSIGNEE_UNAVAILABLE", //reason code title/label
      },
    ],
  },
};

//sample for job workflow (type array of objects)
allApplicableReasonCodes = [
  {
    value: "R-0070",
    label: "PICKUP_OBJ_SUCCESS",
  },
  {
    value: "R-0071",
    label: "PICKUP_OBJ_FAILURE",
  },
];

Methods

Methods provided via sdk:

  1. Save the workflows as draft or publish:
import { saveAsDraft, publish } from "@os1-platform/workflow-designer";
  1. Validate the workflow before publishing:
import { validate } from "@os1-platform/workflow-designer";

UI Notes

  1. Max z-index used is z-index: 10.

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.0.20latest

Version History

VersionDownloads (Last 7 Days)Published
1.0.20
1.0.10
1.0.00

Package Sidebar

Install

npm i @os1-platform/workflow-designer

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

13.8 MB

Total Files

575

Last publish

Collaborators

  • fxtrt-automation
  • ashishranjan-delhivery
  • kshitijsharmadelhivery
  • bhatupanshu
  • u-anand
  • garima-delhivery
  • pavanbhat