Orchestrator 使用 Mozilla Rhino 1.7R4 JavaScript 引擎。但是,在 Orchestrator 中实现 Rhino 却存在一些限制。

为工作流编写脚本时,您必须考虑以下在 Orchestrator 中实现 Mozilla Rhino 的限制。

  • 当工作流运行时,从一个工作流元素传递到另一个工作流元素的对象不是 JavaScript 对象。传递到下一元素的是具有 JavaScript 映像的 Java 序列化对象。因此,您无法使用完整 JavaScript 语言,只能使用 API Explorer 中存在的类。您无法将函数对象在工作流元素之间传递。

  • Orchestrator 在不是 Rhino 根上下文的上下文中以可编辑脚本任务元素的形式运行代码。Orchestrator 将可编辑脚本任务元素和操作以透明方式封装到 JavaScript 函数,随后运行该函数。包含 System.log(this); 的可编辑脚本任务元素不会像标准 Rhino 实现那样显示全局对象 this

  • 您仅可以调用从脚本而非工作流返回不可序列化对象的操作。若要调用返回不可序列化对象的操作,您必须使用 System.getModuleModuleName.action() 方法编写可调用此操作的可编辑脚本任务元素。

  • 工作流验证不会检查工作流属性类型是否与操作或子工作流的输入类型不同。如果更改工作流输入参数的类型(例如从 VIM3:VirtualMachine 更改为 VC:VirtualMachine),但未更新使用原始输入类型的任何可编辑脚本任务或操作,则工作流会进行验证但不会运行。