viernes, 30 de octubre de 2009

Autonumber de lineas - Una linda complejidad para esconder

Con GeneXus se pueden definir campos autonumber y los mismos se numeran en forma automática y sirven cuando se necesita una clave numérica formada por un único campo.

Lo que me gustaría poder solucionar de forma mas sencilla es cuando se quieren tener números que no se repitan en una tabla subordinadas, por ejemplo el número de renglón en la factura.

Para esto, hay que poner una regla serial(AttNum, AttBase, Incremento) y agregar un atributo (AttBase) artificial en el cabezal, que guarde el último número dado para ese registro.

Esto no se podría solucionar de una forma mas fácil para quienes programamos?.

Me gustaría poder ponerle al atributo FacturaLineaId que es autonumber y que no fuera necesario tener que escribir la regla serial(), ni agregar el atributo en forma manual en el cabezal de la factura que no se va a usar para nada mas que para numerar. El atributo podría llamarse FacturaLineaId_Autonumber y lo puede agregar automáticamente Genexus.

Puede haber alguna complicación que ahora no veo para implementar esto, pero si se pudiera hacer seria bastante práctico.

4 comentarios:

  1. La regla serial es un mal necesario cuando el rendimiento es un punto importante del sistema. Aunque suene redundante y desprolija, no?

    Podrías solucionarlo con una formula (pero esta tendría que hacer una consulta cada vez que vas a hacer un insert).

    ResponderEliminar
  2. Yo lo tengo solucionado como comenta zonic. Una regla que dispara un reporte para buscar el ultimo nro de linea asignado, (esto consulta a la bd) pero me evita tener que armar un campo para guardar ultimo nro, y una reorganización y demases yerbas que acarrea este cambio.

    Saludos a todos!

    ResponderEliminar
  3. Zonic e Israel:
    Creo que todas estas consideraciones podrian ser "detalles de implementacion" que podrian estar ocultos al desarrollador, haciendo una especificacion de alto nivel y que GeneXus se encargue de implementarlo de la mejor forma posible.

    ResponderEliminar
  4. Es verdad, no estaría nada mal, a mi serial es una regla que me toca casi a diario.

    Pero si fuera así genexus al implementarla debería dejarte seleccionar la opción que sea más adecuada a tu problema...

    ResponderEliminar

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.