Actualización o Proceso


([N2] zenonburgos) #1

Hola como están? Abro este debate para generar opiniones y aprender mas.
Las actualizaciones en velneo son de las características de tablas más mencionadas y afamadas por sus asesores y para mi no cabe duda que son un poderoso recurso, en lo personal me divierto utilizándolas pero no dejo de comprobar su “fragilidad” como en el caso de modificar ciertos valores o si se da el caso de agregar nuevos campos con registros ya existentes, casos tales que las actualizaciones se “rompen”, para ello utilizo procesos que recalculan esos valores y es cuando me pregunto: ¿para qué utilizar actualizaciones si se que un proceso bien diseñado sera 100% mas confiable? Aunque como dije anteriormente, me encanta utilizar actualizaciones pero pienso que debería trabajarse para hacerlas mas “inteligentes” de lo que son. Si alguien me da una manera mas efectiva de utilizarlas encantado de aprender mas


([N4] eic) #2

Hola.

Las actualizaciones son, prácticamente, irrompibles. Una vez establecidas, puedes modificar los valores, borrarlos, crear nuevos, etc., y los acumulados funcionarán como la seda. Sí, puedes hacer un proceso bien diseñado… pero serían tres (alta, baja, modificación), y con cierta enjundia interna… cuando un único objeto actualización te evita todos esos problemas.

Otra cosa distinta es que definas una actualización cuando ya hay datos en las tablas. Entonces, efectivamente, no te queda más remedio que recalcular los acumulados. No tiene nada que ver con que la actualización funcione mal, simplemente, la definiste “tarde”.


([N4] Infortic) #3

Yo personalmente no estoy de acuerdo con que son irrompibles …

Cualquier cosa que no tengas en cuenta a la hora de desarrollar la aplicación te la romperá… a mi a veces en formularios tipo pestaña no me funcionan, otras veces en formularios tipo dialogo, otras veces si lees la ficha en lugar de modificarla no suma, otras veces hay desbordamientos y al borrar una ficha no desactualiza correctamente… vamos a mi se me han roto muchísimas veces, y como no lo tengas controlado te pueden dejar la bbdd hecha un cristo.

El tema es que no te enteras de cuando ha fallado un actualizador, velneo en lugar de abortar y revertir la transacción, lo que hace es no actualizar y continuar su ejecución.

Que sí, que es por fallos del programador, que todo tiene una explicación (condiciones, bloqueos de ficha, etc …), pero fiarse a ojos cerrado de que son irrompibles te puede jugar una mala pasada de las grandes, tener un plan B (procesos de recálculo) no es mala idea.

En cuanto a la pregunta de zenonburgos es un tema de rendimiento, recalcular el valor de un sumatorio completamente en cada inserción/modificación/borrado es ineficiente, y conforme va aumentando el nº de registros que componen dicho sumatorio, la cosa se agrava día a día.


([N3] pacosatu) #4

Hola.

Mi opinión es que ni es eficaz al 100% ni es un desastre total.
No es eficaz al 100% porque hay algunos testimonios en el foro de fallos y tampoco es un desastre porque hay supuestamente miles de aplicaciones funcionando sin problemas.
Seguramente cada aplicación real tendrá sus apaños para que la integridad esté totalmente garantizada.

También es cierto que una aplicación mal diseñada y peor programada puede dar al traste con la integridad de los datos, pero también es cierto la escasísima información de Velneo de cómo funcionan los mecanismos de la base de datos Real y así nos va.

En un stock ¿qué es más confiable? Una actualización de Velneo o una Función de agregado tipo SQL. Seguramente ninguna de las dos porque siempre nos dirá el jefe que hagamos un inventario físico al final de temporada y ese dato es el que sirve.

Yo personalmente, y mientras Velneo no nos proprocione herramientas de log y depuración mucho más completas, para los temas muy delicados seguiré confiando en los procesos con funciones de agregado tipo SQL. Las actualizaciones se pueden dejar perfectamente para procesos no críticos.

Saludos
Paco Satué


([N1] wikan) #5

Las actualizaciones funcionan a la perfección, lo que hay que tener cuidado cuándo y dónde. Me explico, si durante la transacción sobre la que actua la actualización la ficha esta bloqueada no realiza la actualización y no devuelve error ninguno.

