Release Notes Versión 7.0 Índice Índice ............................................................................................................................................................. 2 Novedades de la versión ............................................................................................................................... 4 Patrones básicos K2BTools ........................................................................................................................... 5 Aplicaciones multi-tenant con K2BTools .................................................................................................. 5 Mejoras en generación de Reportes PDF ................................................................................................. 6 Más opciones para personalizar los objetos generados ........................................................................... 6 Posibilidad de ocultar grilla de segundo nivel en transacciones .............................................................. 7 Seguridad .................................................................................................................................................. 7 Mejoras en K2BLoadActivityList............................................................................................................ 8 Actividades diferentes de seguridad para reportes PDF y Excel........................................................... 8 Integración con GAM en XEv2 .............................................................................................................. 8 Chequeo de seguridad en los business components ............................................................................ 9 Mejoras en la búsqueda............................................................................................................................ 9 Mejoras en traducción de aplicaciones generadas con K2BTools .......................................................... 10 Errores corregidos:.................................................................................................................................. 11 K2B Web Panel Designer............................................................................................................................. 13 Mayor flexibilidad: .................................................................................................................................. 13 Propiedad Custom Render ................................................................................................................. 13 Paginado correcto con automatic refresh en XEv2............................................................................. 13 Personalización de código de paginado .............................................................................................. 13 Configuración completa de seguridad en las acciones ....................................................................... 14 Grillas desde DataProvider ..................................................................................................................... 14 Add Grid From DataProvider............................................................................................................... 14 Invocación al Data Provider ................................................................................................................ 16 Paginado.............................................................................................................................................. 17 Customizacion ..................................................................................................................................... 17 2 Errores corregidos:.................................................................................................................................. 17 Licenciamiento K2BWebPanelDesigner. ..................................................................................................... 18 Instalación ................................................................................................................................................... 19 Anexos......................................................................................................................................................... 21 Cambios en el theme usado por K2BTools ............................................................................................. 21 3 Novedades de la versión La principal novedad de la versión 7.0 es la inclusión de K2BWebPanelDesigner como parte de la suite K2BTools, al terminar su proceso de beta. La versión incluida de K2BWebPanelDesigner es distinta a la versión RC, ya que incluye correcciones de errores detectados en esa versión, y también algunas funcionalidades nuevas. Las mejoras respecto a la versión RC se encuentran en la sección “K2BWebPanelDesigner”. Los patrones básicos de K2BTools también han recibido mejoras en esta versión, estas mejoras pueden encontrarse en la sección “Patrones básicos K2BTools”. La inclusión de K2BWebPanelDesigner en K2BTools, finalizando al mismo tiempo su proceso de beta, provoca algunos cambios referentes a cómo es licenciado K2BWebPanelDesigner. Estos cambios están detallados en la sección “Licenciamiento”. Por último, se incluye, en la sección “Instalación” una guía para instalar el producto y evitar posibles problemas en el proceso. Esta versión de K2BTools está disponible solo para clientes que estén con mantenimiento al día. Por tanto deberán seguir unos pasos para actualizar su licencia que serán detallados en la sección de “Instalación” 4 Patrones básicos K2BTools Aplicaciones multi-tenant con K2BTools En esta versión se incorporan funcionalidades orientadas a que sea más sencillo construir aplicaciones multi tenant. Ahora, se puede establecer un data selector universal dentro de las configuraciones de K2BTools que será aplicado en todas las grillas generadas con K2BTools. Para poder usar un data selector universal, este deberá recibir un único parámetro que se corresponda con la variable “&Context” utilizada en los objetos generados con K2BTools. Una vez establecido, el data selector será usado en todas las grillas, siempre que no se defina en el nodo correspondiente otro data selector de forma explícita. También puede indicarse en cualquier nodo con grilla que no se desea usar ningún data selector, en el caso en que no se desee usar un data selector para esa grilla particular. Para completar esta funcionalidad, fue necesario también realizar mejoras en el manejo de Data Selectors dentro de los patterns de K2BTools. En particular, se mejoraron los siguientes aspectos: 5 1. El Data Selector asociado a una grilla es usado tanto en el work with como en los reportes PDF y Excel asociados al nodo donde fue agregado. 2. Es posible ahora agregar argumentos al nodo Data Selector en la instancia de K2BEntityServices y K2BPrompt. Mejoras en generación de Reportes PDF Se hicieron mejoras en esta versión en la generación de reportes PDF para mejorar la apariencia de estos en algunos casos. La mejora está relacionada a cómo se muestran los atributos y variables en la grilla. Para el caso en que se tienen atributos basados en dominios enumerados, se muestra el resultado de aplicar la función “EnumerationDescription()” al atributo/variable (con lo que se mostrará la descripción del valor dentro del enumerado, y no el valor en sí). Se agregó en k2bentityservices settings una propiedad que permite deshabilitar esta funcionalidad debido a un error que está detallado en el SAC #32972. Esta propiedad la pueden encontrar dentro de standardactions->report y la misma es show “Enumerated Domains Descriptions”. En el caso en que se tienen variables con nodos Control Info dinámico donde se indica que se muestren descripciones, y se establecen las propiedades “Item Value” e “Item Description”, se agrega código en el reporte generado para recuperar la descripción correspondiente al valor del atributo/variable. Más opciones para personalizar los objetos generados En esta versión se agregaron opciones para aumentar las posibilidades que posee un usuario de K2BTools para modificar la apariencia de las instancias generadas. Se agregó la posibilidad de modificar la posición donde se muestra el botón search en los objetos work with y sub work with. Esta propiedad se encuentra en las configuraciones de K2BTools, bajo la categoría filters con nombre SearchButtonLayout. Sus valores posibles son Right o Bottom e indican la posición del botón con respecto a los filtros. 6 Además, en las configuraciones generales de K2BTools, en la categoría filtros y transacción, se agregó la propiedad “Descriptions Layout”. Los valores posibles para este campo son “Left” (es el valor por defecto, con esto se generan los objetos de la misma forma que hasta la versión 6.0) o “Top” para ubicar las descripciones por encima del campo. Description Layout: Top Description Layout: Left Relacionada con la propiedad anterior, se agregó una propiedad de nombre “Description Layout” en cada nodo que contiene atributos planos (no en grilla) por ejemplo los filtros. Sus valores posibles son “Default”, “Left”, “Top”. El valor “Default” indica a patterns que debe seguir lo establecido en las configuraciones generales de K2BTools, mientras que los valores “Top” y “Left” indican que en ese nodo particular debe usarse esa lógica, sin importar lo establecido en el settings. Importante: 1. Los cambios realizados sobre las configuraciones generales de K2BTools son utilizados en las aplicaciones del pattern posteriores a la modificación. Por lo tanto, si se modifica alguna de las propiedades mencionadas, y no se vuelven a aplicar los patrones, estos cambios no serán visibles. En casos de KBs grandes con muchas instancias de patterns, para aplicar todas las instancias se puede modificar el settings del pattern K2B Entity Services, y correr la aplicación con F5 (si la versión tiene “Dynamic pattern update” en “Yes”, antes de generar la aplicación se actualizarán todas las instancias de patterns). 2. En caso de querer hacer uso de esta funcionalidad, y estar trabajando en una KB creada usando una versión anterior de K2BTools, lea el anexo “Cambios en el theme usado por K2BTools” para obtener instrucciones sobre cómo actualizar el theme de la KB para lograr la misma apariencia que en las imágenes mostradas arriba Posibilidad de ocultar grilla de segundo nivel en transacciones En esta versión la grilla y la sección superior que permite ocultarla o mostrarla, se agrupan en un div con control name. De esta forma en GeneXus X Evolution 2 es posible ocultarlo con una única línea de código. Seguridad Esta versión incorpora varias mejoras en el manejo de la seguridad tanto para Genexus X Evolution 1 como para la Evolution 2. 7 Mejoras en K2BLoadActivityList En la versión anterior, existían casos en los que el texto del programa era muy largo y generaba problemas. En esta versión se intentó mitigar este problema mediante el agregado de dos propiedades. Estas son: • Ignore Standard Activity Type: Si su valor es “True”, no se agrega el código correspondiente a las actividades estándar en la generación de este procedimiento. • Ignore Pgm Name: Si su valor es “True”, se ignoran los nombres de programa. Ambas propiedades se encuentran en el nodo “Templates” de la configuración del patrón K2B Entity Services. Usando estas propiedades puede disminuirse significativamente el tamaño del programa generado. Si se elige realizar esta modificación, es necesario asociar a todas las entidades las actividades estándar en los objetos que invoquen a este procedimiento. Actividades diferentes de seguridad para reportes PDF y Excel En esta versión pueden definirse actividades diferentes para el PDF y Excel. Para esto en el nodo “Templates” del K2BEntityServices Settings se agregaron dos propiedades “Export User Activity Type” y “PDF User Activity Type”. Si tienen algún valor, este es utilizado como “User Activity Type” en la generación de PDF’s y Excel’s Integración con GAM en XEv2 Para mantener el mismo esquema de seguridad de K2BTools y además poder usar el GAM (GeneXus Access Management), en los objetos generados por K2BTools se seteará la propiedad permisión prefix del objeto generado. Su valor será el nombre de la transacción asociada al objeto. Esto hará que no sea necesario usar k2bloadactivitylist, dado que los permisos serán dados de alta automáticamente por el GAM. Más información sobre el GAM puede ser encontrada aquí: http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Category%3ABuilt-in+Security+Module++GeneXus+Access+Manager+%28GAM%29, En caso de no querer esta funcionalidad pueden deshabilitarla en el K2BTools Settings bajo el nombre SetPermissionPrefixInAllObjects. 8 Chequeo de seguridad en los business components Se agregaron dos propiedades en el nodo “Transaction” de la configuración del patrón Entity Services: “Check security in BC” y “Not Authorized In BC Error Message” (dentro de la categoría General), que indican si debe chequearse seguridad en las transacciones cuando son usadas como BC, y cuál es el mensaje de error a emitir cuando el usuario no está autorizado. Además, se modificó el código generado en el evento Start de las transacciones, pasando la llamada al proc “K2BIsAuthorizedActivityList” al interior de un tag web. Esto elimina algunos errores asociados al uso de transacciones como BC en contextos donde no está disponible la sesión web. Mejoras en la búsqueda Se agregó la posibilidad de que al generar la instancia por defecto del pattern K2BEntityServices; se pueda elegir si las conditions las genera por like o por like + “%” o cualquier otra condición. Para esto se cuenta con la propiedad StringSearch Cuando se genera la condition para un string, lo que hace k2btools es sustituir donde dice <attName> por el nombre del atributo y &<varname> por el nombre de la variable. Para que las instancias que ya están generadas puedan actualizar estos cambios se cuenta con la herramienta avanzada Update All Conditions. 9 Para esto hay que indicarle a la herramienta cuál es el formato anterior que tenían las conditions y el la reemplazará con el que está especificado en el general settings. Mejoras en traducción de aplicaciones generadas con K2BTools En esta versión, todos los textos incluidos en objetos generados por patterns pueden modificarse a través de las configuraciones de Patterns. Para aquellos que vienen ya trabajando con K2BTools, pueden seguir utilizando el mecanismo actual, en tal caso pueden en EntityServices settings -> Labels->Use Deprecated Transaction Scheme en true y seguir trabajando como lo estaban haciendo antes. 10 En caso de tenerla en false, los literales podrán ser modificados en el nodo labels. Errores corregidos: • • • • • • En la versión 6.0U1 de K2BTools, si se tiene una transacción que indica que no debe chequear seguridad, y esta transacción es referenciada en un Sub Work With se genera código de seguridad a la hora de mostrar el tab en el EntityManager asociado. En esta versión este problema fue corregido (Se agrega el código de seguridad sólo si la transacción asociada al Sub Work With indica que se debe chequear seguridad). Se solucionó un problema presente en versiones anteriores de K2BTools, donde no funciona establecer el valor de las propiedades “After Insert” y “After Update” en “None”. Se solucionó problema en K2BTrnForm, que causaba errores cuando se indicaba que un atributo de la transacción fuera no visible en la instancia del pattern. Fixed Data en K2BEntityServices con visible en false en la primera variable, la misma no aparecía en el Web Form y además se generaba en el evento start código para hacerla invisible (esto generaba un warning durante el build). La parte Web Form de la transacción deja de quedar en rojo al aplicar el pattern K2BEntityServices o K2BTrnForm. Nota: esto elimina el provider de la transacción. Si se remueve el pattern K2BEntityServices volverá a recuperar su provider. En caso de error al remover la instancia de patterns hay una herramienta que vuelve a agregar el provider a la transacción. Esta herramienta se encuentra en K2BTools-> Advanced-> Recover Transaction GeneXus Default. Si se aplicaba patterns a una transacción que tenía una paralela; agregaba un tab asociado a esa transacción y colocaba código para crear la transacción en un web component. Si esta transacción no tenía el type en component daba error de spec. En esta versión hasta que no sea 11 • • • • web component no se agregará el tab y se dará un warning al aplicar el patrón advirtiendo de la situación. Se corrige problema que provocaba que cuando se cerraba la KB quedaba la licencia de K2BTools tomada. Se mejoró la subrutina “SaveGridState” generada en Work With’s y Sub Work With’s para manejar correctamente fechas anteriores al año especificado en la propiedad “First year of 20th century” del generador. Si un atributo clave de la transacción comenzaba con “Mode” se producía un error al generar el componente general ya que el pattern remplazaba el string “Mode” por “K2BTrnMode”. En los filtros con combo dinámico se colocaba de valor por defecto para el texto de empty item GX_EmptyItemText. Al ser un filtro este no era el valor correcto. Por tanto en esta versión el valor por defecto pasa a ser GX_AllItems. 12 K2B Web Panel Designer Mayor flexibilidad: Propiedad Custom Render En esta versión se podrá configurar la propiedad custom render en el WebPanelDesigner. A nivel de grilla se habilita esa propiedad. Paginado correcto con automatic refresh en XEv2 En la XEv2 es posible usar automatic refresh tanto en grillas con tabla base como sin tabla base. Cuando se cambia un filtro automáticamente se va a la página uno. Personalización de código de paginado Ahora será posible para que en los eventos de paginado se invoquen a subrutinas que comiencen con U_. Este comportamiento hay que habilitarlo por grilla. Una vez seteado en true se invocará una subrutina de usuario en cada evento de paginado. 13 Configuración completa de seguridad en las acciones Es posible configurar de forma completa la seguridad dentro de las acciones del WebPanelDesigner. Grillas desde DataProvider En las aplicaciones cada vez es más necesario encapsular la navegación sobre los datos, independizarlos de la fuente desde la que son obtenidos y lograr una buena performance en su carga. Esto se puede hacer en GeneXus mediante el objeto Data Provider. Add Grid From DataProvider De una manera sencilla, es posible utilizar un Data Provider para cargar las grillas. Para ello, K2BWebPanelDesigner incorpora un nuevo tipo de grilla basada en Data Provider. Se agregan las 14 acciones Add FreeStyle Grid / Add Grid from Data Provider para permitir seleccionar el Data Provider con el que se desea cargar la grilla y automáticamente se creará la grilla basada en éste. Esta grilla contendrá los campos especificados en el SDT de salida. Por ejemplo si el SDT de salida es el siguiente: La grilla cargada desde ese Data Provider tendrá las siguientes variables 15 Se leerá la regla parm del Data Provider. Si en la parm la primera variable tiene como nombre OrderedBy o OrderBy se agregará un nodo order en la instancia. Por cada variable de la parm, que no se llame PageNumber ni PageSize y que esté basada en un dominio u atributo se creará un filtro. Invocación al Data Provider A la hora de invocar al Data Provider, se pasará como parámetro en caso de tener el orden seleccionado en la grilla. Para los filtros intentará mapear cada uno de ellos con los que recibe el Data Provider. En caso de que el nombre del filtro, sea igual al nombre del parámetro o al nombre del parámetro + _filter el mapeo se hará automático. En caso contrario, el usuario deberá mapear los filtros manualmente. Para esto: • Por cada parámetro filtro del Data Provider se definirá una variable de nombre &DP_Filter_ + <paramterName> + _<GridName> • Se invoca a una subrutina de usuario de nombre U_PrepareDataProvider(<GridName>) para que el usuario pueda hace el mapeo manualmente. 16 Paginado El Data Provider puede ser sin paginado o con paginado. Si es sin paginado, la paginación de los datos se hace en el web panel, de la misma forma que está implementado para grillas sin tabla base ni for each inferido. Si el Data Provider posee paginado propio, se utiliza haciendo más eficiente la carga. Para detectar que un Data Provider posee paginado los últimos dos parámetros del Data Provider tienen que tener como nombre &PageNumber y &PageSize respectivamente. Customizacion En las grillas con Data Provider se podrá modificar el Data Provider. Esto es posible hacerlo en el nodo grid mediante la propiedad Data Provider Cuando la grilla tiene un Data Provider seteado, aparecerá a nivel de variable una propiedad de nombre LoadFromDataProvider. Si está en true se intentará cargar esa variable desde el Data Provider, en caso de que este en false no se cargará y el desarrollador podrá asignarle un valor en las subrutinas de usuario. Errores corregidos: • Importación: o No se podía importar el reléase de un web panel hacia otra KB. Al importarse si el objeto en la KB destino tenía ese mismo web panel con el diseñador aplicado seguía con el diseñador aplicado. o No era posible importar un web panel que en la parte K2BDesigner tuviera solamente el nodo raíz. • Se corrige el uso de scroll en la Evolution2. • Subrutina U_Search no permitía ser editada por el usuario. 17 Licenciamiento K2BWebPanelDesigner. Para usar tanto K2BTools como K2BWebPanelDesigner sin restricciones, es necesario tener licencias de K2BTools 7.0 instaladas. En caso contrario es posible solicitar una licencia de K2BTools Free Edition que permite: • Mantener hasta 20 web panels con K2BWebPanelDesigner. • Mantener 20 instancias de cada uno de los patrones de K2BTools. Nota: La versión “Free Edition” no permite desasociar K2BWebPanelDesigner de un Web Panel desarrollado con este (No se permite hacer “Release” del objeto). En caso de querer realizar esta acción, habrá que eliminar el objeto o abrir la KB sin K2BWebPanelDesigner instalado y exportar el objeto a otra KB. 18 Instalación Importante: Si usted viene utilizando versiones anteriores de K2BTools con licencia full, deberá actualizar las mismas a la versión 7.0. Para hacer esto deberá tener el mantenimiento al día. Una vez instalada la versión, no podrá usarla de forma inmediata, tendrá que actualizar las licencias. Las licencias Free Edition no requieren actualización. 1. Si ya tenía la versión anterior de k2btools recomendamos siempre respaldar la KB usada antes de pasar de versión (crear un xpz o hacer un branch en la KB) 2. Ejecutar el setup de la instalación. 3. Poner como ruta el directorio de instalación de GeneXus. 4. Actualizar licencias de K2BTools según lo indicado en el siguiente documento(http://www.k2btools.com/files/como-actualizar-las-licencias?es) 5. Abrir GeneXus. 6. Si crea una KB desde cero, ya está listo para usar la versión. 7. En caso de estar usando una versión anterior seguir los siguientes pasos: a. Si usted ya tenía traducidos todos los literales de K2BTools y no desea pasarlos al nuevo esquema en Entity Services Settings nodo Labels, pueden setear la propiedad UseDeprecatedTranslationScheme en true. b. A partir de esta versión el WebPanelBuilder (pattern K2BWebForm) no será instalado por defecto, ya que será sustituido por K2BWebPanelDesigner. Al abrir la KB si usted tiene objetos realizados con el WebPanelBuilder se desplegará el siguiente mensaje En caso de tener objetos realizados con este patrón, es posible instalarlo. Para hacerlo en el directorio K2BTools\Deprecated hay una carpeta de nombre K2BWebForm. La misma hay que descomprimirla dentro del directorio Packages\Patterns de GeneXus. Hay que cerrar GeneXus y volver a abrirlo para que tome este cambio. 19 Para instalar K2BTools en GeneXusServer ejecutar el setup y poner como ruta GeneXusServer\VDir\BinGenexus, tomando como referencia el directorio donde está instalado GeneXusServer. 20 Anexos Cambios en el theme usado por K2BTools En las descripciones que deban crearse con Layout “Top” (sin importar si esto fue especificado en la instancia o en las configuraciones), cuando el pattern escribe el html, a las clases del tema por defecto les concatena el texto “_Block”. Por esto hay que tener las siguientes clases definidas en el tema: • TextBlock_BoxTitle_Block • TextBlock_AttDesc_Block • TextBlock_TrnAttDesc_Block • TextBlock_FixedDataBottonDesc_Block • TextBlock_FilterDesc_Block Todas estas clases deben ser hijas de las clases con el mismo nombre salvo el sufijo “_Block” y deben tener seteadas las propiedades: • display:block; • font-weigth : bold En caso de que este no sea el aspecto visual busacdo, puede ser modificado. El theme por defecto de K2BTools ya posee estas clases configuradas. 21