miércoles, 23 de mayo de 2012

Los diez mandamientos de K2BWebPanelDesigner



Still shot from the movie: The Ten Commandments.


K2BWebPanelDesigner es una herramienta única en el mercado que permite construir web panels de una manera rápida y sencilla. A partir de una única especificación realizada en una parte nueva del objeto llamada K2BDesigner, se crea y mantiene las diferentes partes de un  webpanel.

















Para poder usarlo de manera óptima hay que tener en cuenta sus diez mandamientos.
Así que apróntese para recibir esta revelación en este post.



Mandamiento 1 - No tocarás el WebForm:

El WebForm es completamente generado por  K2BWebPanelDesigner. Así que deja que la herramienta haga su trabajo. Puedes construir todo en la parte K2BDesigner. Este mandamiento tiene una única excepción: el mandamiento ocho. Pero eso lo veremos más adelante... por ahora, no toques el WebForm!




Mandamiento 2 - No construirás nodo por nodo
K2BWebPanelDesigner parte de un webform vacío, por lo tanto no posee instancia por defecto como los patrones que parten de una transacción. Pese a esto no tendrás que construir todo nodo por nodo sino que  cuentas con ayudas potentes para construir varios nodos en un solo click. Un ejemplo de esto es la funcionalidad de Add Grid From Transaction donde seleccionando una transacción es posible tener la grilla con sus atributos, filtros y órdenes.



Mandamiento 3 - Te abstraerás de la la plataforma web

Si te fijas en la estructura de árbol del diseñador no aparecen conceptos de html como pueden ser: tables, divs, td, tr, etc. Uno trabaja con conceptos más abstractos de forma tal que la estructura quede más clara y entendible. K2BWebPanelDesigner se encarga de convertir dicha especificación a la plataforma web.





Mandamiento 4 - Las reglas son todas tuyas

El WebPanelDesigner  no genera ninguna regla así que usuario de K2BWebPanelDesigner puede operar libremente con las reglas del objeto.






Mandamiento 5 - Puedes definir variables

En la parte K2BDesigner se definen las variables que aparecen en pantalla de forma automática, así como otras variables que usa el K2BWebPanelDesigner o que éste define para hacer más fácil el desarrollo(ej: Windows, Context, TrnContext). Aquellas variables adicionales que serán utilizadas en nuestro código pero no estarán en pantalla  deberán ser definidas directamente en la parte de variables del objeto GeneXus.








Mandamiento 6 - Compartirás los eventos
Cuando vamos a compartir algo, está bueno tener bien claro qué es de cada uno.
Así que para ser justos, el usuario  tendrá su propia sección para escribir código y  K2BWebPanelDesigner va a tener la suya.

La forma en que se comparte el código de los eventos es sencilla:

  • Todos los bloques de eventos son de K2BWebPanelDesigner
  • Todas las subrutinas que empiezan con U_ son del usuario de K2btools.

Pero no se preocupe. K2BWebPanelDesigner no es egoísta. Tiene el mismo gesto que el niño en la foto.  Genera en cada evento invocaciones a subrutinas que comienzan con U_ para que el usuario pueda escribir su propio código.  Mediante este código es posible definir el comportamiento de una acción, implementar cómo es la carga de una grilla, escribir código en el evento refresh, start, o cambiar el comportamiento del código generado por K2BWebPanelDesginer.

Como ejemplo si defines la siguiente acción


 K2BWebPanelDesigner generará un evento que invocará a una subrutina que será implementada por el usuario. 

Event 'E_SelectCustomer'
// ---- K2BTools - Do Not Change, Editor Method ----
Do 'U_SelectCustomer'
EndEvent

Sub 'U_SelectCustomer'  // Subrutina a ser implementada por el usuario.

EndSub

A dicha acción se le puede configurar seguridad, confirmación condicional, si es multi row o no. Todo el código encargado en resolver dichas cuestiones será encapsulado en el evento, dejando como único punto a resolver para el usuario la implementación de la acción, independizándose de cómo es invocada.

Como ayuda en una acción  no es necesario ir a la parte de los eventos y buscar la subrutina. Parado  en la acción se puede seleccionar "Go To Event" y  acceder directamente a la subrutina. Las que se pueden implementar son aquellas en las que aparece el ícono con el usuario.







