La transacción ha sido desechada


([N1] JPACHECO) #1

Hola buenas…

Tengo una aplicación que que respalda datos de varias sucursales cada 17 minutos, esta actualiza los datos si ya estan en la base de datos y sino los agrega y una segunda aplicación que usa la instancia de datos de la primera para consultar la existencia de los diferentes productos de las diferentes sucursales, cuando se abren dos sesiones con el vClient en sucursales diferentes y hago una consulta en este caso una busqueda me aparece el mensaje “La transacción ha sido desechada Motivo: fichas ocupadas por otra transacción”, estube lleyendo en algunos foros y decia que eso se producia cuando los datos estaban siendo editados, esto producia una transacción y habia que esperar a que terminara y que la solución era que cuando se cargara la lista con el indice indicado de la consulta esta se recorriera en solo lectura para que no generara transacción, asi que pudiera deberse a que los datos se estan actualizando y que en ese momento se hace la consulta, pero lo he probado cuando los datos no se estan actualizando y se consulta el mismo producto en las dos sucursales y me aparece el mismo mensaje, de ser por la actualización de los datos cada 17 minutos como puedo hacer para consultar los datos sin problemas?

Saludos… espero sus aportes…




([N1] Juan) #2

Mira con los datos no dices mucho porque, no se como llamas a esas pantallas, pero en todo caso te digo lo siguiente espero te ayude:

  • Cuando ejecutes el proceso de actualizacion, lo hago asi, un proceso “PROC_ACTUALIZACION”(cada x minutos) que adentro llama a otro proceso “PROC_ACTUALIZACION_3P” en 3er plano ya que de esa manera este ultimo genera una transaccion automatica y se hace mas rapido, ojo esto no te asegura que si falla en medio de alguna operacion deshace todo, si lo deseas de esa manera, al incio pones Forzar transaccion.
  • Lo anterior era solo para optimizar.
  • El bloque que se manifiesta si o si es por que estas haciendo o:
    1- Un Recorrer Lista Lectura/Escritura --> y pides Formulario
    2- Usas la sentencia Modificar Ficha con Formulario --> esto casi nunca debe usarse porque provoca un bloqueo de la ficha, por qu esta en edicion, eso no significa que no se pueda leer los datos, por donde hagas una busqueda un cargar lista lo va lerr, pero si otro intenta abrir el mismo formulario, este como es Modificar Ficha intentara bloquear pero el otro ya lo hace y te sale ese error.
    3- tu formulario tiene activado el estilo: Bloqueo Duro, que equivale a la situacion anterior.
  • Si no estas haciendo recorrido de Escritura, entonces talves tengas un triguer o alguna operacion que se dispara y te crea ese error, hazle seguimiento con la herramienta de depuracion y cuando estes en la ficha “supuestamente leyendo”, veriifca el bloqueo.
    Si nos das mas datos podriamos ayudarte.:slight_smile:
    por que no sabemos como llamas a esos formulario o que haces en el aceptar.