Orchestrator utiliza el motor de JavaScript de Rhino de Mozilla 1.7R4. Sin embargo, la implementación de Rhino en Orchestrator presenta algunas limitaciones.

Al escribir scripts para flujos de trabajo, deben tenerse en cuenta las siguientes limitaciones de la implementación de Rhino de Mozilla en Orchestrator.

  • Cuando se ejecuta un flujo de trabajo, los objetos que pasan de un elemento del flujo de trabajo a otro no son objetos JavaScript. Lo que se pasa de un elemento al siguiente es la serialización de un objeto Java que tiene una imagen JavaScript. Debido a esto no se puede utilizar todo el lenguaje JavaScript, solo las clases que están presentes en el Explorador de API. No es posible pasar objetos de función de un elemento de flujo de trabajo a otro.

  • Orchestrator ejecuta el código en elementos de tarea de scripts en un contexto que no es el contexto raíz de Rhino. Orchestrator encapsula de forma transparente las acciones y los elementos de tarea de scripts en funciones de JavaScript, que ejecuta a continuación. Un elemento de tarea de scripts que contenga System.log(this); no mostrará el objeto global this de la misma forma que lo hace la implementación estándar de Rhino.

  • Solo se puede llamar a acciones que devuelven objetos no serializables de scripts, y no de flujos de trabajo. Para llamar a una acción que devuelva un objeto no serializable, se debe escribir un elemento de tarea con scripts que llame a la acción mediante el uso del método System.getModuleModuleName.action().

  • La validación del flujo de trabajo no comprueba si un tipo de atributo de flujo de trabajo es diferente de un tipo de entrada de una acción o flujo de trabajo secundario. Si se cambia el tipo de un parámetro de entrada de flujo de trabajo, por ejemplo de VIM3:VirtualMachine a VC:VirtualMachine, pero no se actualiza ninguna acción o tarea de scripts que use el tipo de entrada original, el flujo de trabajo se valida pero no se ejecuta.