Me he pegado con esto y la verdad que encontrarlo ha sido…por lo demás nunca he tenido problemas.


([N3] chechualta) #6

Muy buenas para todo el mundo:
Hay veces que leyendo el foro no se que rumbo tomar. En todas las ocasiones siempre he escuchado a los que más experiencia tienen en velneo que sin duda hay que ir a las actualizaciones, según todo el mundo son las más seguras y ahorran código. Estoy de acuerdo, pero realmente si fallan…? Con que seguridad vamos a programarlas…?

Si se plantea por un lado como indica Fran Varona que opina que son irrompibles, pero por otro lado indica N3@info dice que el ha tenido problemas, como por ejemplo en un formulario con pestañas no funcionan las actualizaciones, cosa que por otro lado no entiendo, porque las actualizaciones se programan en la base de datos, con lo cual se ejecutan cuando hacemos una transacción de datos en el lado del servidor, y sin embargo uno de los grandes colaboradores de este foro como es Paco Satue, (al cual considero y sigo, porque en muchas ocasiones nos hace ver las cosas un poco más claras), veo que directamente utiliza funciones SQL con lo que se asegura la ejecución de la transacción y el tiene siempre el control del programa.

Con todo este rollo, me gustaría poder confiar en la integridad de la base de datos de Velneo cuando le ordenamos hacer algún tipo de transacción, como por ejemplo si damos un alta de stock y sobre ese registro hemos hecho actualizaciones a la tabla de cabecera de pedidos, líneas de pedidos, almacen, etc… y supongo que yo como usuario he cometido un error y debo de echar todo este movimiento hacia atrás, a mí me gustaría poder confiar en las actualizaciones, es decir que se modifique las tablas que he actualizado, tanto las de cabeceras de pedido como las líneas de pedido, tablas de estadísticas etc… etc… y aquí no ha pasado nada. Sucederá lo mismo cuando en vez de tener que borrar el registro de stock, tenga que modificar una cantidad de la línea de Stock, se deberán actualizar las tablas a las cuales hemos hecho las actualizaciones.

Y yo ahora pregunto a quienes conocen realmente la herramienta, como también dice Manuel:

              Podemos confiar en las actualizaciones...?
              Existe realmente alguna forma de comprobar que todo se ha hecho correctamente...?
              Es mejor utilizar funciones SQL..?  O es mejor utilizar funciones de Velneo...?

Este tema creo que da para mucho, seguramente que hay que empezar a plantearse entonces si realmente en operaciones comprometidas la herramienta es confiable al 100% para poder dejar en sus manos toda la operación.

Un saludo

Chechu


([N2] zenonburgos) #7

Excelentes respuestas a todos, con respecto a la ralentizacion de los procesos tuve ese problema hace meses y la solución es correrlo en tercer plano, tengo un sistema de inventario en el que cada vez que consulto los movimientos de un artículo se dispara un proceso que recalcula los saldos y va de maravilla, otra solución sería activarlo por medio de un botón y cuando se tenga dudas en los saldos se ejecuta. Gracias a todos de verdad


([N1] wikan) #8

Yo confío plenamente en las actualizaciones, normalmente cuando fallan es por que hemos programado algo…raro. En mi caso es que se actualizaba la misma ficha desde movimientos y desde existencias, por lo que la primera actualización bloquea la ficha y no deja que entre la segunda.

Por lo demás, nunca he tenido problemas, es más. Pienso que podría dar más problemas usar procesos que actualizaciones a la hora de hacer lo mismo. Ya que tenemos que tener en cuando altas/bajas/modificaciones.

Pero que se llega a lo mismo, si. Ahora que cada uno use lo que más le guste o se sienta más cómodo. Es lo bonito de los problemas y las soluciones, que hay muchas.


([N2] ramiro) #9

Buenos días:

Mi opinión es clara: las actualizaciones funcionan bien y es la solución más funcional para aquello para lo que están diseñadas.

Ahora bien: SIEMPRE tengo un proceso que las recalcula cuando lo necesito porque más tarde o más temprano voy a necesitarlo (bien porque he cambiado de opinión y modifico una condición de actualización, bien porque la definí tarde, bien porque hubo una caída y no puedo estar seguro de si una actualización se completó o no, o incluso, porqué no, por si acaso…)

