Skip to main content

Overview

Workflow extensions allow the possibility for Red App to extend existing logic in the SR360 workflow with new features.

This is done by exposing specially defined extension points which can be used by Red App to contribute its logic to it. Workflow extension is a point in flow which is executed like any ordinary task, however, unlike an ordinary task, it does not have its own logic inside. Instead, its logic is delivered by Red App by registering its handler to the chosen flow extension point. For example, the Red App can invoke a service and based on the response decide whether the flow should continue or not. Customization is optional, so if there is no contributor registered, this step in the workflow is skipped.

It is not possible to define own data structures. The only data that are available in the extension is the one passed via method parameter.

Find out samples that presents examples of using workflow extension points here: Examples

New data Flow

  1. Front-end sends the command.

  2. The command is received by back-end.

  3. The command payload is transformed from JSON to Java Objects.

  4. The workflow is assigned to command starts.

  5. The execution of the workflow lasts until the extension point is reached.

  6. The workflow executor checks if any handler is registered to the workflow extension point.

  7. If there is no handler registered to the workflow extension point, the workflow execution goes on.

  8. If any handler is registered to the extension point, then the workflow is interrupted. Command flow and its payload are converted to available for Red App counterparts.

  9. The Red App handler registered to the workflow extension point invokes logic.

  10. Modifications done by the handler on flow data are merged back to the original command flow and its payload.

  11. Next workflow execution goes on.

  12. The workflow command with the results is transformed to JSON. Data added by the Red App handler is transformed to JSON by using the Red App data model.

  13. Front-end displays the result data accordingly. Simple text is being displayed in the SR360 editor and complex data model is being shown by the Web Module.

image195

Important thing is that If one of the handlers returns ABORT status then no other registered handlers will be executed.

Time-out

You can declare your own time out for actions in extension point. It is described in seconds and it has to be a numeric value between 1 (including) and 1500 (including). Any other value will be ignored and default timeout will be applied (3 minutes). When this maximum execution time is exceeded, then the handler will be terminated and workflow will be canceled.

Additionally, default timeout action can be specified, allowed values are CONTINUE and ABORT. Anything different will be ignored and default action will be applied (CONTINUE).