You are on page 1of 34

Release Notes Versión 8.

0

2

Índice
Índice ............................................................................................................................................................. 3
Novedades de la versión 8.0 ......................................................................................................................... 5
Mayor usabilidad en la aplicación generada ................................................................................................ 6
Búsqueda Universal .................................................................................................................................. 6
Mayor potencia en el WebPanelDesigner .................................................................................................. 14
Manejo de SDT en Web Panel Designer ................................................................................................. 14
Mejoras en la personalización de la interfaz de usuario ............................................................................ 19
Nuevas opciones de themes: .................................................................................................................. 19
Mejoras en configuración de Layouts ..................................................................................................... 20
Posibilidad de deshabilitar el seteo de Master Page en Web Panel Designer y Patterns ...................... 21
Mejoras de usabilidad en el desarrollo ....................................................................................................... 23
Comandos Enable / Disable K2BTools Dynamic Pattern Application ..................................................... 23
Comando “Force K2BTools Patterns Application” .................................................................................. 23
Mensajes de advertencia al detectar partes fuera del default ............................................................... 24
Mensajes de advertencia para ausencia de invocación a stack en Master Pages .................................. 24
Opción para mantener regla Parm de la transacción dentro de un slot fixed........................................ 25
Personalización de ubicación de parte Designer .................................................................................... 26
Otras mejoras.............................................................................................................................................. 27
Visualización de descripciones en reportes Excel y PDF ......................................................................... 27
Selección de columnas en runtime para Exports .................................................................................... 27
Deshabilitación global de Back to Work With ........................................................................................ 27
Posibilidad de agregar código en nodos Action ...................................................................................... 28
Propiedad para deshabilitar grids sortables ........................................................................................... 29
3

............. 32 Patterns .................................................................................................................. ..................................................................................................................................................... 33 Instalación en GeneXus Server ..... 33 Anexo I – Actualización de reportes Excel.............................................................................................................................................................Propiedad “Enable datepicker” en patterns .... 30 Errores corregidos ...................................................................................................... ............................... 34 4 ............. 29 Propiedades Height y Width en Embedded Pages ...................... 32 Instalación .................................................................. 30 Nuevas subrutinas de usuario para Add y Remove en Multiple Selections ...................................................................................................... 34 Anexo II – Incorporación del buscador universal......................................................................... 32 Web Panel Designer ...........................................................................................................................................................................................................................

Para esto hemos implementado un acceso directo a la funcionalidad de GeneXus dynamic pattern update para poder habilitar y deshabilitar de forma rápida la actualización automática de instancias de patterns.0 Entre las nuevas funcionalidades incorporadas en K2BTools 8. Mejoras de usabilidad en el desarrollo: Aquí se listan las mejoras que se hicieron en esta versión para hacerle más fácil al desarrollador usar K2BTools Otras mejoras: En esta sección se muestran varias mejoras que se incluyen también en esta versión. En este caso basados en el tema K2BModern proveemos otros nuevos temas. además de brindar mayor flexibilidad al desarrollador.0 se destaca el aprovechamiento de la funcionalidad Full Text Search de GeneXus.1 a la 8. Para el pasaje de versión de una KB con la 7. Además ahora se emiten warnings cuando se detectan situaciones anormales en la KB y se brinda una acción que aplica todas las instancias del patrón. haciendo más sencilla la integración con servicios. En estas release notes hemos dividido las funcionalidades nuevas en cinco categorías:      Mayor usabilidad en la aplicación generada: Aquí se muestra cómo hacer uso de la funcionalidad de FullTextSearch para poder tener un buscador universal en la aplicación generada. Dentro del WebPanelDesigner se sigue aumentando la flexibilidad. mediante la posibilidad de poder incorporar SDT´s directamente en pantalla. mediante la posibilidad de incorporar de forma sencilla un buscador universal en las aplicaciones generadas por K2BTools. 5 . agregando un nuevo punto de acceso a la aplicación. Por otro lado seguimos apuntando a mejorar la usabilidad de la herramienta. Mejoras en la personalización de la interfaz de usuario: En esta sección se muestran las nuevas opciones de interfaz que provee K2BTools. para hacer más sencillo interactuar con servicios que devuelven o reciben datos en forma de un SDT. Seguimos trabajando en tener una mayor facilidad en la personalización de la interfaz de usuario.Novedades de la versión 8. Mayor potencia en WebPanelDesigner: Aquí se presenta la posibilidad de agregar SDTs en pantalla directamente desde el WebPanelDesigner.0. se sugiere seguir el Anexo I.

Visión funcional El resultado final de incorporar esta funcionalidad es la inclusión de la opción de búsqueda en la aplicación generada. Ilustración 1 . aparece un campo para ingresar el criterio de búsqueda.Campo de búsqueda en la Master Page Luego de completar este campo. con el comportamiento que se describe a continuación Consultas En la Master Page de la aplicación.0 se K2BTools se agregó la posibilidad de incorporar fácilmente Full-Text Search en los sistemas generados. se puede brindar al usuario una interfaz más fluida y más agradable para hacer búsquedas. se redirige al usuario a una página con el resultado de su búsqueda: Ilustración 2 . Usando esta funcionalidad.Mayor usabilidad en la aplicación generada Búsqueda Universal En la versión 8.Resultados de búsqueda 6 .

