12. Workflow Service Plugins

A  workflow service executes in the background of a realtime workflow and shares the same life cycle as the workflow. The workflow service has access to the MIM tree and can thereby monitor workflow execution. A workflow service can not route any data into workflow. For general concepts, see 4. Agent Plugins.

A workflow service is defined by inserting a class that extends the DRWorkflowServiceInspectable class into the code server. The server will then instantiate the class and extract the needed information about the workflow service.

To create a user defined workflow service, a configuration contract for the workflow service is required. The configuration contract is a mechanism by which workflow services can supply  with data and meta ­data at runtime and compile time. A configuration contract is a declarative piece of XML data associated with a workflow service at compile time and it is described in more detail in 15.2 Configuration Contract Tags.

In addition to the XML tags described in 15.2 Configuration Contract Tags, the workflow service configuration contract requires the header tag super-class-name to be present:

<super-class-name>
    com.digitalroute.devkit.wf.DRWorkflowServiceConfigData
</super-class-name>


The classes should be named as follows:

ClassDescription

<Workflow Service>Config

This class is generated from the workflow service's configuration contract. The class holds the configuration data for the workflow service. It extends the class DRWorkflowServiceConfigData and implements the DRGeneratedFromContract interface.

<Workflow Service>Insp

This is the workflow service definition class that contains references to the user interface and executable implementations of the workflow service, as well as other information. This class must extend DRWorkflowServiceInspectable.

<Workflow Service>Exec

This is the class responsible for the actual execution that implements the workflow service's runtime logic. The class should extend: DRRealtimeService.

<Workflow Service>UI

The workflow service user interface dialog, used to collect and display the template configuration data for the agent. It is defined in a class extending DRWorkflowServiceUI.