Orchestrator verwendet die Mozilla Rhino 1.7R4-JavaScript-Engine. Die Implementierung von Rhino in Orchestrator birgt jedoch einige Einschränkungen.

Beim Schreiben von Skripts für Workflows müssen Sie die folgenden Einschränkungen der Mozilla Rhino-Implementierung in Orchestrator berücksichtigen.

  • Wenn ein Workflow ausgeführt wird, handelt es sich bei den Objekten, die von einem Workflow-Element zum nächsten weitergegeben werden, nicht um JavaScript-Objekte. Es wird die Serialisierung eines Java-Objekts mit einem JavaScript-Bild von einem Element zum nächsten weitergegeben. Folglich können Sie nicht die ganze JavaScript-Sprache verwenden, sondern lediglich die im API-Explorer vorhandenen Klassen. Sie können Funktionsobjekte nicht von einem Workflowelement an das nächste weitergeben.

  • Orchestrator führt den Code in skriptfähigen Aufgabenelementen in einem anderen Kontext als dem des Rhino-Root-Kontexts durch. Orchestrator umhüllt skriptfähige Aufgabenelemente und Aktionen transparent mit JavaScript-Funktionen und führt diese dann aus. Ein skriptfähiges Aufgabenelement, das System.log(this); enthält, zeigt das globale Objekt this nicht auf dieselbe Weise an wie eine standardmäßige Rhino-Implementierung.

  • Sie können nur Aktionen aufrufen, die nicht serialisierbare Objekte aus dem Skript und nicht aus Workflows zurückgeben. Um Aktionen aufzurufen, die ein nicht serialisierbares Objekt zurückgeben, müssen Sie ein skriptfähiges Element schreiben, das die Aktion mithilfe der Methode System.getModuleModuleName.action() aufruft.

  • Bei der Workflowvalidierung wird nicht überprüft, ob sich ein Workflow-Attributtyp vom Eingabetyp einer Aktion oder eines untergeordneten Workflows unterscheidet. Wenn Sie den Typ eines Workfloweingabeparameters zum Beispiel von VIM3:VirtualMachine in VC:VirtualMachine ändern, aber keine skriptfähigen Aufgaben oder Aktionen aktualisieren, die den ursprünglichen Eingabetyp verwenden, führt der Workflow die Validierung durch, wird aber nicht ausgeführt.