Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Intro

This concept is meant to illustrate what is needed in technical terms in order to implement the new UX Pulse concept with particular reference to the workflow.

...

  • we want to be able to display tasks independent of the presence of an underlying workflow engine
    • i.e a one-shot task (e.g. a short translation assignment given to a particular user) for which setting up a whole workflow process would be overkill.
  • we want to be able to retrieve the status of a given task
  • ideally we would like the list to be updated automatically as new tasks arrive, are taken, updated or completed

Workflow and Pulse interaction

Here we briefly sketch how Workflow works and how it currently interacts with Pulse 

Workflow
  • workflow process defined as bpmn 2.0 (Business Process Model and Notation) file
  • each process is registered by name at startup and made available to the underlying workflow engine
  • each step in the workflow is a workitem defined in a wid (work item definition, a jBPM specific file), e.g. MgnlDefinitions.wid
  • WorkItemHandlerDefinitionRegistry scans the config repo at startup and registers all handlers under workItemHandlers nodes, eg. /modules/workflow-jbpm/workItemHandlers and maps workitems with their respective handlers
  • WorkItemHandler is a Java class executed at runtime when the workflow reaches the corresponding work item or step
  • workflow are launched via commands, e.g. /modules/workflow/workflows/activate which has a workflow property referring to the name of the workflow to launch
Interaction example with Pulse
  • activation workflow is defined as SimpleActivation.bpmn 
  • its first workitem is called publishNotification which maps to a NotificationWorkItemHandler class
  • when activation workflow is started, publishNotification is executed
  • publishNotification populates a map of arbitrary data with
    • who started the process
    • who's been assigned to
    • the path to activate
    • if activation is recursive
    • publication date in case of scheduled activation
    • the message view to handle the item in Pulse
    • publishNotification creates a Message with the above data and send it to Pulse

jBPM User Task or Magnolia Task?

...