VProcess
La clase VProcess representa un proceso en ejecución. Nos permite ejecutar procesos. Construimos un objeto VProcess pasándole el objeto VRoot en curso y le indicamos el proceso a ejecutar con la función setProcess. Una vez inicializado el objeto ya podemos usar el resto de funciones (salvo result): le pasamos un registro (setRegisterIn) o una lista de registros (setRegisterListIn) en función del tipo de entrada del proceso y también el contenido a las variables locales del proceso con setVarLocal (si lo requiere) y la ejecutamos con la función exec. Ahora ya podemos recoger los resultados con la función result, que nos devuelve un objeto nulo, un objeto de la clase VRegister o un objeto de la clase VRegisterList en función del tipo de salida del proceso.
Constructor
Función |
De operaciones
Inicialización
Retorno | Función |
void | |
Boolean | |
Boolean |
De variables locales
Retorno | Función |
void | |
void | |
void | |
void | |
void | |
void | |
void | |
Boolean | |
Date | |
DateTime | |
Number | |
Number | |
String | |
Time |
Runmode (Modos de ejecución)
- RunInThisThread = 0
- RunInNewThread = 1
- RunInServer = 2
- RunInServerAsync = 3
Crea una instancia de objeto de la clase VProcess. Debe ejecutarse la función setProcess() para asignarle el proceso a ejecutar.
Parámetros:
Ejecuta el proceso y devuelve true si finaliza correctamente y false en caso contrario. Los parámetros de la función son opcionales. Si no se especifican el proceso se ejecutará en el mismo hilo que el proceso JavaScript que lanza la función. Si deseamos especificar el segundo parámetro para indicar la cola de ejecución, obligatoriamente debemos especificar el primero (modo de ejecución). Si se especifica una cola de ejecución el proceso se lanzará a través de dicha cola, esto es válido para procesos que se ejecuten en segundo plano, RunInNewThread.
Parámetros:
- nRunIn: modo de ejecución. Ver enum de modos de ejecución. Por defecto, RunInThisThread.
- szIdRefCola: identificador de referencia (Alias/Identificador) de un objeto Cola de procesos.
Los valores del enum de modos de ejecución son:
- RunInThisThread: se ejecuta en el mismo hilo en el que está el proceso JavaScript ejecutándose. Equivale a la ejecución en primer plano.
- RunInNewThread: se ejecuta en un nuevo hilo. Equivale a la ejecución en segundo plano.
- RunInServer: se ejecuta en el servidor. Equivale a la ejecución en tercer plano.
- RunInServerAsync: se ejecuta en nuevo hilo en el servidor. Equivale a la ejecución en 4º plano.
Fija el proceso que se asocia al objeto.
Parámetros:
- szIdRefProcess: cadena que contiene el identificador referencia (IdRef=Alias_Proyecto/Id_Proceso) del proceso.
Añade una ficha o registro al proceso. Esta es la forma de alimentar el registro para un proceso de origen ficha.
Parámetros:
- registerIn: objeto de la clase VRegister que alimentará el registro de entrada (theRegisterIn) del proceso.
Añade una lista de registros al proceso. Esta es la forma de alimentar la lista de registros para un proceso de origen lista.
Parámetros:
- registerListIn: objeto de la clase VRegisterList que alimentará la lista de registros de entrada (theRegisterListIn) del proceso.
Asigna el contenido a una variable local del proceso de tipo booleana.
Parámetros:
- szId: identificador de la variable local.
- bValor: booleano, 0 ó 1, true o false.
Asigna el contenido a una variable local del proceso de tipo fecha.
Parámetros:
- szId: identificador de la variable local.
- date: fecha.
Asigna el contenido a una variable local del proceso de tipo tiempo, fecha y hora.
Parámetros:
- szId: identificador de la variable local.
- dt: tiempo, fecha y hora.
Asigna el contenido a una variable local del proceso de tipo numérica, double.
Parámetros:
- szId: identificador de la variable local.
- dValor: número con decimales.
Asigna el contenido a una variable local del proceso de tipo numérica, integer.
Parámetros:
- szId: identificador de la variable local.
- nValor: número entero.
Asigna el contenido a una variable local del proceso de tipo alfabética.
Parámetros:
- szId: identificador de la variable local.
- szValor: cadena alfabética.
Asigna el contenido a una variable local del proceso de tipo hora.
Parámetros:
- szId: identificador de la variable local.
- time: hora.
Devuelve el valor de una variable local array de tipo fecha.
Parámetros:
- szId: identificador de la variable local.
- index: número de la posición del elemento en el array, el primero elemento es el 0.
Devuelve el valor de una variable local array de tipo tiempo, fecha y hora.
Parámetros:
- szId: identificador de la variable local.
- index: número de la posición del elemento en el array, el primero elemento es el 0.
Devuelve el valor de una variable local array de tipo numérica, double.
Parámetros:
- szId: identificador de la variable local.
- index: número de la posición del elemento en el array, el primero elemento es el 0.
Devuelve el valor de una variable local array de tipo numérica, integer.
Parámetros:
- szId: identificador de la variable local.
- index: número de la posición del elemento en el array, el primero elemento es el 0.
Devuelve el valor de una variable local array de tipo alfabética.
Parámetros:
- szId: identificador de la variable local.
- index: número de la posición del elemento en el array, el primero elemento es el 0.
Devuelve el valor de una variable local array de tipo hora.
Parámetros:
- szId: identificador de la variable local.
- index: número de la posición del elemento en el array, el primero elemento es el 0.
// ---------------------------------------------------------------------------------------
// Ejemplo de ejecución de un proceso de origen ficha persona y destino lista de películas
// ---------------------------------------------------------------------------------------
importClass("VProcess");
var proceso = new VProcess(theRoot);
proceso.setProcess("CINE/PROCESS1"); // IN: ficha persona. OUT: lista peliculas
var persona = new VRegister(theRoot);
persona.setTable("CINE_DAT/PERSONAS");
if (persona.readFirstRegister("ID"))
{
if (proceso.setRegisterIn(persona))
{
if (proceso.exec())
theRegisterListOut.append(proceso.result());
};
};
// -----------------------------------------------------------------------------------
// Proceso único que calcula el precio del artículo en base a los parámetros recibidos
// -----------------------------------------------------------------------------------
//Se crea el manejador de objeto del proceso
var procesoCalculoPrecio = new VProcess(theRoot);
//Se alimenta con las variables necesarias
procesoCalculoPrecio.setProcess("gestion.dat/CAL_PRE_ART");
procesoCalculoPrecio.setVar("PRM_TRF_TIP", 2);
procesoCalculoPrecio.setVar("PRM_FCH", currentDate());
procesoCalculoPrecio.setVar("PRM_CLF", CLF);
procesoCalculoPrecio.setVar("PRM_ENT_GES", ENT_GES);
procesoCalculoPrecio.setVar("PRM_ART", ART);
procesoCalculoPrecio.setVar("PRM_CNT", 1);
//Se dispara el proceso con los parámetros indicados
if (procesoCalculoPrecio.exec())
{
//Leemos las variables de los resultados de la ejecución del proceso
var precioPRE = procesoCalculoPrecio.varToDouble("PRE");
var precioDTO_1 = procesoCalculoPrecio.varToDouble("DTO_1");
var precioDTO_2 = procesoCalculoPrecio.varToDouble("DTO_2");
var precioDTO_3 = procesoCalculoPrecio.varToDouble("DTO_3");
var precioDTO_4 = procesoCalculoPrecio.varToDouble("DTO_4");
var precioDTO_5 = procesoCalculoPrecio.varToDouble("DTO_5");
}
else
{
var precioPRE = 0;
var precioDTO_1 = 0;
var precioDTO_2 = 0;
var precioDTO_3 = 0;
var precioDTO_4 = 0;
var precioDTO_5 = 0;
};
Última actualización 3yr ago