Customization

As well as being an "out of the box" product, Relay can be customized, for example to provide more specific processes.

Adding custom task templates

You can change the task task templates, or processes, that Relay offers to the user.

The processes should be variations on the standard Relay processes. They don't have to use the task step type UI (though most would), but they do have to use the underlying task phases managed through the task step type actions.

Each Relay instance has a library area that contains a process module definition. This is the root definition of everything the module can do.

Each relay project will offer the user a number of templates. The default list is defined in Module Processes. However, you can override this by:

  • Create a Node List with your own list of worker templates.
  • Add an entry to the Relay instances' bindings (in Advanced settings > Bindings) with a reference of processTypesRelay, which points to your list of process templates.

If there is an error in your definitions, it will appear in the process module definition in the Relay instance library area.

Customization changes are managed through derivation, but there are multiple steps involved and each will take its own sweet time to recalculate. If you are impatient, or things are not working, try the following to force changes through:

  • Do a full recalculate on the process module definition in the Relay instance library folder.
  • Recalculate the Client group recalculation trigger in the Advanced settings folder.
  • Refresh the underlying group node (in the process client, Settings, Groups, open the group in a new tab, refresh).
  • Refresh the process client page.

Module extensions

For deeper customisation, it makes sense to create a Relay module extension. This is simply a folder structure with at least three sub-folders:

  • library - your library code
  • settings - user settings
  • data - user data

When you export this structure, you can use the process module definition to install the extension into an instance of Relay. The group profiles in the extension are automatically added to the process module definition.

See Custom template for an example module extension with a custom group and a custom task type. See Patterns for a library of patterns which show how to develop different types of extension.

If you want to productize your customisation, see Module template for a structure that you can copy as a starting point.