runProcess: La Solución desconocida a la herencia inversa


([N4] mdelgado) #1

Con runProcess, es posible ejecutar un proceso indicándole la caja y el proceso que queremos. Lo bueno, es que mediante JavaScript no se respeta la herencia; esto quiere decir que accedemos al árbol de objetos de forma global.

Pongamos el siguiente caso: Tengo una caja de PADRE.APP que hereda de otra caja HIJA.APP. Desde la caja HIJA.APP me gustaría que cada vez que guarde un determinado registro, muestre un formulario llamado FORM_PADRE que se encuentra en PADRE.APP. con runProcess esto es posible. Simplemente al guardar, llamo a un proceso javascrip en que paso el nombre de la caja PADRE.APP y el nombre de un proceso contenido en esa caja padre. Dentro del proceso, hago la llamada al formulario y listo!!!

Esto tiene muchísimas aplicaciones. Incluso puedes utilizarlo en un evento de tabla HIJA para actualizar campos de una tabla en otra caja PADRE. FUNCIONA!!!

Para los que no andáis muy ducho con la programación vjavaScript, os paso el código fuente para que lo implementéis.

Espero que os sirva!!!


([N4] mdelgado) #2

Fichero



([N4] mdelgado) #3

Por cierto, en el ejemplo se utiliza una variable global C_PARAMETROS para pasar parámetros al proceso que queremos ejecutar


([N3] pacosatu) #4

Hola mdelgado.

No solamente nos saltamos la herencia inversa, sino que podemos acceder a proyectos de Aplicación que están en otra rama del mismo nivel del árbol de herencia y que desde Velneo no podemos ver de ninguna manera.

He probado mostrar un mensaje en el SatusBar desde un Trigger y ¡funciona! de 3º plano a 1º plano. Creo que runProcess siempre ejecuta en 1º plano.

Con la llegada de vProcess en la 7.15, con parámetros y Entrada/Salida las posibilidades serán enormes.

Un buen aporte mdelgado
Saludos
Paco Satué


([N3] blavan) #5

Hola Mdelgado. Muchas gracias por la aportación. Comprobado todo correcto.
Puede ser de gran utilidad


([N3] blavan) #6

Hola Paco, desde un trigger me funciona contra procesos de tablas sin problemas, después intenté lanzar un proceso que debe mostrame un formulario y evidentemente no me da error pero no hace nada, es decir desde 3º plano como va a mostrar un 1º plano ¿de que usuario? vserver no lo sabe.
Por eso lo de tu mensaje a 1º plano, no lo pesco bien, estamos con el mismo razonamiento que las variables globales en V7 que al contrario que v6, no sabe que usuario le envia la variable global cuando estamos en 3º plano.

Gracias, es un poco para provocar comentarios que me ayuden y nos ayuden a aclarar conceptos.


([N4] bitcodesoft) #7

No solo eso, con JavaScript puedes modificar los campos de cualquier tabla en el proyecto padre o hijo.