@opuscapita/fsm-workflow-history

3.0.1 • Public • Published

Workflow History

badge-npm-version NPM Downloads

Workflow History is an extension to FSM Core. It provides server-side API for storing and extracting Business Object lifecycle history.

Installation

Install package

npm install --save-prod @opuscapita/fsm-workflow-history

Basic Usage

// Run migrations and initiate an instance of FSM Workflow History.
const history = await require('@opuscapita/fsm-workflow-history')(sequelize);

history is JavaScript object with the following structure/interface:

{
  // add history record
  async add({
    from: <string>,
    to: <string>,
    event: <string>,
    businessObjType: <string>,
    businessObjId: <string>,
    user: <string>,
    workflowName: <string>,
    ?description: <string>
  }) {
    ...
    return <History Record>;
  },

  // search for history record
  async search({
      ?object: {
        ?businessObjType: <string>, // example: 'invoice'
        ?businessObjId: <string> // example: 'john.miller'
      },
      ?user: <string>,
      ?workflowName: <string>,
      ?finishedOn: {
        ?gt: <date>, // example: new Date("2018-03-05T21:00:00.000Z")
        ?gte: <date>,
        ?lt: <date>,
        ?lte: <date>
      }
  }, {
      ?max: <number, 100 by default>,
      ?offset: <number, 0 by default>
  }, {
      ?by: <string, History Record field name, "finishedOn" by default>, // example: 'user'
      ?order: <string, "desc" (default) or "asc">
  }) {
    ...
    return [<History Record>, ... ];
  }

  // delete history record
  async delete({
    businessObjType: <string>,
    businessObjId: <string>,
  }) {
    ...
    return <deleted records number>;
  },

}

History Record is JavaScript object with values from DB:

Column Type Required Notes
id integer true autogenerated id
from string true
to string true
event string true
businessObjType string true example: 'invoice'
businessObjId string true example: '123456789'
user string true user initiated a transition
workflowName string true unique workflow name, known by workflow machine
description string false event/object/trsnaition information
finishedOn timestamp true like in Grailsflow, object finished the transition in 'to' state

See Express Server Demo for an example of using Workflow History.

Dependents (0)

Package Sidebar

Install

npm i @opuscapita/fsm-workflow-history

Weekly Downloads

58

Version

3.0.1

License

Apache-2.0

Unpacked Size

33.2 kB

Total Files

14

Last publish

Collaborators

  • ariusz
  • ilhamkadduri
  • smachnow
  • piotr.krzysztof.murdzia
  • kuos
  • elaczapiewska
  • janek.bug
  • ocmachineuser
  • ocautomation