Procesos en 3P de ejemplo
Disponemos de 2 funciones para fijar y obtener el valor de progreso en el array global:
FUN_SET_ARRAY_GLOBAL (CARRAY,NFILA,NPORCENTAJE,CTIPO) - Fila el valor de la fila NFILA
FUN_GET_ARRAY_GLOBAL (CARRAY,NFILA,CTIPO) - Obtiene el valor de la fila NFILA
En el ejercicio he preparado 3 procesos que se ejecutarán en 3P y mostrarán el formulario de entretenimiento.

Veamos el primer proceso en la carpeta "Clientes Proceso 3P".
Proceso PRO_PERSONAS

Tenemos 3 tareas dentro del proceso:
oEjecutar el proceso en 2P que a su vez llama al proceso en 3P que realmente queremos ejecutar
El proceso en 2P permite liberar la aplicación llamadora.
Proceso PRO_PERSONAS_2P

oLlamar a la función FUN_PROCESO_SPLASH(CARRAY, NFILA, LPROGRESO, CTITULO_PROCESO, CMENSAJE)
La función FUN_PROCESO_SPLASH es la que realiza todo el trabajo de comunicación con el 3P y muestra el formulario de entretenimiento.
Recibe los siguientes parámetros:
CARRAY - Identificador del Array Global que vamos a usar
NFILA - Fila del Array que guardará la información del progreso de ejecución del Proceso
LPROGRESO - Es 1 cuando se calcula el Porcentaje de progreso
CTITULO_PROGRESO - Título del Proceso
CMENSAJE - Mensaje de entretenimiento
Simplemente ejecuta el formulario Modal FRM_PROCESO_ESPERAR el cual mostrará una animación con el progreso de ejecución del proceso en 3P.
El progreso mostrará el porcentaje de ejecución si el parámetro LPROGRESO = 1.
Si comentamos esta línea ya no tendremos formulario de entretenimiento y el proceso en 3P se ejecutará normalmente y deberá ser el proceso en 2P el que retorne el resultado del proceso en 3P.
oRefrescar el formulario con la Vista de Datos para mostrar los cambios realizados en el proceso.
Proceso PRO_PERSONAS_3P
Desde el proceso en 3P establecemos en la fila NFILA del array global PROGRESO_ARRAY un valor del progreso de ejecución.
Si LPROGRESO = 1 -> guardamos el valor porcentual del progreso
Si LPROGRESO = 0 -> no guardamos el progreso, simplemente guardamos el valor = 100 cuando el proceso se termina

Created with the Personal Edition of HelpNDoc: Full-featured Documentation generator