Vista de clientes de los resultados obtenidos Este mecanismo de búsqueda acepta consultas complejas. etc. que retornará las entradas que tengan la palabra Gerente pero no la Palabra Perez.com" El motor también acepta expresiones booleanas. Ilustración 4 . como “NOT Perez AND Gerente”.Resultado de buscar "NOT Perez AND Gerente" Las consultas aceptadas están documentadas en la página del wiki GeneXus sobre esta funcionalidad.com”. Por ejemplo. es posible indicar términos como “*@example. en este caso: Ilustración 5 . Ilustración 3 .com”. las ciudades. que retornará (en este caso) todos los clientes con dirección de email en el dominio “example. Controles de seguridad Las siguientes consideraciones son hechas al momento de ejecutar la búsqueda: 7 .Pueden usarse las opciones en la parte superior para ver los resultados de un tipo particular: Los clientes.Resultado de buscar "*@example.

Ilustración 7 . 8 . Cuando se realiza la búsqueda. Si se usa la integración con el GAM el permiso será K2BToolsSerachResult_Execute 2. Formato del resultado Cada uno de los resultados tiene los elementos definidos a continuación.Composición de resultado de búsqueda Ingreso a resultados Cuando se presiona en el título de un resultado.Redirección a "Entity Manager" Administración Es posible administrar el motor de búsqueda en el panel K2BToolsIndexAdmin. Ilustración 6 . 3. Al momento de mostrar los tabs para filtrar los resultados de búsqueda. usando la API de seguridad de K2BTools. se usa esta misma API para verificar que el usuario tenga acceso a los objetos encontrados. se dirige al usuario al Entity Manager Correspondiente.1. Para que el usuario pueda realizar búsquedas deberá tener permisos a realizar la actividad de usuario: K2BToolsSearchResult. se toman en cuenta los permisos del usuario conectado. donde se habilita la opción de volver a regenerar los índices utilizando la operación reindex-all.

Nuevas propiedades en nodo Transaction A continuación se describen estas propiedades y su uso. cómo son mostrados los resultados. fue necesario incorporar nuevas propiedades a la instancia de patterns. el usuario deberá tener permisos para realizar la actividad de usuario K2BToolsIndexAdmin. Es usado en algunos casos como icono para el resultado de la búsqueda si el registro a mostrar no tiene una imagen asociada. Los cambios están acotados al pattern K2BEntityServices. Ilustración 9 . Las propiedades agregadas fueron: En el nodo raíz de la instancia Ilustración 8 . Searchable 9 .Propiedad "Entity Image" En este nodo se agregó la propiedad “Entity Image”. y. Estas propiedades afectan únicamente la generación de los diálogos de búsqueda. En el nodo Transaction En este nodo se especifican las propiedades que definirán si la entidad puede ser buscada mediante el buscador universal.Para poder acceder a la administración. en caso de poderse. El contenido de esta imagen debería representar de forma genérica a los elementos de la entidad correspondiente. o en caso de usar la integración con GAM tener el permiso habilitado de K2BToolsIndexAdmin_Execute. Cambios en patterns Para implementar esta funcionalidad.

Su valor es copiado a la propiedad “Searchable” de la transacción GeneXus. Como una transacción sólo puede ser incluida en el motor de búsqueda si es Business Component. se aprovecha la funcionalidad de highlighting presente en GeneXus. En caso de usarse.Highlighting en resultados 10 . El valor default es el Description Attribute de la transacción en caso de existir. o se usará la imagen correspondiente a la entidad (definida en el nodo raíz de la instancia). Show BC Preview as Result Description y Search Result Description La propiedad “Show BC as Result Description” indica si debe usarse un preview del BC como descripción del resultado o no. Search Result Title Esta propiedad indica cuál es el título que debe mostrarse en el resultado de búsqueda. El uso de esta propiedad está condicionado al valor de la propiedad “Search Result Displayed Image”.Esta propiedad determina si las instancias de esta transacción serán incluidas en el motor de búsqueda o no. esta propiedad se muestra solo en este caso. Si el valor de la propiedad es “False”. Search Result Displayed Image Esta propiedad determina si se usará un atributo imagen de la transacción (definido en la siguiente propiedad) como imagen para los resultados de esta entidad. se ocultan también todos los campos asociados a esta búsqueda. Ilustración 10 . El valor default es el Image Attribute de la transacción en caso de existir. Search Result Image Attribute Esta propiedad determina cuál es el atributo que será mostrado como imagen del resultado de búsqueda. Por esta razón. Prefer Object: Se usará el atributo del objeto siempre que contenga un valor válido. Los valores posibles para esta propiedad son:    Object Only: Se usará siempre el atributo del objeto que se está visualizando. se deshabilita la generación de los diálogos de búsqueda para la transacción. Entity Only: Se usará siempre la imagen correspondiente a la instancia. y la imagen correspondiente a la entidad en cualquier otro caso.

Objetos básicos La implementación de la búsqueda puede ser modificada por el desarrollador GeneXus. asumiendo que el tipo del resultado se corresponde con la transacción a la que pertenece la instancia del patrón. tanto para modificar la apariencia de las interfaces como para agregar controles u optimizaciones y extensiones particulares al escenario que se esté resolviendo.Objetos básicos de search Los objetos involucrados en esta solución cumplen con las siguientes funciones: 11 . la descripción se toma del atributo indicado en la propiedad “Search Result Description”. Ilustración 11 .Uso de "Search Result Description" Objetos generados por K2BTools Para cada instancia del patrón Entity Services que tiene la propiedad “Searchable” en “True”. K2BTools genera los siguientes objetos:   GetSearchData<TrnName>: obtiene el contenido a mostrar para un resultado de búsqueda determinado. Esta posibilidad permite definir descripciones basadas en el valor de un atributo de la transacción.En caso de no usarse. Ilustración 12 . Su generación es necesaria porque esta propiedad acepta objetos que tienen una regla Parm que recibe sólo la PK de la transacción. Puede usarse también para crear descripciones elaboradas usando atributos fórmula. Es asignado como “Search Viewer” de la transacción padre de la instancia. SearchViewer<TrnName>: redirige al usuario al EntityManager correspondiente a la transacción.

