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's 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. This 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 Orchestrator API.

Important

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

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 an attribute or input parameter, such as a VC:Task object from a workflow or workflow element that starts or clones a virtual machine.

1

Drag a Scriptable Task element from the Generic menu into the schema of a workflow.

2

Link the Scriptable Task element to the elements that precede and follow it in the workflow schema.

One of the elements that precedes the Scriptable Task must generate a VC:Task object as its output parameter.

3

Click the Scriptable Task element to show its properties tabs in the bottom half of the Schema tab.

4

Provide a name and description for the trigger in Info properties tab.

5

Click the IN properties tab.

6

Right-click in the IN tab and select Bind to workflow parameter/attribute.

The input parameter selection dialog box opens.

7

Select or create an input parameter of the type VC:Task.

This VC:Task object represents the time-consuming event that another workflow or element launches.

8

(Optional) Select or create an input parameter of the Number type to define a timeout period in seconds.

9

Click the OUT properties tab.

10

Right-click in the OUT tab and select Bind to workflow parameter/attribute.

The output parameter selection dialog box opens.

11

Create an output parameter with the following properties.

a

Create the Name property with the value trigger.

b

Create the Type property with the value Trigger.

c

Click Create ATTRIBUTE with same name to create the attribute.

d

Leave the value as Not set.

12

Define any exception behavior in the Exceptions properties tab.

13

Define a function to generate a Trigger object in the Scripting tab.

For example, you could 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.

14

Click Save at the bottom of the workflow editor.

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.

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