Trigger objects monitor event triggers that plug-ins define. For example, the vCenter Server plug-in defines these events as Task objects. When the task ends, the trigger sends a message to a waiting trigger-based long-running workflow element, to restart the workflow.

The time-consuming event for which a trigger-based long-running workflow waits must return a VC:Task object. For example, the startVM action to start a virtual machine returns a VC:Task object, so that subsequent elements in a workflow can monitor its progress. A trigger-based long-running workflow trigger event requires this VC:Task object as an input parameter.

You create a Trigger object in a JavaScript function in a Scriptable task element. The Scriptable task element can be part of the trigger-based long-running workflow that waits for the trigger event. Alternatively, it can be part of a different workflow that provides input parameters to the trigger-based long-running workflow. The trigger function must implement the createEndOfTaskTrigger() method from the vRealize Orchestrator API.

Important: You must define a timeout period for all triggers, otherwise the workflow can wait indefinitely.

Prerequisites

    • Create a workflow.
    • Open the workflow for editing in the workflow editor.
    • Add some elements to the workflow schema.
  • In the workflow, declare a VC:Task object as a variable or input parameter, such as a VC:Task object from a workflow or workflow element that starts or clones a virtual machine.

Procedure

  1. Drag a Scriptable task element from the Generic menu in the left pane to the workflow schema.
    One of the elements that precedes the Scriptable task must generate a VC:Task object as its output parameter.
  2. Click the Scriptable task element.
  3. Enter a name and description for the trigger in the Details properties tab in the right pane.
  4. Click the Inputs/Outputs tab.
  5. Select or create an input variable of the type VC:Task.
    This VC:Task object represents the time-consuming event that another workflow or element starts.
  6. (Optional) Select or create an input parameter of the Number type to define a timeout period in seconds.
  7. Create an output parameter with the following properties.
    1. Create the Name property with the value trigger.
    2. Create the Type property with the value Trigger.
    3. Click Create.
  8. Define any exception behavior in the Exception handling menu.
  9. On the Scripting tab, define a function to generate a Trigger object.

    For example, you can create a Trigger object by implementing the following JavaScript function.

    trigger = task.createEndOfTaskTrigger(timeout);

    The createEndOfTaskTrigger() method returns a Trigger object that monitors a VC:Task object named task.

  10. Click Save and confirm your selection.

Results

You defined a workflow element that creates a trigger event for a trigger-based long-running workflow. The trigger element generates a Trigger object as its output parameter, to which a Waiting Event element can bind.

What to do next

You must bind this trigger event to a Waiting Event element in a trigger-based long-running workflow.