Adjunto un código de Duplicación genérico para que lo uses como plantilla.
El proceso PRO_FAC_DUP se ejecuta con un Botón de Acción del Formulario Original.
Este proceso llama al proceso PRO_FAC_DUP_TUB que en 3P duplica y devuelve la nueva Ficha.
Para permitir una Edición completa de cabecera y detalle, como tú dices, abrimos el formulario de Edición con el comando Crear manejadro/Disparar objeto.
Proceso: PRO_FAC_DUP
Rem ( En la versión 26 esta pregunta se puede hacer en el evento PRE del Botón de Acción)
Pregunta ( "¿ Quiere duplicar la factura " + #ID + " ?", LOK, )
If ( LOK )
Rem ( Duplicamos la Factura en un Proceso independiente en 3P )
Crear manejador de objeto ( hTubos, Proceso PRO_FAC_DUP_TUB@vgestion_app )
Añadir ficha al objeto ( hTubos )
Disparar objeto ( hTubos, 3º plano: Servidor (síncrono), )
Rem ( Editamos la Factura duplicada sin Bloqueo para que funcionen las Actualizaciones )
Rem ( Parece ser que hay un Bug con las Actualizaciones si editamos Cabecera/Detalle con Bloqueo )
Crear manejador de objeto ( hEdi, Formulario COM_FAC@vgestion_app )
Añadir ficha al objeto ( hEdi )
Disparar objeto ( hEdi, No aplicable, LOK )
Libre
Proceso: PRO_FAC_DUP_TUB
Rem ( INICIO DE TRANSACCIÓN )
Libre
Rem ( Tubo de Ficha para duplicar la Cabecera )
Tubo de ficha ( TUB_FAC_DUP@vgestion_app )
Set ( NID_FAC, #ID )
Rem ( Añade la Factura duplicada a la Salida del Proceso )
Añadir ficha a la salida
Libre
Rem ( Tubo de Lista para duplicar el Detalle )
Cargar plurales ( MOV_COM_FAC )
Rem ( Se induce la variable NID_FAC para el campo maestro )
Tubo de lista ( TUB_LIS_FAC_DUP@vgestion_app )
Libre
Rem ( FIN DE TRANSACCIÓN )
Libre
Hola Paco, pues ya no tengo más palabras para agradecer tus aportes. He probado tal cual lo has planteado y es correcto, de esta forma ya se puede editar tanto cabecera y sus lineas de detalle.
No se si es mucho pedir, pero este tema es muy importante y estaría formidable que todo lo que escribiste en este ultimo comentario, lo publiques como tema a parte en este mismo foro.
Tu sabes que en cuanto a soporte velneo se queda muy corto para dar este tipo de respuestas, y gracias a gente como tú es como se han resuelto muchas dudas y sobre todo muchas soluciones a temas que en su momento debería de ser por parte de Velneo.
Y no digo que velneo no aporte, pues tiene su propio canal para soporte, pero la verdad yo creo que estos temas no deben ser privados o exclusivos de soporte, si no temas del foro.
Gracias Paco, hoy aprendí algo nuevo, como todos los días claro. y no se si es algo que ya todos saben pero créeme ya tenia tiempo sin comprender la forma correcta para poder editar de manera completa un registro creado mediante proceso que tuviera una cabecera y lineas de detalle.
El tema para el foro, creo que tu eres mejor para definir cual seria.
MADRE SANTA! ESTE PACO ES UNA PINCHE DEIDAD!!! (Y lo digo con el mayor respeto, admiración y con la mejor intención del mundo y espero que lo tomes como un gran cumplido).
Paco, que en serio, una vez más no tengo el como agradecerte. Me había tardado en responder por que tenía algo de trabajo, pero justo hoy he leído todos los posts, y he hecho lo que comentas, todo el código que crea la factura lo he movido a un proceso aparte (actualmente estaba en un evento) y lo he puesto tal cual en tu ejemplo y he quitado mi código que “calculaba a mano” y ahora si, la aplicación por si solita hace lo que tiene que hacer.
MIL GRACIAS PACO!
Gracias por vuestros halagos, me dan ánimo para seguir aportando mis conocimientos sobre Velneo.
Imagino que estáis empezando con este lenguaje de programación y siendo niveles N4 pronto tendréis que mantener aplicaciones más o menos complejas.
Independientemente del tipo de aplicación de gestión que vayáis a diseñar, es muy importante tener claros los conceptos básicos de la arquitectura Cliente/Servidor de Velneo y el funcionamiento transaccional de su motor de Base de datos. Muchas veces las aplicaciones son complejas de mantener porque se han programado de manera inadecuada.
Velneo tendrá sus limitaciones en desarrollo de Interfaces avanzadas, pero en lo que respecta a la gestión de la base de datos y su sistema transaccional sencillo pero efectivo, la convierten en una de las mejores herramientas de desarrollo rápido de aplicaciones de gestión de datos.
Os animo a que sigáis preguntando y de esta manera animar este lacónico foro.
Así es Paco, yo tengo ya casi 4 meses que comencé a dar mantenimiento a las aplicaciones de la empresa, es decir, no he desarrollado desde cero en Velneo, pero si he estado corrigiendo los sistemas actuales. Tomé el curso básico de Velneo y con eso me ha sido suficiente para entrarle al código sin tanto problema, pero como bien lo mencionas otra buena parte está en la comprensión de la gestión de la base de datos y del sistema transaccional, que lamentablemente, como muchas cosas, la documentación oficial esta taaaaaan básica y sosa que en muchas ocasiones nos dejan casi en las mismas.
Afortunadamente hemos encontrado en tu persona un gran (qué digo “gran”, sería “GRAN”) apoyo, por que tienes un montón de experiencia, una manera increíble de explicarlo (hasta para que yo lo entienda ) y sobre todo, y lo más importante esa gran paciencia y ganas de compartir tus conocimientos con los demás.
Gracias Paco, en serio, ¡¡eres un gran ser humano!!