Solo necesito un Formulario que me permita seleccionar (con unos cuantos flags) qué actualizaciones quiero recalcular, un botón de ejecución, tarea a tercer plano y listo. También puede automatizarse ejecutando el proceso completo con una función remota que se lance, por ejemplo, cada 3 meses a las 3 de la madrugada de un sábado.

Saludos. Ramiro


([N1] RicardoOrts) #10

Con un buen diseño, las actualizaciones funcionan a las mil maravillas (cero problemas). Pero somos (y me incluyo) muy tendentes a introducir nuevos campos en las tablas, despues de tener en producción una aplicación. Ahí hay que recalcular los valores (pero eso un programador en cualquier base de datos sabe que tiene que pasar por ahi. Es el precio a pagar por no definir las cosas al principio). Por lo demas, no veo ningun tipo de ventaja a utilizar procesos sobre actualizaciones, la verdad es que son mucho mas engorrosos y suelen ser un coladero de problemas. Y esta es mi modesta opinion.


([N3] chechualta) #11

Buenos días otra vez:

Si las actualizaciones son seguras, no sería necesario realizar procesos, y si realizamos un proceso para asegurarnos los cálculos de la base de datos, es que no hay fiabilidad al 100% de las actualizaciones, yo creo que falta cierta seguridad a la hora de realizar las actualizaciones, tal como una variable que nos indique que ha sido ok toda la transacción, ó al contrario seguramente, lo que nos hace falta es que nos indique donde ha fallado una transacción, sería la información más veraz.

Por ejemplo, como bien diría mucha gente de la comunidad ¿Que puede suceder cuando hay un corte de luz…? Lo más probable es que no se hayan ejecutado las actualizaciones, y si se han comenzado a realizar, seguramente no serán correctas, y aún así no nos fiaríamos nadie de la integridad de la base de datos en ese momento, con lo que se plantea la disyuntiva de poder ejecutar un rollback como en SQL ó realizar procesos para poder dejar al día todos los datos que tengamos.

Obviamente lo primero que a mi juicio es necesario es esa información del lado del servidor que informe del error sucedido, y a partir de entonces tomar una decisión al respecto. Mientras tanto empiezo a pensar que es mejor hacer procesos y asegurar que los pasos que damos son correctos


([N4] ns) #12

Buenas,
opino que las actualizaciones funcionan bien.

saludos,
santiago


([N2] overBCN) #13

Hola,
Ya confío plenamente en ellas, no dan problemas. Y como comenta Ramiro, tener un proceso que pueda hacer validaciones o re-cálculos, no está de mas.
Saludos


([N2] Mgalvezh) #14

chechualta, la base de datos de Velneo es transaccional, si se corta en un momento dado, la transacción se deshace, y todo vuelve a un estado consistente, si una actualización se hizo y otra no, dentro de una transacción, se deshace al reiniciar el vserver, quiero pensar que esto está ‘garantizado por Velneo’, si no sería una herramienta inutil, sobre todo que las transacciones son “transparentes” al programador, por lo menos esto tengo entendido y zanjado desde hace mucho tiempo.

PD:Aunque iempre se pueden usar desde procesos al ‘gusto’.

Saludos.
Miguel.


([N3] chechualta) #15

Buenas tardes Miguel:

Muchas gracias por la aclaración, yo por ahora lo que he oído a todo el mundo recomienda actualizaciones, pero lo que he visto en este hilo es que todo el mundo tiene un “PERO” para asegurar esas operaciones, de ahí mi pequeña laguna, la cual veo la necesidad de tener una respuesta por parte del servidor de que las transacciones se han hecho correctamente ó no, me figuro que será por la inseguridad que genera el no tener una respuesta

Un saludo

Chechu


([N4] eic) #16

Hola.

Tener procesos de recálculo no implica desconfiar de las actualizaciones, me gusta más llamarlo, como dice un amigo mío, “programación a la defensiva”. Del mismo modo, cada vez que hago una actualización en una aplicación en producción, hago una copia de seguridad previamente (nunca la tuve que utilizar, pero en informática “siempre” pasan cosas, y no son sólo achacables a Velneo, podría haber un corte de luz, un fallo de hardware… o el Armaggedon). Hay que estar siempre preparados.

Las actualizaciones de Velneo son una de esas funcionalidades geniales de la plataforma, que ahorran mucho esfuerzo al programador y que uno añora en cualquier otra herramienta.