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,但您卻未更新任何使用原始輸入型別的可編寫指令碼工作或動作,則該工作流程會驗證但不執行。