Una de las tareas más engorrosas en el desarrollo de
aplicaciones es la actualización de la base de datos. GeneXus tiene una solución
muy potente para este problema cuando se trabaja a través de una interfase: las
transacciones GeneXus. En este escenario, con unas pocas líneas de código, la
transacción GeneXus provee de todas las reglas de validación, controles de
integridad de datos y todo lo necesario para actualizar la base de datos.
Ahora ¿podemos usar toda la potencia de este objeto
GeneXus en otro tipo de escenarios como en procesos batch o Web Services? La
respuesta es sí, y la forma de hacerlo se llama Business Components, una
propiedad de las transacciones liberada con la versión beta 2 de GeneXus
Yi.
Cada transacción GeneXus (TRN) tiene una propiedad
denominada "Is Business component" que al ser seleccionada, permite que dicha
transacción pueda ser invocada desde otro objeto GeneXus de una manera
silenciosa, sin usar un formulario, a través de un nuevo tipo de datos. Además,
BC puede definirse como un Web Service -es decir invocar las transacciones como
un servicio Web-permitiendo la actualización de la base de datos via
SOAP.
Esta propiedad otorga aún mayor calidad, productividad y
menor costo de mantenimiento en el desarrollo de aplicaciones con GeneXus.
Más calidad y mayor seguridad porque el
manejo de datos a través de BC no sólo asegura la integridad de los datos,
también asegura su validez con respecto a las reglas del negocio.
Más productividad, porque son fáciles de
usar. Se pueden definir múltiples interfaces de usuario sobre los mismos datos,
asegurando su integridad en cada caso
Menor costo de mantenimiento ya que, por
ejemplo, al incluir una nueva regla sólo hay que incluirla en el BC y no en cada
programa que maneja los datos.
Veamos algunos ejemplos de uso de BC:
1- La actualización a la base de datos vía un
procedimiento, donde, en lugar de usar los comandos New o For Each, puede usarse
un BC para actualizar directamente la base de datos. De esta forma, se aplicarán
los mismos controles de la transacción sin necesidad de duplicar código.
2- La necesidad de proveer una forma más sofisticada
de interacción (interfase) que la que ofrece el objeto transacción, por ejemplo,
para actualizar dos TRN diferentes en el mismo formulario. En este caso, el uso
de BC en un Work Panel o Web Panel hace que la implementación de la lógica del
negocio sea muy fácil, ya que todas estas reglas y controles están encapsuladas
en cada uno de los BCs invocados.
3- La posibilidad que las aplicaciones permitan
una forma de ingreso de datos remoto -además del ingreso de datos via winforms o
webforms- para facilitar la interacción con aplicaciones de terceros. Aqui la
combinación de Web Services y BC hace que esto sea algo muy simple de
implementar.
4- También pueden ser la solución para problemas más
complejos, en otros escenarios, como en el caso de un usuario que no está
conectado a Internet en forma constante. Este usuario puede ejecutar en forma
local una transacción en su PDA, PC o DBMS local y dejarla en espera, de manera
que la transacción se ejecute en la DBMS central apenas se conecte a Internet.
Los Business Components pueden utilizarse en los
generadores Java y .Net para plataforma Win o Web.
Más información:
http://wiki.gxtechnical.com/wiki/tiki-index.php?page=Business+components
Mi experiencia usando Business
Components
http://wiki.gxtechnical.com/wiki/tiki-index.php?page=My+Experience+using+BC