Puede ser modificada por el usuario para adaptar la interfaz o agregar más opciones. 2. K2BGetSearchableEntities: Retorna la lista de entidades que están incluidas dentro del índice de búsqueda. Puede usarse esta propiedad para habilitar o deshabilitar globalmente la inclusión de transacciones en el índice. 12. Puede ser extendido para agregar controles de seguridad u otras funcionalidades.1. 10. Ilustración 13 . K2BHeaderModernSearch: Es el header para el theme K2BModern que incluye el campo de búsqueda. K2BToolsIndexAdmin: Es un Web Panel de muestra que permite al administrador del sistema forzar la regeneración del índice dentro del motor. Puede ser modificada por el usuario para adaptar la interfaz o agregar más opciones. 8. 6. SearchableTransactions: Usado por el procedimiento “K2BGetSearchableEntities” para enviar la lista de entidades auditables. K2BGetSearchResultFromData: Este objeto no debería ser modificado por el desarrollador. 4. 9. K2BToolsSearchResult: Es el SDT usado para mantener en memoria los resultados a mostrar. 7. K2BTabbedViewForLayoutModernSearch: Contiene la implementación necesaria para separar en tabs por entidad los resultados de búsqueda. se incluye la propiedad “Searchable”. 3. Este procedimiento es útil en caso de que el desarrollador use el motor para indexar documentos fuera de las transacciones de la KB. K2BToolsSearchResultEntityWC: Es la interfaz que despliega los resultados para cada entidad. K2BToolsSearchResult: Es la interfaz principal para mostrar los resultados de búsqueda. K2BGetSearchDataCustomImplementation: Permite al desarrollador GeneXus extender la extracción de datos desde un resultado de búsqueda para resultados que no se corresponden a ninguna transacción generada con K2BTools. K2BGetSearchableEntitiesCustomImplementation: Permite al desarrollador GeneXus extender la lista de entidades incluidas dentro del índice de búsqueda.Propiedad "Searchable" en configuración de Entity Services En el nodo “Transaction”. Puede ser alterado para adaptar el header al theme corporativo de la KB. El valor de esta propiedad es el tomado como default por la propiedad de mismo nombre en la instancia del Patrón. 11. K2BToolsGetSearchResults: Obtiene los resultados a mostrar en la interfaz de usuario. Impacto en configuración de Entity Services Se agregaron nuevas propiedades al objeto de configuración del patrón K2BEntityServices. Estas propiedades son las descriptas a continuación. 5. 12 . ya que es mantenido automáticamente por K2BTools. Este procedimiento se encarga de determinar el contenido a ser mostrado de un resultado a partir de lo retornado por el motor.

deben completarse los parámetros de salida para indicar título. En estos procedimientos es necesario agregar la lógica para:   K2BGetSearchableEntitiesCustomImplementation: Incorporar la nueva entidad a la lista de entidades habilitadas para el usuario. K2BGetSearchDataCustomImplementation: Obtener la información a desplegar en pantalla para un resultado particular. La incorporación o no debe considerar los permisos del usuario autenticado en el sistema. 13 .Ilustración 14 . es necesario actualizar los procedimientos “K2BGetSearchableEntitiesCustomImplementation” y “K2BGetSearchDataCustomImplementation”. descripción. y agregará un nuevo tab para la entidad. Concretamente. e imagen. Esto la incorporará a la vista de resultados globales. Para hacer esto. Extensibilidad Es posible agregar resultados a esta interfaz de búsqueda que no estén dentro de transacciones GeneXus. Estas propiedades pueden usarse para cambiar el nombre de los objetos generados. Además de realizar estos pasos.Propiedades "Search Viewer" y "Search Get Data Procedure" En el nodo “Objects” se incluyen dos nuevas propiedades: “Search Viewer” y “Search Get Data Procedure”. es necesario usar el mecanismo detallado en la documentación de GeneXus correspondiente.

Además. Grid. y el nivel del SDT al que se corresponde el nodo.0 se incorporó en Web Panel Designer la posibilidad de mostrar variables definidas a partir de SDT’s. que está disponible dentro de nodos Attribute o dentro del contenido de grids normales o free style. Grid. Estas propiedades permiten especificar el SDT que será usado dentro del nodo. y Free Style Grid La definición de un SDT puede contener varios niveles. Ilustración 15 .SDT de ejemplo La siguiente estructura de Web Panel Designer es válida: 14 . Grid. Por esta razón.Mayor potencia en el WebPanelDesigner Manejo de SDT en Web Panel Designer En la versión 8. es posible tener varios nodos Attributes. Grid. o Free Style Grid asociados a un mismo SDT.Nuevas propiedades en nodos Attributes. y Free Style Grid. se agregaron propiedades a los nodos Attributes. Los nodos Attributes. el nodo SDT Variable. y Free Style Grid tienen ahora dos nuevas propiedades: “Based On SDT” y “Based On SDTLevel”. Esto sirve tanto para crear secciones planas de atributos como para crear grillas con el contenido de un subnivel colección del SDT. Creación manual Para este fin se creó un nuevo nodo. para indicar el SDT que contienen. Por ejemplo si consideramos el siguiente SDT: Ilustración 16 .

