Ejecución

Conjunto de comandos del grupo Básicos relativos a la ejecución procesos.

Ejecutar proceso

Comando de instrucción del grupo ejecución que ejecuta el proceso especificado en el parámetro.

Origen de la instrucción: cualquiera.

Destino del subproceso: la salida de subproceso llamado; si éste no tiene salida, el destino será el del origen de la línea de proceso donde se ha usado este comando.

Parámetros

Identificador del proceso

Proceso a ejecutar. Podremos elegir entre los procesos cuyo origen coincida con el origen de la línea y aquellos que no tengan origen.

Modo de ejecución

En este parámetro seleccionaremos en qué plano será ejecutado el proceso a ejecutar. Las opciones posibles son:

1º plano: local. El subproceso será ejecutando en la misma máquina y en el mismo plano que el proceso principal. Es decir, si el proceso llamador es en 1º plano, el subproceso será ejecutado también en 1º plano, si el proceso principal es multitarea, el subproceso será también ejecutado en multitarea. El proceso principal se detendrá mientras el que subproceso no haya terminado, no continuará el proceso principal.

2º plano: local multitarea (no espera retorno). El subproceso será ejecutando en multitarea, es decir, el subproceso será lanzado y su ejecución será paralela a la del proceso principal pues éste no esperará a que el subproceso finalice.

3º plano: servidor. El subproceso será ejecutando en el servidor. El proceso principal se detendrá mientras el que subproceso no haya terminado, no continuará el proceso principal.

4º plano: servidor (no espera retorno). El subproceso será ejecutando en una cola en el servidor y su ejecución será paralela a la del proceso principal pues éste no esperará a que el subproceso finalice. Los procesos disparados en 4º plano son ejecutados en una cola secuencialmente.

Identificador de variable local booleana de retorno de Ok (opcional)

En este parámetro declararemos una variable local de tipo booleano que recogerá si el proceso llamado ha terminado ok (1) o no. Si en un proceso ejecutado con este comando se ejecuta el comando set retorno proceso = NO, esta variable local de retorno valdrá 0.

Identificador de variable local de retorno (opcional)

No es funcional en la versión actual. En el caso de que queramos llamar un proceso desde otro y obtener desde el llamador un dato, entonces lo recomendable es ejecutarlo usando comandos de objetos.

Con el comando crear manejador de objeto crearemos una instancia del proceso a llamar.

Si el proceso a ejecutar tiene origen ficha o lista, le pasaremos la ficha o lista a procesar con los comandos añadir ficha al objeto o añadir lista al objeto, respectivamente.

Si queremos asignar algún valor a una variable local del proceso a ejecutar, lo asignaremos con el comando set variable local del objeto.

Para ejecutar el proceso usaremos el comando disparar objeto.

Para leer el valor de una variable local del proceso ejecutado una vez lanzado, usaremos el comando get variable local de objeto.

Identificador de cola

Para procesos ejecutados en multitarea (2º plano). Si en nuestro proyecto hemos definido cola de proceso, en este parámetro podremos indicar en qué cola será lanzado.

Funcionalidad

Comando de instrucción del grupo ejecución que ejecuta el proceso especificado en el parámetro. Si no vamos a necesitar procesar nada de lo realizado por el subproceso entonces éste podrá ser llamado en cualquiera de los modos que no esperan retorno.

Comentarios

Este comando de instrucción genera un subproceso. El origen de dicho subproceso de la salida definida en el proceso ejecutado. En el caso de que el proceso ejecutado no tenga declarada salida alguna, el origen del subproceso será el mismo que el de la línea donde se ha usado este comando.

Si en el proceso llamado se ejecuta el comando de instrucción de proceso Set retorno proceso = NO, dicho subproceso no será ejecutado.

Debemos tener en cuenta que, si en un proceso ejecutado en tercer plano, una instrucción del mismo dura más de 10 minutos, hará que el proceso no pueda reportar al llamador que continúa ejecutándose, por lo que se desenganchará y se deshará.

Ejemplo

Ejecutamos desde un proceso un proceso en cuarto plano para borrar los registros de la tabla.

Rem ( Ejecutar proceso de borrado de la tabla temporal en cuarto plano )
Ejecutar proceso ( PRO_BORR_TMP_TMP_SRV@ejemplo_dat, 4º plano: servidor (asíncrono), , ,  )
    Libre

Ejecutar script (filescript)

Comando de instrucción del grupo ejecución que permite ejecutar un script declarado en el proyecto actual o en proyectos heredados en el contexto de un proceso.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Senda del fichero script

Senda del fichero de script a ejecutar.

Funcionalidad

