4D v16

Procesos

Inicio

 
4D v16
Procesos

Procesos    


 

 

Además de las manipulaciones explicadas en el vídeo, debe tener en cuenta que:

Un proceso es un entorno que posee:

  • su propio espacio de memoria
  • sus selecciones actuales (una por tabla)
  • sus propias variables (variables proceso)
  • posiblemente su propia interfaz
  • etc.

Los procesos pueden comunicarse entre sí de diferentes maneras:

  • variables interproceso
  • lectura o escritura de variables
  • etc.

Se pueden:

  • poner a dormir (sleep process)
  • poner en modo hibernación (suspended process) hasta que otro proceso lo despierte.

Un proceso muere sólo cuando termina el método que lo ejecuta.
No se puede obligar a un proceso a morir por programación, a pesar de que lo puede programar para que muera en ciertas condiciones (ver el comando CALL PROCESS

Los procesos en general sirven para:

  • crear procesos particulares (batches, controles “submarine”),
  • crear paletas de herramientas (ventanas independientes con funciones específicas)
  • mostrar diálogos de entrada/visualización para que el usuario puede trabajar con múltiples ventanas.

4D genera directamente ciertos procesos.

Un proceso se crea utilizando el comando New process:

 vProcessNumber:=New process(Method;Stack;Processname;Settings;...)

Esta línea de comando debe estar en el método. Le recomendamos que utilice el concepto que se muestra a continuación, ahorrará tiempo y claridad:

 C_TEXT($1)
 If(Count parameters=0) // Si el método no recibe ningún parámetro, usted debe crear el proceso
    C_LONGINT(<>ProcessNumber)
    <>ProcessNumber:=New process("Display_Stats2";1024*1024;"Statistics";"Fictitious_Parameter") // creamos el proceso
 Else // Si el método recibe al menos un parámetro, debe ejecutar el método de visualización
    C_LONGINT($Window//Crear la ventana (contenedor) en la cual se muestra el dialogo (contenido)
    $Window:=Open form window("STATS";Plain form window;Horizontally centered;Vertically centered)
    DIALOG("STATS") //Mostrar el diálogo
    CLOSE WINDOW($Window// Una vez se cierra el diálogo, cerrar la ventana
 End if

  • Cuando se llama al método (sin parámetros), 4D crea un proceso en el que se ejecuta un método.
  • El método se llama a sí mismo (se crea una segunda instancia del método en el nuevo proceso)
  • Y se pasa un parámetro:
  • La primera instancia del método termina
  • mientras que el método ejecutado por el proceso continúa y presenta el array de estadísticas.

Usted puede seguir trabajando mientras tenga la ventana de estadísticas a su alcance.

Para trazar la ejecución de un proceso (cuando ejecuta la línea New Process), utilice el botón “step-by-step new process”. Este botón ejecuta la línea y abre una segunda ventana de depuración en la cual puede seguir el progreso del método ejecutado en el proceso, independientemente del método de llamada.

Por ejemplo, puede crear un proceso que muestra la hora y el tiempo transcurrido desde que el nuevo proceso comenzó. Este ejemplo le dará los fundamentos para la creación de un contador de tiempo.

Los procesos permiten considerar evoluciones rápidas en su programación:

  • Puede conceptualizar sus procesos,
  • probarlos en varias líneas de código,
  • luego puede configurarlos para una ejecución independiente en un proceso.

Hay numerosos ejemplos de la utilización de los procesos. Este es uno más: usted tiene que hacer actualizaciones en una base de datos importante, sin embargo, estas actualizaciones pueden demorarse por varios segundos o minutos, incluso sin tener un impacto en el desempeño de su empresa. Así que usted puede:

  • Prever una tabla en la cual donde guarde una lista de tareas a realizar.
  • Para cada una de estas tareas, usted especifica una fecha, una hora y posiblemente un nivel de prioridad y una descripción de la tarea a realizar (¿qué? ¿en qué tabla? ¿qué registro? etc.)
  • Luego, puso en marcha un proceso cuya única misión es consultar esta tabla y realizar el conjunto de tareas en ella.
  • Cuando termina, se suspende hasta que una nueva tarea se registre y el proceso se reactive.

Esta operación es muy factible en modo cliente/servidor donde un proceso (procedimiento almacenado) "corre" en el servidor y lleva a cabo las tareas a realizar:

  • importaciones
  • reprocesamiento
  • Impresión PDF
  • envío de correos electrónicos
  • etc.

En este vídeo, vamos a aprender sobre el ciclo de vida de un proceso: nacimiento, vida y muerte.

Los procesos con frecuencia se utilizan en trabajos multi tareas. Los procesos permiten crear varios trabajos simultáneamente, sin tener que terminar el primer proceso para comenzar el segundo.

Supongamos que usted quiere acceder al módulo de estadísticas que implementamos en los vídeos anteriores. Usted quiere que siga estando activo mientras usted hace otra cosa.
Para hacer eso, vamos a iniciar el método en un proceso y permitir al usuario refrescar las estadísticas haciendo clic en un botón que añadiremos en el formulario.

Primero, vamos a crear la llamada del diálogo Statistics en el formulario de navegación. Haremos lo siguiente:

  • Duplicar un botón
  • Y llamarlo Stats

y en su método, tal como lo hicimos para el primer diálogo, vamos a:

  • Crear un contenedor
  • Mostrar el diálogo Stats
  • A continuación, cerrar la ventana nuevamente.

Vamos a probar esto. Tenemos un botón Stats que muestra la información que nos interesa y obtenemos las estadísticas.

Sin embargo, ya no podemos trabajar en nuestro formulario de navegación, ya que está en el primer plano.

Existe una manera para trabajar con varias ventanas, en este caso, es preferible utilizar diferentes tipos de procesos, que es lo que vamos a hacer ahora.

Un proceso se crea utilizando el comando New process, que debe llamarse desde un método.
A continuación le indicamos:

  • cual método debe ejecutarse en el proceso
  • la pila
  • el nombre del proceso
  • y los posibles parámetros.

En este caso, vamos a crear un método para la visualización de Stats (note que el nombre se coloca entre comillas) y este método contendrá la creación del formulario.

  • La pila en realidad no importa
  • El nombre del proceso será Statistics
  • Y no necesitamos parámetros específicos.

En 4D hay un parámetro estrella que usted puede pasar como último parámetro y que puede ser usado con  muchos comandos. Esto le evita crear el mismo proceso varias veces. No vamos a usarlo por ahora, pero puede consultar la documentación para más detalles sobre su uso.

Ahora vamos a ver cómo funciona esto. Si hacemos clic en el botón Stats:

  • aún tenemos el formulario Stats que se muestra
  • pero esta vez tenemos la posibilidad de trabajar en una ventana o en la otra.
  • de cerrar el proceso
  • de mostrarlo de nuevo
  • y en este nivel, es posible incluso mostrar varios de ellos ya que no utilizamos el parámetro estrella.

Sería incluso posible, asumiendo que hemos configurado el año en el formulario, tener las estadísticas de un año y las estadísticas de otro año en dos pantallas diferentes.

Es importante entender que cuando usamos los procesos, cada uno tiene su propio entorno, en otras palabras, si se realiza un cálculo de aquí, se obtienen algunos elementos de información, independientemente de cuántos son los registros encontrados aquí.
Podemos decidir tomar sólo algunos de ellos y nuestras estadísticas siempre se calcularán en función de toda la información contenida en la tabla.

Por lo tanto, es necesario entender que un proceso tendrá:

  • sus propias selecciones
  • sus propias variables

Si tenemos 2 procesos que ejecutan el mismo método, cada una puede tener información diferente.

Cuando varios procesos se crean y pedimos un seguimiento, 4D muestra todos los procesos que se crearon:

  • los procesos estándar creados por 4D
  • más los que hemos creado, como el proceso Statistics.

Por lo tanto, es posible hacerle seguimiento y cuándo vamos a "calcular", es el método del botón en el cual se hace clic al que se le hace seguimiento.

Si hacemos seguimiento a otro proceso, podemos ver el modo seguimiento de este proceso aquí.

Al principio de este vídeo, mencionamos la creación, vida y muerte de un proceso.

Demos un vistazo a estas tres etapas:
Primera, la creación del proceso: New process se va a crear.

Para realizar un seguimiento a lo que se está ejecutando en un New process, debe usar este botón: aparece una segunda ventana de seguimiento para el seguimiento del método "Statistics" que se está ejecutando.
Podemos completar el proceso creador.

A continuación, un método se ejecuta y durante este periodo, el proceso está vivo.

  • Podemos hacer una serie de cosas tales como:
  • intercambios entre procesos
  • o arrastrar y soltar.

El proceso se mata cuando termina el método que se ejecutó durante su creación:

  • Aquí, volvemos al método inicial que se ejecuto cuando el proceso se creó
  • La ventana se cierra
  • El método termina
  • El proceso va a morir

Si hacemos un seguimiento, ya no vemos el proceso "Statistics".

 
 

 
PROPIEDADES 

Producto: 4D
Tema: Procesos

 
HISTORIA 

 
ARTICLE USAGE

Autoformación ( 4D v16)