podemos ver correspondiente a las variables dentro del freestylegrid: Ilustración 18 . se agregó una nueva acción “Add SDT”. nivel City. y un nodo Attributes para cada nivel que no es colección.Estructura de una variable basada en un SDT El campo CityId referencia al campo CityId. siempre que no sean niveles intermedios del SDT). En el nodo asociado a la variable del SDT. con la limitación natural de que no es posible usar un Grid si se desea incluir subniveles del nivel actual dentro del Web Panel. se deberá indicar en la propiedad Field el campo del SDT que se estará visualizando. La elección entre usar un nodo Free Style Grid o Grid es libre. dentro del SDT CountryCityCusomterSDT. La regla a seguir en estos casos es incluir siempre un nodo Grid o Free Style Grid para cada nivel colección. No es obligatorio contemplar todos los niveles del SDT en la definición del Web Panel (pueden ignorarse algunos de estos niveles.Estructura SDT en Web Panel Designer La anidación puede continuar tantos niveles como sea necesario.Ilustración 17 . 15 . Creación automática Para facilitar la creación de estructuras basadas en SDT dentro de Web Panels creados con Web Panel Designer. Para el SDT del ejemplo.

Por cada nivel colección que no contiene sub niveles. se agrega un nodo Grid. Group. Cuando se ejecuta esta acción. Multiple Selection y Tab (los mismos nodos donde en versiones anteriores está disponible la acción “Add Grid From Transaction”). Por cada nivel colección que contiene sub niveles. Line Separator. Ilustración 20 .Ilustración 19 .Acción Add SDT Esta acción está disponible en los nodos: WebForm. Attributes. Free Style Section. se agrega un nodo Free Style Grid. se agrega un nodo SDT Variable. 16 . se agrega un nodo Attributes con el contenido del nivel.Diálogo de selección de SDT Luego de que el desarrollador selecciona el SDT que quiere agregar en pantalla. Por cada nivel no colección. se presenta al desarrollador un diálogo como el que se muestra a continuación. se agrega la definición del SDT al nodo correspondiente siguiendo la siguiente heurística:     Por cada miembro del SDT. La siguiente imagen muestra el resultado de ejecutar la acción a partir del SDT origen.

El momento de ejecución de esta subrutina depende de la definición del nodo correspondiente a la raíz del SDT en el Designer. el resultado de esta acción es modificable por el desarrollador.Resultado de ejecutar "Add SDT" De forma análoga a lo que sucede con las acciones “Add Grid From …”. Carga del SDT Siempre que se agrega un SDT en pantalla. Por más información. o que el procedimiento retorne todos los valores. Para hacer esto. Nuevas propiedades en grillas Cuando se cargan grillas desde un SDT. usando el mecanismo que el desarrollador crea más conveniente. esta subrutina puede ejecutarse en más momentos. existen dos opciones: Que el procedimiento de carga del SDT maneje la paginación. y sobre este conjunto el Designer implemente su paginación. El desarrollador puede. La primera opción tiene como principal ventaja que puede evitar costos de carga del SDT. el desarrollador debe considerar la variable “&CurrentPage_{GridName}” y el valor de la propiedad “Page” dentro del nodo. la subrutina es invocada en el evento Refresh. Si es un nodo Grid o Free Style Grid. Si este nodo es un nodo Attributes. eliminar atributos o inclusive niveles completos. se genera una subrutina de usuario llamada “U_LoadSDT”. Esta subrutina es la encargada de cargar los valores correspondientes del SDT. ya que el desarrollador tiene la libertad necesaria para cargar en cada momento únicamente los ítems visibles en la página actual.Ilustración 21 . ver la sección “Nuevas propiedades en grillas”. 17 . si quiere.

cuando el valor de la propiedad es “False”. el SDT será recargado cada vez que el usuario final cambie de página en la grilla. En grillas que se corresponden a sub niveles la propiedad “Page” no es mostrada. no es posible realizar paginado en las grillas generadas). la subrutina “U_LoadSDT” será invocada en cada cambio de página. se muestran todos los elementos del nivel. 18 . el desarrollador no debe contemplar la posición del usuario en la página al momento de cargar el SDT. y no será invocada en ningún otro momento por el Designer.La segunda opción tiene como principal ventaja el hecho de que la programación queda más simple. En el caso contrario.Propiedad “Get SDT On Grid Paging” Cuando esta propiedad está con su valor en “True”. y Web Panel Designer generará código para pasar entre las páginas correspondientes (en caso de existir). El desarrollador debe contemplar la posición del usuario en la grilla para hacer la carga en la subrutina. la subrutina será invocada una única vez en el evento Refresh. ya que el desarrollador carga una única vez el SDT a mostrar. la paginación puede hacerse solamente en la grilla correspondiente al primer nivel del SDT (si la raíz del SDT no es una colección. y su valor se asume igual a cero. los nodos Grid y Free Style Grid incluyen la propiedad “Get SDT On Grid Paging”. Para poder seleccionar entre estas dos opciones. es decir. Notas:    Esta propiedad es mostrada sólo en grillas que no se corresponden con subniveles de un SDT mayor. Ilustración 22 . En grillas que se corresponden a sub niveles dentro de una estructura mayor. En este caso. En este caso.

Mejoras en la personalización de la interfaz de usuario Nuevas opciones de themes: En la versión 7. Cambiar el valor de la propiedad “Theme” de (las) Master Page(s) de la aplicación.1 de K2BTools se introdujo el nuevo theme “K2BModern”. Las opciones de theme incorporadas a la versión 8. seguir estas instrucciones: 1. en K2BTools 8. 19 . para que el desarrollador pueda elegir la que más se acerca al resultado deseado.Opciones de theme versión 8. Cambiar el valor de la propiedad “Theme” de las configuraciones de Web Panel Designer y ejecutar la funcionalidad Update All WebPanels 4. Ejecutar un “Rebuild All” en GeneXus. K2BModernBlue K2BModernBordeaux K2BModernGrey K2BModern Ilustración 23 . Continuando con la evolución de K2BTools en este sentido. 2.0 se incluyen tres variantes de este theme. 3. Cambiar el valor de la propiedad “Web Theme” de las configuraciones generales de los patrones K2BTools. 5.0 son las siguientes. Cambiar el valor de la propiedad “Theme” de la versión de la KB.0 Para cambiar el theme seleccionado.

Elección de layout a nivel de Web Panel en Web Panel Designer Ilustración 26 .0 de K2BTools. Además. y también en el Web Panel Designer.Mejoras en configuración de Layouts A partir de la versión 8. que permiten al desarrollador seleccionar el Layout que se desea usar en esa instancia particular cuando se genera el objeto. y se desea que un conjunto específico de web panels tenga una visualización diferente a la default del sistema. Se recomienda hacer esto copiando un nodo existente y alterando las propiedades necesarias (generalmente. se flexibilizó la elección de objetos de Layout en los patrones Entity Services y Prompt.Nuevas propiedades en patrones K2BEntityServices y K2BPrompt Estas propiedades son útiles en escenarios donde existen varios puntos de acceso al sistema. es necesario agregar el nodo correspondiente bajo el nodo Layout dentro de la configuración del patrón correspondiente. la propiedad “Layout Object”). Para usar un nuevo Layout. Elección de layouts a nivel de instancia en K2BEntity Services y K2BPrompt Se agregó nuevas propiedades a las instancias de estos patrones. se mejoró la integración con las Master Pages de la KB para simplificar el uso del patrón. Los cambios se detallan en las próximas secciones.Propiedad "Layout Object" en nodod Web Form 20 .Configuración de Layouts default para K2BEntityServices Los valores default de estas propiedades se toman desde la configuración del patrón correspondiente. Ilustración 25 . Ilustración 24 . Los cambios en esta área apuntan a flexibilizar la generación de objetos.

Para poder habilitar este comportamiento se agrega una propiedad para que los patrones y el webpaneldesigner no seteen la master page sino que tomen la por defecto. se agregó la posibilidad de que la master page pueda ser tomada del environment. El valor por defecto de esta propiedad se toma de la propiedad con el mismo nombre del objeto de configuración de Web Panel Designer.Propiedad "Set Object Theme" en configuración de Web Panel Designer Propiedad “Set MasterPage” WorkWithRulesLayouts: Afecta la generación de objetos Work With del patrón Entity Services. Ilustración 27 .Propiedad "Layout Object" en configuración de Web Panel Designer Esta propiedad especifica el objeto de layout que debe usarse en la generación del Web Panel.Se agregó una nueva propiedad en el nodo Web Form (raíz de la especificación de un Web Panel creado con Web Panel Designer) llamada “Layout Object”.Propiedad "Set Object Theme" en WorkWithRulesLayouts 21 . Ilustración 28 . Por esta razón. Ilustración 29 . Las propiedades agregadas son: Propiedad “Set MasterPage” en configuración de Web Panel Designer: Afecta la generación de objetos creados usando Web Panel Designer. Posibilidad de deshabilitar el seteo de Master Page en Web Panel Designer y Patterns Existen escenarios en los cuales es deseable poder setear una master page diferente según el ambiente para el cuál se está generando.

Ilustración 30 . Ilustración 31 .Propiedad "Set Object Theme" en EntityManagerRulesLayouts Propiedad “Set Object Theme” PromptLayout: Afecta la generación de objetos del patrón Prompt.Propiedad "Set Object Theme" en PromptLayout 22 .Propiedad “Set MasterPage” EntityManagerRulesLayouts: Afecta la generación de objetos EntityManager del patrón Entity Services.

Desactivación de actualización automática de patrones En la versión 8. Esto puede ocurrir. cuando se ejecute el próximo build de la KB. Ilustración 34 .0. decidimos incorporar funciones para simplificar el uso de estas propiedades. De esta forma. Comandos Enable / Disable K2BTools Dynamic Pattern Application En KB’s grandes muchas veces es necesario desactivar la actualización dinámica de los patrones (incluyendo los patrones de K2BTools) para disminuir los tiempos del proceso de build.Mejoras de usabilidad en el desarrollo En la versión 8. cuando se modifica el objeto de settings de un Pattern. Usando estas funciones es posible habilitar/deshabilitar la aplicación automática de los patrones en el proceso de Build. Es posible lograr esto usando las propiedades de la versión que se muestran a continuación: Ilustración 32 . o algún objeto de Layout. se indica al motor de Patterns que todas las instancias deben ser aplicadas en el próximo build.Opciones Enable/Disable K2BTools Usando esta funcionalidad el desarrollador GeneXus puede administrar la actualización automática de una forma más simple y eficaz. por ejemplo.Comando "Force K2BTools Pattern Application" Usando este comando. todas las 23 .0 de K2BTools se mejoró la interacción del desarrollador con los patrones para simplificar su uso y para hacer más sencillo el diagnóstico de errores comunes. Comando “Force K2BTools Patterns Application” En algunos casos es necesario que todas las instancias de patterns sean aplicadas en el próximo build. Ilustración 33 .

este stack es usado para retornar al objeto llamador al finalizar una acción dentro de una transacción. y es usado desde varios lugares. Mensajes de advertencia al detectar partes fuera del default Una de las fuentes de errores más comunes en el uso de Patterns es la desvinculación accidental del default para algunas partes de los objetos generados por el patrón. 24 . Este procedimiento es quien se encarga de mantener el stack de objetos llamados dentro de la KB. IMPORTANTE: Este comando es independiente a los mecanismos descriptos en la sección anterior. Para ayudar en el diagnóstico de esta situación. Mensajes de advertencia para ausencia de invocación a stack en Master Pages En el inicio de proyectos desarrollados con K2BTools al adaptar las interfaces generadas a lo requerido por el cliente es frecuente que se creen nuevas Master Pages para los objetos de la KB. los cambios hechos en la instancia del patrón no se ven reflejados en los objetos generados. se vinculará nuevamente la/las partes modificadas a su default generado por el pattern. en la versión 8.Acción Apply Default Alternativamente. Cuando esto sucede.modificaciones que se hayan hecho en las configuraciones de los patrones serán impactadas en los objetos generados.0 se agregó la generación de mensajes de advertencia durante el proceso de aplicación del pattern. Por lo tanto. la aplicación forzosa de los patrones ocurrirá incluso cuando la actualización dinámica de los patrones esté desactivada.Mensaje de advertencia para partes modificadas por el usuario Para solucionar este problema. puede ingresarse a la parte que fue modificada y ejecutar la acción Apply Default (<Nombre_Parte>). Usando estas acciones. Ilustración 35 . Ilustración 36 . Esto puede implicar un problema menor en casos donde la nueva Master Page no invoca directa o indirectamente al procedimiento “K2BStackManagement”. En particular. es necesario abrir el objeto involucrado y ejecutar la acción “Apply Default (All Parts)” dentro del manú “Edit” de GeneXus.

la regla Parm se generará dentro de un slot fixed en la transacción.Warning ausencia de invocación a stack en Master Page Este problema es una fuente común de errores. Ilustración 39 .Ilustración 37 . Opción para mantener regla Parm de la transacción dentro de un slot fixed A partir de esta versión.Regla Parm en slot fixed El valor “False” provee la opción de mantener compatibilidad hacia atrás: La regla se generará en un slot no fixed. Esto implica que la regla será actualizada por el pattern siempre que sea necesario. En particular. y por lo tanto podrá ser modificada por el usuario. Por esta razón se agregó un mensaje de advertencia cuando el pattern detecta que alguna de las Master Pages usadas en los objetos generados por el pattern no contiene en su árbol de llamadas al objeto “K2BStackManagement”. con nombre “Generate Fixed Slot For Parm”.Propiedad "Generate Fixed Slot For Parm" Cuando el valor de esta propiedad es “True”. Ilustración 38 . la Parm será modificada siempre que haya alguna modificación dentro de la PK de la transacción a la que pertenece la instancia del pattern. 25 . se incorpora una propiedad en el nodo “Transaction” dentro de las configuraciones del patrón K2BEntityServices.

la parte es la primera mostrada en el Web Panel (a la izquierda del Web Panel). 26 .Ilustración 40 . El cambio de esta propiedad no afecta los web panels que están abiertos.Propiedad "Form Designer Part Position" Los posibles valores para esta propiedad son: 1. Ilustración 41 . donde la mayoría de los Web Panels todavía no usan la parte Designer. En caso de no tener reglas parms modificadas. Para hacer esto.Regla Parm en slot no fixed En caso de Activar la generación en slots fixed. se incluyó en la configuración de Web Panel Designer una propiedad llamada “Form Designer Part Position”. En KB’s creadas con versiones anteriores de K2BTools. Es necesario cerrarlos y volverlos a abrir. Esta propiedad puede ser útil en escenarios de migración. Last: La parte es la última mostrada en el Web Panel (a la izquierda del Web Panel). en la próxima aplicación del pattern las reglas Parm serán colocadas dentro de un slot fixed y los cambios que se hubieran hecho dentro del Slot se perderán. Personalización de ubicación de parte Designer En esta versión se permite al desarrollador personalizar la posición donde se quiere mostrar la parte del Designer al abrir un Web Panel existente o crear uno nuevo. First If Active: La parte es la primera mostrada en al abrir web panels con Web Panel Designer activado. First: Mantiene el comportamiento actual de Web Panel Desginer. 3. 2. se recomienda que el desarrollador cambie el valor de esta propiedad. y es la última mostrada en cualquier otro caso. esta propiedad se mantendrá en “False” para facilitar el proceso de conversión.

Propiedad "Back To Work With" en nodos "Entity Manager" Usando esta propiedad es posible deshabilitar la generación del enlace para esa instancia. Deshabilitación global de Back to Work With En versiones anteriores de K2BTools. las columnas que fueron seleccionadas por el usuario para ser visualizadas en el Work With son también las que se exportan en los reportes Excel. 3. Ilustración 42 . Columnas de reportes Excel que están basadas en dominios o en atributos basados en dominios. Selección de columnas en runtime para Exports En esta versión. En la versión 8. se extiende la funcionalidad de selección de columnas en runtime. cuando la propiedad “Show enumerated domain description” en el nodo report está activada.0.0. Filtros en reportes Excel con Control Info Dynamic Combo o Dynamic List Box. en la propiedad “Enable Back To Work With Links” del nodo “Template”. se consideran (además de los casos contemplados en versiones anteriores). es posible deshabilitar la generación del enlace llamado “Back To Work With” usando la propiedad “Back To Work With” del nodo “Entity Manager” de una instancia del patrón Entity Services. el valor default de esta propiedad pasa a tomarse de la configuración del patrón K2BEntityServices.Otras mejoras Visualización de descripciones en reportes Excel y PDF En la versión 8.Propiedad "Enable Back To Work With" 27 . 2. Ahora. los siguientes casos: 1. Ilustración 43 . Filtros en reportes PDF con Control Info Dynamic Combo Box y Dynamic List Box o basados en dominios enumerados.

Código de inicio de seguridad. En instancias existentes. se actualiza el valor default de las propiedades “Back To Work With” de los nodos “Entity Manager”. el valor de la propiedad no será modificado. En nuevas instancias. Usuarios de versiones anteriores pueden mantener su solución actual. 3. El orden con el que se genera el código para la acción es: a. si la propiedad “Back To Work With” nunca fue modificada por el desarrollador (su valor no aparece resaltado en negrita). se considerará siempre el valor seleccionado en la propiedad “Enable Back To Work With Links” salvo que el desarrollador indique explícitamente lo contrario. Este código será ejecutado siempre que se cumplan los chequeos de seguridad. se agregó en estos nodos la posibilidad de agregar código que será incorporado antes y después de la invocación al objeto especificado en la acción. El resultado de agregar una acción similar a la anterior es el siguiente: Notas: 1. Esta funcionalidad convive con el mecanismo de adición de eventos ya existente en los patterns. 2.El valor default para esta propiedad es “True”. de forma de mantener la compatibilidad con versiones anteriores. si la propiedad “Back To Work With” fue modificada intencionalmente por el desarrollador (su valor aparece resaltado en negrita). y migrar progresivamente según resulte conveniente. Posibilidad de agregar código en nodos Action Para aumentar la usabilidad de las acciones dentro de los patrones. En instancias existentes. Al modificarse esta propiedad. Código “Begin Code” de nodo Event asociado a la acción (si existe) b. 2. Esta opción está disponible sólo para acciones fuera de la grilla (cuya propiedad “Layout” tiene valor diferente a “Ingrid”) y que tienen un gxobject asociado. la propiedad pasará a tener el mismo valor que la propiedad “Enable Back To Work With Links”. 3. Esto implica que: 1. Código “Begin Code” de nodo Action 28 . c.

0. Invocación a objeto GeneXus definido en nodo action. Ilustración 45 . f.0. cuando se usa una grilla con paginado. Sin embargo. es importante notar que el orden se realiza sobre los ítems que están visibles en la página mostrada en la grilla. Código “End Code” de nodo Action. En versiones de K2BTools anteriores a la versión 8. Código de fin de seguridad. e. y “Activate Sortable Grids” en la configuración general de los patrones K2BTools.Propiedad "Activate Sortable Grids" Propiedad “Enable datepicker” en patterns A partir de la versión 8. Esta propiedad está disponible en: 29 . ya que frecuentemente los usuarios usaban la funcionalidad asumiendo que el orden se realizaba sobre todos los registros. Ilustración 44 . Cuando una grilla tiene la propiedad “Sortable” activada. Estas propiedades son la propiedad “Activate Sortable Property” en la configuración de Web Panel Designer.Propiedad "Activate Sortable Property" en Web Panel Designer Por esta razón. con comportamientos inesperados.d. Esta propiedad está disponible sólo para variables de tipo Date o DateTime.(ENDIF) Código “End Code” de nodo Event asociado a la acción (si existe) Propiedad para deshabilitar grids sortables Las grillas GeneXus tienen en su definición la propiedad “Sortable”. a partir de la versión 8. no se recarga el contenido desde la base de datos. las grillas eran generadas con la propiedad “Sortable” activada.0 de K2BTools es posible decidir en la configuración de Web Panel Designer y Patterns si las grillas deben ser creadas con la propiedad sortable o no. g. las variables en pantalla incluyen la propiedad “Date Picker”. En algunos casos esto no es deseable. se permite al usuario ordenar los valores presentes en la grilla cliqueando el título de la columna por la que se quiere ordenar.

Usando estas propiedades es posible modificar las propiedades con el mismo nombre en el Embedded Page generado. Variables en secciones de atributos planos en objetos generados por Entity Services o Prompt.Propiedades "Height" y "Width" en EmbeddedPages A partir de la versión 8. Ilustración 46 .Ejemplo de propiedad "Date Picker" Se generará el Datepicker correspondiente a la variable sólo si el valor de la propiedad es “True”. en escenarios de migración sólo es necesario revisar los casos de transacciones donde la propiedad “Enable Datepicker” sea distinta a “Yes” o “No”. los nodos “Embedded Page” en instancias de Web Panel Designer incluyen las propiedades “Height” y “Width”. entonces el valor default será “True” o “False” respectivamente. Atributos en instancias de TrnForm. Por este motivo. En cualquier otro caso. 3.1. Sub Work With y Prompt. 2. Es importante notar que la invocación se realiza luego de agregar el/los ítems a la colección de ítems seleccionados. Nuevas subrutinas de usuario para Add y Remove en Multiple Selections En la generación de nodos Multiple Selection se agregaron dos nuevas subrutinas de usuario. 2. Si la transacción asociada a la instancia del patrón tiene la propiedad “Enable Datepicker” en “Yes” o “No”. 30 . por lo que es correcto asumir que la colección está actualizada al momento de implementar la subrutina de usuario correspondiente. La invocación a estas nuevas subrutinas se hace como se muestra en la siguiente imagen (se ilustra el caso para “Add”).0. El valor default para esta propiedad se determina de la siguiente forma: 1. el valor default será “True”. correspondientes a los eventos “Add” y “Remove” (cuando se agregan o se quitan elementos de la colección de elementos seleccionados). Propiedades Height y Width en Embedded Pages Ilustración 47 . Variables en filtros de objetos Work With.

Ilustración 48 .Invocación a subrutina "U_AddMultipleSelection" Estas subrutinas pueden ser usadas en varios escenarios diferentes. actualizar un mensaje indicando la cantidad de ítems seleccionados). Actualización de una sección de resumen a medida que se ingresan los datos. Por ejemplo. Algunos posibles usos son:   Persistencia del conjunto seleccionado a medida que se realizan los cambios. 31 .