Mandamiento 7 - No te preocuparás del renombre de los controles:

Supongamos que en el código que se mostró anteriormente la subrutina de nombre U_SelectCustomer
se encarga de almacenar el cliente actual en una variable en pantalla de nombre &CurrentCustomerId.


Sub 'U_SelectCustomer'
&CurrentCustomerId = CustomerId
EndSub


Asumamos que por puro capricho, se renombra esa acción y se le coloca el nombre de ChangeCustomer. También  a la variable en pantalla CurrentCustomerId se le renombra a MyCustomerId
Pues bien, basta de miedos, K2BWebPanelDesigner detectará que se está renombrando la acción y la variable; y renombrará automáticamente el código.











Sub 'U_ChangeCustomer'
&MyCustomerId = CustomerId
EndSub

Event 'E_ChangeCustomer'
// ---- K2BTools - Do Not Change, Editor Method ----
Do 'U_ChangeCurrentCustomer'
EndEvent










¿Magia?... no, no. Es K2BWebPanelDesigner.






Mandamiento 8 - Podrás tocar el web form sólo cuando sea estrictamente necesario
Bien, es hora de flexibilizar el mandamiento uno. Para esto vamos a  permitir agregar una user region que generará un div dentro del cual se podrá  ir a la parte del web form y colocar lo que se desee ahí dentro. Puedes incorporar allí lo que desees.













Mandamiento 9 - Lo que K2BWebPanelDesigner junta el usuario puede separar

Una vez que aplicas K2BWebPanelDesigner, puede surgir el temor o miedo de ¿ahora para siempre mi web panel será mantenido por el diseñador? Si le quiero pasar el web panel a alguien que no tiene la herramienta ¿cómo hago? Muy sencillo. Lo que K2BWebPanelDesigner junta el usuario lo puede separar y puedes eliminar la parte del WebPanelDesigner, para pasar a mantener el objeto a mano, parándote en el mismo y seleccionando en el menú Edit->Release K2BObjectDesigner. Esto lo único que hace es eliminar la parte K2BDesginer. No elimina ni los eventos, variables, ni el web form ya generado.




Mandamiento 10 - Puedes volver en el histórico

Algunos dicen que pasado pisado. Quizás lo digan porque utilizan sólo patrones para generar web panels. En ese caso; el pattern y el web panel son objetos diferentes, y si deseo volver atrás debo volver atrás en el pattern y también en el WebPanel. Pero con K2BWebPanelDesigner, al formar parte de la especificación del objeto es muy fácil volver atrás. Incluso si deseas pasarle un web panel a alguien que no tiene el K2BWebPanelDesginer puedes usar el mandamiento 9 para liberarlo; se lo pasas y luego vuelves en el histórico al objeto cuando tenía K2BWebPanelDesigner aplicado.



Estos son los únicos diez mandamientos que tienes que aprender para usar esta herramienta.  Puedes descargar la herramienta desde aquí. No necesitas tener K2BTools instalada para usarlo.
Esperamos tu review dentro del market place y por cualquier consulta puedes preguntar desde el marketplace o suscribirte a nuestro foro.

Puedes ver aquí un video de cómo crear un WebPanel con K2BWebPanelDesigner en menos de 5 minutos. 

Estamos en contacto.

Federico Dominioni
K2BTools






5 comentarios:

  1. Excelente Federico!

    Muchas Gracias, yo solo conocía 2 o 3, pero sin claridad, de ahora adelante me comprometo a no pecar ;-)

    gab

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Muy Bueno Federico, las user regions ya se pueden usar en la nueva version? o sea estan confiables? Usamos esta herramienta para todos los WP excepto algunos pocos que teniamos que hacer a mano para no usar las user regions, Es lo unico que le faltaba a esta excelente herramienta, saludos!

    ResponderEliminar
    Respuestas
    1. Te respondo yo con el permiso de Fede. Las User Region funcionan ok. :)

      Eliminar
  4. Impecable Federico...

    Confieso que he pecado, jajajaja... pero ha sido un gran aprendizaje.

    Desde el principio, las UserRegion me parecieron una excelente idea, pues así nos permite escapadas eventualmente, pero confieso que procuro acudir cada vez menos a ellas.

    Un abrazo,

    Carmen

    ResponderEliminar