Hola a todos, a ver si alguien me desatasca, que estoy con una tonteria y no veo el porque…
tengo un proceso que recorre una Lista, … cargo cada una de las fichas en un segundo proceso que tiene como origen ficha, (de la misma tabla se entiende), dentro del segundo proceso modifico valores de campos … y. … … cuando salgo del proceso (al proceso lista), he perdido los cambios… que hago mal???
hago un modificar campo, y el valor cambia seguro porque me he puesto un mensaje que me enseña el valor y lo ha cambiado…
Gracias pepeto,
El caso es que he probado a recorrer 1 proceso en solo lectura y en lec/esc y en ambos casos me sucede lo mismo.
lo lanzo con crear manejador de objeto,
añado ficha al objeto, y despues disparo,… he probado a disparar en 1, 2 y 3 plano.
Incluso he probado a devolver del proceso la misma ficha (añadir ficha a la salida) para ver que está pasando…
En la imagen, dentro da un valor y fuera otro:
no me deja adjuntar
bueno escribo codigo que no me deja adjuntar imagen.
crear manejador( obj2
Recorrer lista solo lectura
añadir ficha al objeto(obj2
disparar(obj2, (he probado en 1, 2 ,3)
mensaje dentro
mensaje fuera
Aunque, visto de otra forma, si tienes que recorrer toda la lista
porque no creas un proceso lista para modificar y recorres la lista dentro del proceso en 3 plano
(Lista de registros)
crear manejador( obj2
disparar(obj2,
– mensaje dentro
mensaje fuera
(Proceso en 3º plano de lista)
Recorrer lista lectura/escritura
– aqui lo que tengas que modificar.
Te contesto pepeto:
del post #24536
creo el manejador de objeto fuera del bucle por optimización, creo que es más efectivo no crear una instancia del objeto cada vez.
y en otros casos me ha funcionado sin problemas.
creo el manejador fuera del bucle … y despues creo el bucle (que sea necesario) añadiendo todas las fichas que sean necesarias, y despues lo lanzo, (si la entrada en el proceso es de lista).
(sobre post #24537)
Si la entrada en el proceso es de ficha, no veo el porque volver a hacer que la base de datos busque el registro… si tengo un proceso que lo recorre y ya estoy en el registro que quiero modificar, … se lo paso al proceso ficha … y actuo…
Estoy buscando tener el proceso para cada documento en un unico sitio, … y llamarlo desde lista cuando se trate de trabajar con muchas fichas a la vez… o cuando se trate de una unica…
Ejemplo : proceso contabilizar factura… (es el mismo si el origen es una unica factura, o si son 1000) … en caso de 1000 las recorro con un proceso de lista… y se las mando a un proceso de ficha… no es esa la lógica???
no está pensado el uso de ficha y de lista para eso? ¿pregunto … (sin ironia) ?
Quizás sea una tontería, pero ¿has utilizado “Seleccionar ficha por posición()” antes de modificar el campo?, porque a veces se me olvidaba y no se grababa el dato
De todas formas si lo único que haces es modificar un campo de cada registro, no entiendo para que tienes que hacerlo en un segundo proceso y no en el mismo que recorre la lista.
Tienes razon,
Pero como no se el uso que le vas a dar al proceso, te doy ideas.
Para segun que casos, lo hago de una forma o de otra y me funciona.
Quiza para poder ayudarte mejor, tendria que ver los procesos.
el proceso es bastante complejo, y cuando lo termino, doy una serie de valores a la ficha actual, (por ejemplo en Nº de asiento),
además el proceso debe poder ser llamado individualmente, (contabilizar una unica factura), o contabilizar un ciento…
ese es el motivo por el que intento hacerlo con origen ficha.
te enseñaria los procesos pero no me deja adjuntar…
voy a abrir un soporte
sobre lo de leer ficha por posicion… creo que es solo para listas, y no para fichas… no es así???
Gracias por adelantado
(nadie ha usuado una lista para pasar valores a una ficha y operara con esta??? tengo la sensación de que el paso de parametros es por referencia… en vez de por valor…
gracias pepeto, no te he molestado porque me han contestado de soporte adjunto para que la comunidad se pueda beneficiar:
Buenos días,xxxxxxx.
Este comando no genera transacción por sí mismo; esto quiere decir que el uso de este comando modifica el contenido del campo pero no graba el cambio en disco.
En un proceso, para que el nuevo valor del campo sea guardado en disco, la ficha deberá haber sido abierta previamente en modo lectura/escritura en ese mismo proceso, por ejemplo, mediante el uso de comandos del tipo “modificar ficha seleccionada”, “recorrer lista lectura/escritura”, etc.
Ejemplo:
Veamos los siguientes procesos:
Proceso principal:
Recorrer lista lectura/escritura
….Ejecutar proceso -> MODIFICAR_CAMPOS
Proceso MODIFICAR CAMPOS:
Modificar campo -> FECHA, currentDate()Modificar campo -> HORA, currentTime()
La modificación es hecha en el subproceso pero no se retorna al volver al proceso principal.
En este caso lo más recomendable sería hacer la modificación de campos en el proceso principal:
Recorrer lista lectura/escritura
….Modificar campo -> FECHA, currentDate()….Modificar campo -> HORA, currentTime()
ESTO LO AÑADE samuel:
Vamos que dado que los comando recorre lista, modificar ficha seleccionada …etc son para origen de datos lista,… .en ficha… solo lectura… (abreviando)