This Solution applies to all versions of Ivanti Service Manager (current version, on the date when this article is created is 2018.1)
In this article I am going to describe how workflows runs under Ivanti Service Manager and SQL database.
This table contains all workflows created in the system.
For instance, on my out of the box environment I have 148 workflows created.
When I created my test workflow named KS_Test, number of records increased to 149
And this is the record I have just created:
Contains versions of workflows. Does not matter if they are published or not.
For instance in my environment I have 1857 records
when I created new Version on my KS_Test workflow...
number of records inside this table increased to 1858
It is also related to Frs_def_workflow_type table. See WorkflowTypeLink_RecID.
If workflow is being triggered, an instance is being created.
For instance, now I have 21 records in my environment.
My workflow, created before, is really simple. It starts when an Incident is created... and that's all.
Creating and incident created also workflow instance.
Number of records increased to 22.
Every instance is related to workflow definition (Frs_def_workflow_definition table)
This table contains available statuses of Frs_def_workflow_instance.
Every Instance (Frs_data_workflow_instance) contains detailed description in this table.
For example, workflow which has been triggered above, is very simple.
And contains only 2 records for this instance (to be more precisely, to an instance of a definition of a workflow)
First was START block which returned OK ( see ExitPort column )
then STOP block completed the workflow.
Let's create more complicated definition of this workflow.
In Frs_data_workflow_history it looks like that:
We can even see it is executing.
1. Frs_def_workflow_type - is a static workflow created in the system (eg. for Business Object).
2. Frs_def_workflow_definition - is a static definition (version) of a workflow ( instance of frs_def_workflow_type ). There can be many definitions associated with one workflow (type)
3. Frs_data_workflow_instance - when workflow is triggered, and instance is being created. ( an instance of a definition of a workflow type )
4. Frs_data_workflow_history - it is more detailed history of an instance of a workflow instance. Here we can find information what has happened with all blocks of an instance of a workflow
5. Frs_def_workflow_inst_status - it is just list of statuses for Frs_def_workflow_instance table.