si el valor empty es aceptado. haciendo que no se salvara el estado de los filtros. 32 . Error en Load Grid State en Pattern Prompt: Si se tiene un prompt con algún filtro con savesate en false. Web Panel Designer Errores en grillas con Data Provider Se corrige el error que provocaba cuando se tiene una grilla con dataprovider y paginado. pero se coloca 0 al valor de la propiedad page el webpaneldesigner no definía la variable hasnextpage correspondiente a la grilla. donde cada vez que se mostraba uno de estos campos aparecía un -1 en lugar del texto correspondiente a la hora. el designer no seteaba de forma correcta el height y el width. Errores en reportes Excel En los reportes Excel para los atributos de tipo character se agrega trimend para evitar que se exporten espacios en blanco que vienen desde la base de datos. Uso de mensajes correctos en filtros Combo Box En controles Dynamic Combo Box dentro de secciones de filtros. Esto sucedía tanto en el patrón K2BEntityServices como en el K2BPrompt. Se hicieron cambios para evitar que esto suceda. Uso de propiedad Required en TrnForm: Se soluciona el problema de que se tenía required en true en el trnform y luego se pasaba a false. Error en inclusión de acciones en K2BTrnForm: No era posible agregar acciones como hijos del nodo FreeStyleGrid y TrnForm. Error en grillas con scroll Cuando se tenía una grilla con scroll. También se corrige la visualización correcta de los atributos time. se estaba colocando el valor empty ítem text . En esta versión se pasa a colocar el GX_AllItems de GeneXus. Error en generación de procedimientos K2BListPrograms y K2BActivityList Muchas veces sucedía que estos procedimientos quedaban muy grandes y ocurría un error de compilación en el código generado. el código generado por K2BTools era incorrecto. no se borraba el slot required.Errores corregidos Patterns Visibilidad del botón de search: Se corrige problema que hacía que en determinados escenarios el botón de search no apareciera en pantalla aun cuando el desarrollador había indicado que aparezca.

