@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.

/@opuscapita/fsm-workflow-history/

    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
    • ocmachineuser
    • ocautomation