WorkFlow Monitor
Last updated
Was this helpful?
Last updated
Was this helpful?
The XMPro Workflow Monitor, previously known as Business Activity Monitor (BAM) is primarily a service which can perform time-based jobs.
It has a Controller/Mediator and a Database to store its data. It communicates to WorkFlow using an XMPro API while the WorkFlow and any third-party can communicate to a WorkFlow Monitor using the WCF Service exposed by it. It has a default UI which is an ASP application and uses the same WCF Service to communicate.
A job is a combination of following
Schedule
Trigger
Action(s)
A Schedule defines the timing of the Trigger to be evaluated at. It is defined by the end-user through UI at the time of configuring a job. Currently, it provides following Recursive scheduling options:
WorkFlow Monitor Controller continually evaluates each job’s next time to occur. If the time to occur is current it creates a Thread and assigns it the relevant Trigger.
A trigger physically exists in a folder which WorkFlow Monitor has access to, specified in the config file. It is a DLL extended from a generic DLL (XMMonitor.dll) provided with some built-in functions, for example, checking for new Tasks, etc.
A trigger’s primary responsibility is to evaluate if the Job needs to be executed or not. A trigger may get data passed in as static parameters at the time of configuration.
If the trigger evaluates to true it calls the current job’s associated Action(s). The outcome of Job is logged to database at the end of execution of all Actions.
An action physically exists in a folder which WorkFlow Monitor has access to, specified in the config file. It is a DLL extended from a generic DLL (XMMonitor.dll) provided with some built-in functions, for example, creating a Task, sending an email, creating an XMPro User, etc.
Users can create a custom Action which will have access to all standard functions which can be mixed and matched for individual requirements.
Every Action has a set of inputs and outputs in a form of Named Value Pairs which in case of Sequenced Actions are passed from one Action to another.