Seleccionar como ruta el directorio de instalación de GeneXus. Para versiones anteriores de K2BTools es posible utilizar la licencia de la versión 8. En caso de querer incorporar la funcionalidad de Universal Search seguir el Anexo II.com/files/como-actualizar-las-licencias?es) 4. En caso de estar usando una versión anterior a. Ejecutar el instalador de K2BTools 8.k2btools. Seguir los pasos del Anexo I – Actualización de reportes Excel c.0. b. 5. 33 .0 2.Instalación Importante: Para hacer uso de esta versión deberá actualizar las licencias de K2BTools a la versión 8.0. Si ya tenía la versión anterior de K2BTools recomendamos siempre respaldar las KBs utilizadas antes de pasar de versión (crear un XPZ o congelar la versión de la KB) Instalación: 1. Pasos previos: 1. Instalación en GeneXus Server Para instalar K2BTools en GeneXus Server ejecutar el instalador y seleccionar como ruta “<GeneXusServer>\VDir\BinGenexus”. donde <GeneXusServer> es la ruta donde fue instalado GeneXus Server. adicionar a estos pasos los de la release notes 7. 3. Si crea una KB desde cero.1. 6. ya está listo para usar la versión.0. Abrir GeneXus. Si está en una versión anterior a la 7. Actualizar licencias de K2BTools según lo indicado en el siguiente documento(http://www.

ya se incorporará automáticamente la posibilidad de usar este buscador siempre y cuando se tenga dentro del patrón K2BEntityServices alguna transacción con la propiedad Searchable en true. En caso de querer usar su propio header haga los siguientes cambios:    Defina dos variables SearchCriteria y SearchCriteriaSession basados en el tipo de datos K2BSearchCriteria. Para esto se pasa a tomar en cuenta el valor de la propiedad Temp Media Directory para almacenar temporalmente estos archivos. Anexo II – Incorporación del buscador universal. Si se está haciendo uso de la master page K2BWWMasterPageModern. se puede editar la master page utilizada y usar como header el K2BHeaderModernSearch. Para que los reportes Excel se puedan visualizar el directorio deberá existir. Se realizaron modificaciones en la manera en que se utilizan los reportes Excel.Anexo I – Actualización de reportes Excel.IsValid o Event ‘DoSearch’ 34 . En caso de no hacer uso de esta master page. Incorpore en su webpanel en los eventos el código de K2BModernSearch que se encuentra en: o Evento Refresh o Evento &SearchCriteria. Se recomienda por razones de seguridad setear un directorio que no esté dentro del servidor de aplicaciones. Copie en el webform desde el HeaderK2BModernSearch la sección de control name SearchContainer.