Procesos en 3º plano - ejemplos.


([N1] mgonzalez.velneo) #1

Buenos días , ¿donde podría ver ejemplos de procesos e 3º plano?, gracias.

Mauricio.


([N2] AyudaVelneo) #2

Hola Mauricio:

Un proceso ejecutado en tercer plano no deja de ser un proceso que se ejecuta en el servidor.

La ventaja que tienen los procesos en tercer plano es que al ser ejecutados en el servidor son mucho mas rápidos en las operaciones que tiene que realizar ya que la información no se envía entre el cliente y dicho servidor.

Los procesos en tercer plano son llamados desde otros procesos que se ejecutan en primer o 2º plano.

Prepararé un post al respecto para el blog.

Un saludo


([N1] mgonzalez.velneo) #3

Gracias por tu respuesta, F. José, el problema que tengo es el siguiente, he creado un proceso de importación de datos que denominaremos paso 1, desde el lanzo en primer plano otro proceso denominado paso 2, el proceso paso 2 es muy largo por lo que lo he dividido en varios procesos mas pequeños, el fundamento del proceso 1 es la importación y dado que necesito interactuar con el, lo ejecuto en 1º plano, el proceso denominado paso 2 transfiere en base a unas condiciones el valor de unos campos de una tabla única a varias tablas y es aquí donde tengo problemas, ya que si realizo este proceso (paso 2) en 1º plano todo funciona correctamente, pero si lo ejecuto en 3º plano para ahorrar tiempo, no me funciona y no sé cual es el motivo, adjunto imagen del proceso.



([N2] AyudaVelneo) #4

Hola Mauricio:

Si no te he entendido mal, en el proceso de importación das de alta registros en una tabla y en base a esos registros, vas dando de alta registros en otras tablas. Si es así, puedes hacer dos cosas:

Opción 1

  • Al importar grabas los registros en la tabla (A)
  • Creas un trigger posterior al alta de la ficha A en el que vas dando de la alta los registros en las otras tablas

Opción 2

  • Al importar grabas los registros en la tabla A (aunque no se si esto es necesario o solo lo haces para tener los registros importados y luego decidir que hacer con ellos
  • Creas un proceso (PRO_1) que llame a un proceso en tercer plano (PRO_2) en el que das de alta los registros en las distintas tablas en base a unas variables locales.
  • En el PRO_1 te creas un "Manejador de objeto" en el que llamas al PRO_2
  • Con la instrucción "Set variable local de objeto" le vas pasando al PRO_2 todos los campos necesarios para dar de alta los registros (mediante variables locales)

Por cierto, intenta evitar en todo lo posible el uso de variables globales

Espero que te sirva

Un saludo


([N1] mgonzalez.velneo) #5

El proceso original lo realizo con variables locales, pero para hacer la prueba en tercer plano, como no sabia como realizar el proceso con manejadores de objeto, utilicé las variable globales, de todas formas no entiendo porque el proceso que he adjuntado funciona en primer plano y no en tercer plano.


([N2] AyudaVelneo) #6

Hola Mauricio:

Revisa el plano de las variables globales y si son en memoria o en disco. Recuerda que si tienes declarada una variable global en memoria se comporta de forma distinta si la llamas en primer plano o en tercer plano ya que si le asignas un valor a la variable en primer plano y luego intentas recuperar ese valor en tercer plano… la variable no contendrá nada.

Te prepararé un ejemplo con los manejadores de objeto.

Un saludo


([N1] mgonzalez.velneo) #7

muchas gracias F. José


([N2] AyudaVelneo) #8

Hola Mauricio:

Lo prometido es deuda

Cómo dominar los procesos en tercer plano

Espero que resuelva tus dudas.

Un saludo


([N1] mgonzalez.velneo) #9

Perfecto, muchas gracias.


([N3] pacosatu) #10

Hola Francisco.

Vas creando escuela.
Excelente artículo.

Gracias de los que estamos empezando.

Saludos
Paco Satué