Procesos JSON para implementar una Papelera de Registros y una Opción Deshacer

Saludos:

Me gustaría comentaros un tema interesante. Dispongo de numerosas utilidades desarrolladas en JS, pero para empezar os quiero presentar una de ellas, que nos va a permitir implementar una Papelera de Tablas Maestras (con sus Históricos) y una opción de Deshacer que luego os comento.

Los procesos JS exportan a JSON el contenido de un registro de Tabla Maestra, con todos los registros de sus Históricas asociadas (aquellas cuyo Plural termina en “_ID”). Además, las Tablas Históricas pueden estar en cascada (ejemplo: Documentos → Ficheros de Documento → Comentarios de Ficheros de Documentos. Asientos → Partidas). Incluye campos Objeto Texto, Imagen y Binario. Esta exportación a JSON va a permitir, mediante otro proceso JS, la importación de dichos registros de forma inteligente al usar la opción Deshacer o Recuperar de Papelera. Todo absolutamente automatizado y por Usuario. Además, estos procesos sirven para exportar a JSON la multi selección de cualquier rejilla, y su posterior importación.

Lo primero que tenemos que hacer es usar una cierta metodología para la creación de Tablas, muy sencilla, que nos va a permitir controlar que campos se omiten en la exportación e importación, definir si la Tabla usa Papelera, controlar que no se importen campos que son producto de actualización en las Tablas Históricas, eliminar los campos fórmula, etc. La estructura es estándar y sirve para todas las Tablas.

Una vez conseguido ese modelo de Tablas, podemos implementar en cada Tabla dos funcionalidades: un sistema de Papelera, de tal forma que los registros borrados puedan ser recuperados de dicha Papelera, y una opción de Deshacer (volver al estado original)

La opción de Deshacer os la explico con un sencillo ejemplo: abrimos un Formulario para gestionar un Asiento con sus Partidas. Modificamos algún campo del Asiento, borramos una Partida y creamos una nueva Partida. Pulsando el botón Deshacer volveremos a tener el Asiento tal y como estaba al entrar en el Formulario. Esta opción es automática, tenemos que programar muy poco código y con el pegado inteligente se puede pasar a cualquier otro formulario.

Un ejemplo de la opción de Papelera de Registros: si borramos con multi selección en rejilla (n) Asientos con sus Partidas, serán grabados en la Tabla Papelera, e implementando una sencilla vista de dicha Tabla Papelera, con Arrastrar el registro de la rejilla de la Papelera a la rejilla de la Tabla, será recuperado o restaurado el registro.

Estas dos funcionalidades son bastante apreciada por los clientes o usuarios finales. Si hay gente interesada podría desarrollar un mapa con todos los procesos y funcionalidades necesarias, así como con datos de ejemplo, y realizar una documentación completa que os permita implementarlo de forma sencilla y clara. Necesitaría 2 o 3 semanas. Os dejo mi correo para que me digáis si os interesa, o que canal o forma utilizar para hacéroslo llegar. Gracias por vuestro tiempo.

tomas@financix.es

2 Me gusta

Hola a todos:

Me consta el interés que muchos ya habéis mostrado por la utilidad que Tomás ha decidido compartir. Debido a la relación profesional que me une con Tomás desde hace muchísimos años y que por supuesto conozco esta utilidad desde que solo era una idea, solo deseo apostillar algo a lo que ya os ha contado Tomás:

Es una utilidad que otorga un gran valor añadido a cualquier mapa en que queráis incluirla. Se trata de una antigua reivindicación de los usuarios finales, poder deshacer cambios y/o recuperar registros eliminados de manera sencilla, rápida y fiable.

Todos aquellos usuarios que ya lo tiene incluido en sus productos y con los que he tenido la oportunidad de hablar, me han trasladado lo mismo, han perdido el miedo a equivocarse y ahora tienen mayor confianza en el producto.

Me parece importante tener en cuenta cuando desarrollas una aplicación para un cliente, que gran parte del éxito de la aplicación depende únicamente de la satisfacción de aquellos que la utilizan.

Un saludo,

Visto el interés de bastantes usuarios, vamos a realizar un mapa ejemplo y una buena documentación. El producto es completamente gratuito (alguien me pidió precio). Espero no tardar más de 1 o 2 semanas. Os lo enviaré por correo. Lo que os pido es que después valláis comentando en este hilo los resultados y poder mejorarlo o solucionar dudas. Gracias por el interés.

