4.1

Table Of Contents
Orchestrator Elements that Require Scripting
Not all Orchestrator elements require you to write scripts. To provide maximum flexibility to your applications,
you can customize certain elements by adding JavaScript functions.
You can add scripts in the following Orchestrator elements.
Actions
Actions are scripted functions. You can limit the scripting you write for an
action to a single operation, to maximize the potential for action reuse by other
elements, such as other workflows. Alternatively, an action can contain many
operations, to limit the complexity of workflows, although this does reduce the
capacity for reusing the action.
Policies
You set policies by using scripts that watch for trigger events. When the trigger
events occur, policies launch orchestration operations that you define in scripts.
NOTE Policies are deprecated as of Orchestrator 4.1. Policy development is not
supported in releases of Orchestrator later than 4.1.
Workflows
The Scriptable Task workflow element allows you to write a custom scripted
operation or sequence of operations that you can use in the workflows. You
also define the Boolean decision statement for custom decision elements in
scripts that return either true or false.
Limitations of the Mozilla Rhino Implementation in Orchestrator
Orchestrator implements the Mozilla Rhino 1.6 JavaScripting engine. However, the implementation of Rhino
in Orchestrator presents some limitations.
When writing scripts for workflows, you must consider the following limitations of the Mozilla Rhino
implementation in Orchestrator.
n
When a workflow runs, the objects that pass from one workflow element to another are not Javascript
objects. What is passed from one element to the next is the serialization of a Java object that has a Javascript
image. As a consequence, you cannot use the whole Javascript language, but only those classes that are
present in the API Explorer. You cannot pass function objects from one workflow element to another.
n
Orchestrator runs the code in scriptable task elements in a context that is not the Rhino root context.
Orchestrator transparently wraps scriptable task elements and actions into Javascript functions, which it
then runs. A scriptable task element that contains System.log(this); does not display the global object
this in the same way as a standard Rhino implementation.
n
You can only call actions that return nonserializable objects from scripting, and not from workflows. To
call an action that returns a nonserializable object, you must write a scriptable task element that calls the
action by using the System.getModule
ModuleName
.action() method.
n
Workflow validation does not check whether a workflow attribute type is different to an input type of an
action or subworkflow. If you change the type of a workflow input parameter, for example from
VIM3:VirtualMachine to VC:VirtualMachine, but you do not update any scriptable tasks or actions that use
the original input type, the workflow validates but does not run.
vCenter Orchestrator Developer's Guide
112 VMware, Inc.