Permite seleccionar un script declarado en el proyecto actual o en proyectos heredados y ejecutarlo en el contexto de un proceso, con lo que tendrá acceso a objetos tales como theRoot, theRegisterIn en caso de tener origen ficha y theRegisterListIn en caso de tener origen lista. Además, en theRegisterIn podremos leer y escribir en la ficha en memoria en ese punto del proceso.

Con este comando podemos integrar scripts de forma más sencilla al no requerir crear objetos proceso con el origen adecuado para su ejecución, facilitando el desarrollo con scripts.

Comentarios

Los scripts ejecutados con este comando de instrucción de proceso no podrán ser depurados por el depurador de procesos JavaScript.

Este comando hace uso del motor nuevo Javascript, el mismo motor del que hacemos uso en QML, y que admite EcmaScript7 y está optimizado para una ejecución con menos consumo de recursos y más rápida.

Podemos forzar a que se ejecute el motor anterior añadiendo la siguiente clave en el registro del sistema operativo de la máquina donde esté instalado Velneo vServer:

Si la máquina es Windows y el servicio vatp está asociado a la cuenta de un usuario, en la clave HKEY_CURRENT_USER\SOFTWARE\Velneo\beta debemos crear una entrada de tipo alfanumérico con nombe noEjecutarScriptJSEngine y con valor 8955FD8E64ADCD14444BFE793E1AEB0F0D04F009.

Si el servicio está asociada a la cuenta de sistema local, la entrada la crearemos en la clave HKEY_LOCAL_MACHINE\SOFTWARE\Velneo\beta.

En Linux:

General a la máquina, en el fichero /etc/xdg/Velneo/beta.conf

En un usuario, en el fichero /home/usuario/Velneo/.config/beta.conf

Si tenemos la clave configurada, al ejecutar un script en tercer plano la primera vez se mostrará el siguiente mensaje en el panel de salida de mensajes de Velneo vAdmin:

Funcionalidad beta activada: noEjecutarScriptJSEngine, Descripción: Desactiva el nuevo motor QJSEngine en Ejecutar Script en 3º plano (Servidor).

Admite el uso de las siguientes clases con new:

Las siguientes clases no están disponibles en este comando de instrucción de proceso:

XMLHttpRequest

VByteArray (Se puede usar, como retorno de funciones, pero no crear)

VClipboard

Ejemplo

Rem (Este proceso ejecuta un fichero JavaScript declarado en el proyecto en curso)
Ejecutar script(filescript) ( (CurrentProject)/js/importador ficheros/ImportacionASCII.js )

Establecer marco

Comando de instrucción del grupo ejecución que nos permite establecer un marco al ejecutar la aplicación con Velneo vClient.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador del marco

Marco a establecer. Podremos usar cualquier marco del proyecto de aplicación en curso o de cualquier proyecto heredado.

Identificador de variable local booleana de retorno de ok (Opcional)

Declaración de una variable local al objeto, de tipo booleana, donde se retornará si el marco ha sido establecido (1) o no (0).

Funcionalidad

Comando de instrucción del grupo ejecución que permite establecer un marco al ejecuta el proceso con Velneo vClient.

Comentarios

Este comando de instrucción solamente podemos usarlo en el proceso ON_INIT_CLIENT de un proyecto de aplicación.

Ejemplo

If ( sysIsAdministrator )
    Establecer marco ( SUPERVISOR@miapp,  )

El proceso anterior comprueba si el usuario que ejecuta la aplicación es administrador. En caso afirmativo, establece el marco llamado SUPERVISOR.

Interfaz: ejecutar manejador de evento

Comando de instrucción del grupo ejecución que desde un evento de interfaz de un objeto permite ejecutar otro evento declarado en el mismo.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de evento-slot

En este parámetro seleccionaremos el evento a ejecutar.

Identificador de variable local booleana de retorno de ok (Opcional)

Declaración de una variable local al objeto, de tipo booleana, donde se retornará si el evento ha sido ejecutado (1) o no (0). Si en un manejador de evento ejecutado con este comando se ejecuta el comando set retorno proceso = NO, esta variable local de retorno valdrá 0.

Funcionalidad

Este comando permite disparar desde un evento de interfaz de un objeto otro evento declarado en el mismo.

Este comando solamente puede ser usado en manejadores de evento de objetos de tipo vista (formularios y objetos de lista), pero no del marco principal del proyecto (AUTOEXEC),

Solamente permite disparar eventos del objeto en curso, no siendo posible disparar eventos incluidos en sus sub-objetos.

Ejemplo

Desde un manejador de eventos de un formulario ejecutamos otro manejador de eventos REF.

Rem ( Ejecutamos el manejador de carga de datos de datos en la rejilla )
Interfaz: ejecutar manejador de evento ( REF,  )

Última actualización