Hola tomas.

Muchas gracias por la aportación, una utilidad muy útil en casos concretos, donde deshacer transacciones ya finalizadas sea factible.

Imagino que habéis usado los nuevos comandos nativos de JSON de la versión 28.

Saludos
Paco Satué

Hola Paco:

El Proceso de Importación y Exportación de la Papelera está escrito en JS para que pueda ser usado por cualquier Tabla de forma inteligente. Además, detecta los Submaestros de la Tabla y los incluye en el JSON como un campo más de la Tabla. Por otro lado, en la importación se debe controlar los campos que son Actualización de otras Tablas, para que no sean cargados, así como otros aspectos. Resumiendo, todo es JS estándar y muy controlado, nos gusta ser puristas hasta donde podamos llegar. Además, mediante una Tabla que se llama “TABLAS”, gestionada de forma automática, conseguimos analizar toda la estructura de las Tablas de la BD, lo que nos permite controlar, por ejemplo, los Submaestros, entre otros aspectos.

Con todo esto conseguimos recuperar datos completos (Ej: Asiento y sus Partidas). La descarga JSON de Velneo solo exporta una Tabla (creo).

Todo lo comentado está ya desarrollado y está siendo usado en nuestras aplicaciones. Como hemos comentado, en menos de 2 semanas enviaremos un mapa y documentación a los interesados.

Saludos
Tomás

Saludos de nuevo:

Hemos enviado el mapa y la documentación a todos los que lo habéis solicitado.

Notar que todo gira alrededor de dos procesos JS de gestión de Papelera : Recuperación post borrado y Recuperación post Edición desde un estado inicial. Disponen de variables de entrada y de salida que definen su comportamiento. Debemos usar una definición normalizada de las Tablas de la BD. El resto podéis construirlo a vuestro gusto. En el mapa usamos la funcionalidad que creemos más interesante y que os muestra una forma de utilizar esos dos procesos.

Cualquier comentario o petición realizarla a través del foro. Se puede ir mejorando. Si esto aporta beneficios a las aplicaciones, iremos poniendo en el foro nuevas funcionalidades para mejorar las aplicaciones.

Las ideas son libres y queremos que crezcan.

PD: Pacosatu dime tu correo para hacerte llegar el mapa.

Como decía Jesulín :crazy_face: Solo diré 2 palabras Im-prezionante.

Ahora en serio, muchas gracias por la aportación. Lo he revisado por encima y me parece un muy buen trabajo y muy bien documentado. En cuanto tenga un rato lo implementaré en mis aplicaciones.

Muchas gracias por tu trabajo y sobre todo por compartirlo.

Muchas gracias por el aporte.

Creo que es lo que estaba buscando para resolver una necesidad que tengo en mi aplicación.
Gracias por compartirlo.

Muchas gracias por el aporte.

Creo que esto ayuda muchísimo a todos, resuelve muchos temas de exportar e importar datos desde velneo.

Saludos.

Saludos de nuevo:

Creo que este hilo ha tenido bastante seguimiento y espero que lo siga teniendo. El resultado ha sido la petición del mapa por 35 personas y sigue entrando alguna nueva. Los comentarios que me han enviado al correo son muy positivos y hacen que vayamos a seguir por la senda de ofrecer (gratis) utilidades muy potentes y que mejoren las aplicaciones sin coste de programación, y con una documentación importante.

Supongo que muchos de los usuarios que han solicitado el mapa, no están registrados en Velneo, puesto que los comentarios en el foro han sido muy pocos. Cuando me realicéis una petición, indicarme si estáis o no registrados en Velneo. Es para temas estadísticos, no vamos a discriminar a nadie. De todas formas, nos gustaría recibir más “feedback” de vuestra experiencia con el mapa enviado.

Como podéis apreciar no tenemos ningún interés comercial, ni pretendemos vender nada. Todo lo contrario, ofrecemos herramientas muy potentes, no chorradas, completamente gratis y documentadas, que os van a permitir crear una forma de programar y de incorporar funcionalidades muy interesantes. Somos absolutamente independientes.

Abrimos un nuevo hilo para presentar nuevas utilidades.

Gracias a todos.

Muy buena aportación, si señor.

Una aportación bastante buena, y sobre la documentación, no tengo palabras, inmejorable.

Gracias.

Wow recien conocí este foro y estoy encantado, enhorabuena por tan excelentes aportes, he aprendido muchisimo en apenas unas horas jeje