How to Create Event Workflow

Aim of this section

Shows how to create or edit an event workflow. 

Related sections

Event Workflows (Reference Manual)

Required permissions

Partition Event Orchestration - use

Steps:

  1. Make sure the required event types are enabled at your partition.

  2. Check out the general event configuration in PlatformManager. Especially pay attention to the MQ field: if it is empty, the setting is taken from the instance and it will most likely point to the PROD instance of RabbitMQ (which can only see events from PlatformManager PROD but not QA).

  3. Go to Account > Event Workflows > Workflows. 

  4. Click Create Event Workflow.

  5. Fill in the following fields: 

    • Enter Workflow name of your choice and Description (optionally).

    • In Execution order define the priority of the workflow. The higher number, the higher priority. This can be handy if there are more workflows with listeners for the same event.

    • In Global Timeout define in how many minutes the event workflow should be cancelled if it was not executed.

    • In Workflow Type select one of the following:

      • Single-source – The workflow takes place within a single entity (e.g. partition).

        • Source Type: Select Partition, Integration, or PFM.

        • Source Name: Select the source name. This will be displayed under the Target column in the Event Orchestration > Workflows table.

      • Multi-source – Allows for the combination of events/actions in multiple entities (partitions or integrations).

  6. Define one or more listeners. If multiple listeners are defined, they are executed in the given order when a previous action is done (driven by events). A listener can depend on an event from the previous listener. The listener can consist of a group of events.
    To add a listener:

    • Click Add Listener and go through the following steps:

      • General step:

        • Fill in Listener name of your choice and Description (optionally).

        • In Listener Timeout define in how many minutes the listener should be cancelled if it was not executed.

      • Source step – Here you define one or more events which should trigger the listener. You can use a filter to make a more specific selection. You can also set up timeout and delayed trigger for the events.

        • Click Add Source Event.

        • Select Source Type (either Partition, Integration, or PFM) and Source Name (specific partition or IM instance). 

        • Select which Event Type should trigger an action.

          • At a partition, not all events happening there are supported, so always check out this list here first. 

          • For integrations, only custom events (intentionally emitted by custom code in a route) can be selected.

        • Optionally apply a Filter to the event records. It can be a multi-expression. Use a JSONPath value in the Parameter field. The JSON can be different for each use case—see the log to find out the correct values, for example $.jobName, $.trackerType, $.status.
          Example of the filter expression:

          filters01 .png

           

        • If there are multiple Source Events, define what Source Event Combination Logic should be used:

          • All – The listener waits until all defined events are received and then continues with the action.

          • One of – The listener continues with the action as soon as any of the defined events is received.

        • Timeout – Specifies time between the first and last event in case of the "All" option for Source Events. If this timeout is exceeded, the listener will stop waiting for events and the current workflow run will be terminated.

        • Delayed trigger – If a delay is specified, the workflow will wait for the selected amount of time before processing begins. This delay will start when the first event is received.

        • Wait for the event from the previous step – If checked, the listener becomes dependent on an event from the previous listener. This option is available only for the second and subsequent steps.

      • Action step – Here you define where the triggered action should take place. The action will be triggered with an empty payload as default. You can define a custom payload if needed. Multiple actions (with different targets) can be defined within one listener.

        • Select Target Type (either Partition or Integration) and Target Name (specific partition or IM instance).

        • In Action Type define what should happen at the target partition / IM instance.

          • Options for a partition:

            • If Logic is selected, in Action ID select a logic from the target partition to run.

            • If Calculation is selected, in Action ID select a Calculation Field Set (CFS) from the target partition to run. (Support for other types of calculation will be added in future releases.)

            • If Dataload is selected, in Action ID select a Data Load from the target partition to run.

            • If Calculation Flow is selected, in Action ID select a Calculation Flow from the target partition to run. The Calculation has to be already created in the Pricefx app (Administration > Configuration > System Configuration > Calculation Flows).

            • If PFM Workflow is selected, choose a workflow from the target partition in the Action ID field to execute.

            • If Data Download is selected, choose a download from the target partition in the Action ID field to start.

          • Options for an IM instance:

            • If Route is selected, in Action ID select a route from the target IM instance. The route must be of the type direct.

              Listener01.png

               

  7. Click Finish Listener.

If you want to send events to RabbitMQ and consume them using Event Workflow, you need to use RabbitMQ PROD instance. (RabbitMQ QA consumes PlatformManager QA and cannot see events from PlatformManager PROD.)


When the workflow is then triggered, it is displayed in the Running Workflows section in Event Workflows. This is where you can manually stop the workflow if needed.

PlatformManager version 1.75.0