Uso de Groovy dentro de scripts
El código de Groovy se puede incorporar en los scripts mediante el tipo de paso Miembros de Groovy. Para cada script con código de Groovy, existirá una única clase creada mediante la concatenación de todos los pasos de tipo Miembros de Groovy.
Por seguridad, las clases de Java del producto y de terceros disponibles para los scripts de Groovy se encuentran restringidas. Las clases base permitidas se pueden ver en el visor de documentos de Java de Groovy mediante el enlace 'Ver documentos de Java en Groovy' en la zona de consejos de scripts sensible al contexto. La lista de clases de terceros permitidas se puede consultar mediante el enlace 'Ver lista de permitidos de Groovy de terceros' de la zona de consejos de scripts.
Motor de scripts de Groovy
Los scripts que se llaman desde Java y están escritos por completo en Groovy deberán utilizar una versión de motor de scripts de Groovy. El sistema procesa este tipo de scripts de una forma similar al código escrito en Java. De esta forma, evita la necesidad de convertir el script del/al formato XML y permite el uso de un código que actúa de forma directa en los objetos del sistema, con la correspondiente ventaja en lo que respecta al rendimiento.
Los tipos de script siguientes soportan la versión de motor de Groovy:
Scripts de plug-in
Los scripts de plug-in se pueden configurar para utilizarse con el motor de Groovy si contienen exclusivamente tipos de paso basados en Groovy. El sistema incluye una superclase generada de forma automática que define la API de hueco de plug-in. De forma interna, el código de Groovy debe adaptarse a las convenciones del sistema para tipos de algoritmos basados en Java, incluido el método de 'llamada', que será el punto de entrada del plug-in, así como la definición de parámetros 'flexibles' mediante anotaciones.
Scripts de biblioteca de Groovy
Los scripts de biblioteca de Groovy ofrecen la posibilidad de crear grupos de rutinas comunes, escritas en Groovy, a las que se puede llamar desde otros scripts. Este tipo de scripts debe incluir un tipo de paso único de Interfaz de biblioteca de Groovy, donde se enumerarán los métodos disponibles públicamente en la biblioteca. El código de soporte para estos métodos se define en uno o varios tipos de paso Miembros de Groovy dentro del script de biblioteca. Los métodos que se definen en la biblioteca pueden aceptar argumentos y devolver valores de cualquier tipo. Por defecto, los scripts de este tipo utilizan el motor de Groovy y no pueden incluir los tipos de paso de scripts.
Los scripts que necesiten llamar a métodos de una biblioteca de Groovy pueden utilizar el método createLibraryScript, que incluye el sistema, para generar la instancia de la interfaz de biblioteca. Asegúrese de que la clase de la instancia incluye la extensión de nombre de fichero .class.
Llamada a Groovy dentro del motor de scripts
Si un script de plug-in o de servicio se configura para el uso de una versión de motor de scripts, podrá incluir una combinación de tipos de paso Miembros de Groovy y normales. Los tipos de paso de script definirán el proceso que se va a ejecutar. Los pasos de tipo Miembros de Groovy contienen un código al que se puede llamar desde los tipos de paso Editar datos dentro del script, utilizando el comando invokeGroovy. El uso de este comando solo se soporta en métodos de Groovy que no reciban argumentos y se devuelvan nulos. Para obtener más detalles, consulte la sección de pasos de edición de datos.
En el caso de los scripts que utilizan esta opción, el marco incluye una superclase que contiene los métodos que soportan acciones de scripts comunes como, por ejemplo, comandos de movimiento, evaluación de cadenas y métodos para llamar a objetos de negocio, servicios de negocio y scripts de servicio. Para obtener detalles sobre los métodos soportados, consulte los documentos de Java específicos de Groovy.
Importación de clases de Groovy
Todas las clases de Groovy que utiliza el script deben declararse de forma explícita en un tipo de paso Importaciones de Groovy. Al guardar un script, si el sistema localiza clases a las que se hace referencia en el script y no se han declarado de forma explícita, emitirá un aviso y añadirá de forma automática las sentencias de importación para las clases. Los escritores de scripts deben revisar las importaciones para confirmar que corresponden a las clases correctas (en caso de que exista una clase con el mismo nombre en dos paquetes distintos).
Compatibilidad con versiones anteriores
En versiones anteriores, el sistema no necesitaba importaciones explícitas e incluía la lógica para importar de forma automática todas las clases a las que se podía llamar, disponibles en Groovy en tiempo de ejecución. En el caso de que exista un script que no declare de forma explícita las importaciones, el sistema retrocederá para importar todas las clases que puedan llamarse en tiempo de ejecución. No obstante, es recomendable identificar y actualizar estos scripts, ya que no siguen la práctica recomendada.
El sistema incluye un programa por lotes F1-CAGVY que notifica todos los scripts que necesitan el paso de importación automática para su correcta compilación. Además, este programa por lotes resulta útil cuando la versión de Groovy se actualiza, para detectar de forma proactiva posibles incidencias de compilación de scripts existentes que puedan haberse producido por los cambios en Groovy. Se recomienda a las implantaciones que ejecuten este programa por lotes a corto plazo con el fin de identificar y corregir los scripts donde falten importaciones explícitas, así como para detectar actualizaciones de la versión de Groovy, para revisar scripts de la implantación que deban notificarse.