4D v14

Procesos

Inicio

 
4D v14
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.

 
 

 
PROPIEDADES 

Producto: 4D
Tema: Procesos

 
ARTICLE USAGE

Autoformación ( 4D v13)
Autoformación ( 4D v14)