Skip to content

Scripts

En esta sección se pueden gestionar los scripts, editarlos y activarlos o desactivarlos. Los scripts desactivados no tienen efecto, ni se evalúan en ninguna forma.

En el capítulo Scripting se explican los principios de programación de scripts en adquio.

Para revisar el log (registro de errores o avisos) de un script, debe entrra en su formulario de edición. En el apartado de Logs podrá seleccionar cuántas líneas mostrar y pulsar el botón de refresco en cualquier momento para actualizar la vista con nuevas líneas de registro.

Los scripts que contengan errores no manejados (incluído el acceso a dispositivos fuera de servicio) generarán alertas automáticas informando del error.

La sección de scripts muestra una sección por cada tipo de script soportado, en el capítulo Tipos de scripts y bloques autogenerados se explican las diferencias entre cada tipo.

El botón de recuadro, debajo del icono de ayuda, sirve para activar el modo pantalla completa. De esta forma se puede trabajar con más espacio y tener una visión más global de scripts largos.

Contexto y variables disponibles

Para conocer las funcionalidades que se pueden ejecutar, el editor de scripts de adquio incluye un panel de ayuda y un sistema de sugerencias en constante mejora.

Ayuda de los scripts

Pulsando el botón de interrogación en la esquina derecha superior del editor de scripts se despliega el panel de ayuda. Una vez pulsado, el icono cambia a una cruz, que sirve para ocultar de nuevo el panel lateral de ayuda.

Icono de ayuda contextual

Este panel se compone de dos secciones:

Objetos y funciones: Se trata de métodos y objetos accesibles desde cualquier lugar de los scripts de forma global. Por ejemplo, cada vez que escriba logger se estará refiriendo a la instancia de tipo Logger global, de igual modo, cada vez que escriba formula estará llamando a la función global que genera una nueva fórmula.

Para conocer qué opciones tiene un objeto, puede pulsar sobre la indicación de su tipo (Indicada entre < y >) o buscar la definición del tipo en la sección Tipos.

Las funciones se pueden diferenciar de los objetos porque, en lugar de un tipo, van seguidas de la especificación de parámetros que requieren y, en algunos casos, el tipo de valor que devuelven.

Pasando el cursor sobre los nombres de las funciones y objetos, puede ver una descripción y explicación de su uso.

Tipos: El listado de tipos indica todos los tipos implicados en los scripts de adquio. Estos tipos no se pueden utilizar directamente, pero son una ayuda para conocer los objetos y funciones disponibles en cada momento.

En algunos lugares aparecerán resaltados en otro color los tipos: en la sección de Tipos y en la definición de objetos y funciones. Al pulsar sobre ellos el panel pasará a mostrar la definición de este tipo. El icono de cierre pasa a ser una flecha y cuando lo pulse volverá a la sección principal de la ayuda.

Tipado en la ayuda

La nomenclatura de tipado sigue reglas similares al lenguaje tipado TypeScript, a continuación se resumen la sintaxis.

  • El tipo de un campo, objeto o función va al final de la definición, siguiendo a dos puntos :.
  • Los parámetros de una función se encierran entre paréntesis y se separan con coma ,, de forma análoga a cómo se utilizan al llamar a la función.
  • Un parámetro a su vez puede definir un tipo con dos puntos seguidos el tipo.
  • Cuando un parámetro finaliza en interrogación (?), se trata de un valor opcional.

Los tipos pueden ser a su vez:

  • Tipos básicos de JavaScript: string, number o boolean.
  • any correspondiente a cualquier tipo.
  • Timpos compuestos, separados por |, indicando los distintos tipos base que puede tomar el valor. Por ejemplo string | number representa un valor que puede ser tanto string como number.

Autocompletado y asistente

En algunos puntos, la interfaz de adquio puede recomendarle cómo continuar o qué funciones hay disponibles tras un elemento.

Para hacer uso de esta función, pulse control y espacio simultáneamente. Si se puede reconocer por el contexto las opciones disponibles, aparecerá un emergente debajo del cursor. Utilice las flechas arriba y abajo para seleccionar una opción y enter o intro para seleccionar una opción.

Alertas de sintaxis

El editor incluye un analizador de sintaxis y semántica de ES (linter). Aunque el analizador no es infalible, sí es muy útil prestar atención a las alertas que genera. Estas alertas incluyen usos correctos pero no recomendados por ser ambiguos o potencialmente fuentes de errores (recomendaciones sobre estilo del código, reutilización de variables, etc.).

Cuando el linter encuentre un error aparecerá marcado en rojo, subrayando la parte de código afectada y un círculo rojo de error aparece a la izquierda del número de línea afectada.

Editor mostrando un error por faltar el paréntesis de cierre. Editor mostrando un error por faltar el cierre de función

Igualmente, cuando se produzca una alerta que no es necesariamente un error sintáctico, se subraya el código afectado en amarillo y aparece un triángulo de alerta en la línea afectada.

Editor mostrando una alerta al intentar acceder a console, que no está definido. Editor mostrando una alerta ya que console no está definido

Pasando el cursor por encima del icono de advertencia puede leer los errores activos en la línea.

Scripts de eventos

Para crear scripts de eventos, se tiene que hacer desde la pestaña de Programación. En las pestañas de Eventos Programados o Eventos Periódicos.

En cada evento de la tabla, existe la opción Gestionar Scripts que abre una modal con el listado de scripts de evento asociados al evento seleccionado.

Los scripts de evento se editan de igual forma que los genéricos, solo hay que tener en cuenta que se autogeneran bloques de código, sin necesidad de instanciar el manejador de evento manualmente, por ejemplo, cuando se genera un script para un evento programado, aparecerá un script de la siguiente forma:

"use strict";
// Bloque "Main" editable por el usuario

events.addListener({ "eventName": "Timer", "timerObject": "Schedule", "timerName": "****" /* Nombre del evento programado */, "timerEvent": "StartSchedule" }, async (event) => {
// Bloque "StartSchedule" editable por el usuario
});

events.addListener({ "eventName": "Timer", "timerObject": "Schedule", "timerName": "****" /* Nombre del evento programado */, "timerEvent": "EndSchedule" }, async (event) => {
// Bloque "EndSchedule" editable por el usuario
});

Registro del script

El log del script es accesible en el formulario de edición de un script ya creado (no está disponible en el de creación, ya que no existe todavía ese script y, por tanto, no tiene aún ningún registro).

Debajo del código del script encontrará la sección de Logs del script donde se registran todos los eventos con su fecha y hora y la importancia que tengan. Estos eventos son tanto errores y alertas generadas por el sistema y las utilidades empleadas dentro del script como las líneas donde el desarrollador del script haya utilizado los métodos de logger.

Selector de número de líneas y botón de refrescar

En la esquina superior derecha de la sección de Logs del script encontrará un selector de número de líneas a mostrar. Tenga en cuenta que si selecciona un número demasiado alto podrían tardar mucho en recibirse y mostrarse en su equipo. El cuadro de texto de logs se actualiza en cuanto cambie la selección de líneas a mostrar.

Al lado del selector de líneas a mostrar, encontrará el botón de refrescar. Utilice este botón para saber si el script ha generado nuevos logs desde la última vez que se refrescó la vista (ésto ocurre automáticamente cuando carga la edición del script o cuando cambia el parámetro de número de líneas a mostrar).