Beta 4: 28/01/2016
Nuevas Funcionalidades
Compatibilidad con Smooth:
Se realizaron varios cambios a nivel de módulos y patrones para mantener compatibilidad en este nuevo ambiente:
Módulo APIs (Folder APIs): Se modificaron los siguientes objetos:
PPEXE_DeWnd03 (Modificado)
PPEXE_PostCodeScript (Modificado)
HPEXE_TabsViewSmooth (Nuevo)
HWCViewTabsSmooth (Nuevo)
RefreshGXUIControls (Nuevo)
RefreshMasterPage (Nuevo)
PXToolsParametersSDT (Modificado)
Designs (Folder APIs.Personalized): Se modificaron los siguientes objetos:
LoadPXToolsParameters (Modificado)
HWbWkW01 (Modificado)
HWCHdr01 (Modificado)
Módulo Menus: Se modificaron los siguientes objetos:
PPEXE_DeMnW10 (Modificado)
HPEXE_ToolbarMenus (Modificado)
MenuSearch (Modificado)
ForceRefreshLeftMenu (Modificado)
Cambios en la forma de interactuar al seleccionar las pestañas del View: Con el objetivo de mejorar el efecto de transición de la pantalla cuando se seleccionan las pestañas del view, se cambió la programación para que la pestaña deje de realizar un Link a sí mismo. El Link a sí mismo generaba una transición que dejaba la pantalla en blanco durante un período corto hasta la recarga de la pantalla nuevamente. Dicho link se realizaba a sí mismo pero con otro parámetro que identificaba a la pestaña seleccionada. Con el cambio se cambió la programación para que guarde en Sesión la pestaña seleccionada y por los eventos Refresh se logre re-desplegar la pantalla. El parámetro de pestaña seleccionada se mantiene en el View para contemplar la precarga de determinada pestaña cuando se llama al View desde cualquier otro objeto.
También el View se cambio el código porque se detectó que (en modalidad Smooth) al generar un evento de usuario (por ejemplo cambiar de pestaña) no se estaba ejecutando el Evento Load del View. Para solucionar este problema todo el código de armado de la visualización de las pestañas y del componente principal pasó a ser invocado por el Evento Refresh y se incorporó un For Each para instanciar posibles atributos de la tabla extendida que pueden estar pasándose por parámetro.
Se detectaron problemas con los controles GXUI cuando se ejecuta la pantalla luego de un evento de usuario ya que no se despliegan. Se encontró un Work Arround implementado en el WebComponent RefreshGXUIControls que simula un segundo evento de usuario luego de la re-carga de la pantalla. Con ese segundo evento de usuario se logró que los controles de GXUI se rendericen correctamente.
Para poder mantener las KBs antiguas con la propiedad de "Web User Experience" con "Previous Version Compatible" se agregó un parámetro en el LoadPXToolsParameters llamado "SmoothEnabled". En las KBs nuevas habrá que definir esa propiedad en True para hacer que algunas APIs de PXTools adicionen los Work Arrounds para lograr la funcionalidad de Smooth. Detectamos que si en las apis se agregan Form.Refresh() en KBs donde no está generado el soporte de Smooth se generan comportamientos no deseados. Es por ese motivo también que se adicionó esta propiedad.
El soporte de esta nueva funcionalidad debería permitir volver a utilizar la MPWkW01 como Masterpage Principal pero se han encontrado algunos problemas por lo que estamos manteniendo el estilo de WebPanel principal con Embedded en el Data Area. Los problemas encontrados fueron los siguientes:
Cuando se realiza un Form.Refresh() no se está ejecutando el Evento Refresh de la Masterpage, por lo que cuando se realizan eventos de usuarios de los componentes de menus no logran generar cambios en la Masterpage principal. Para solucionar este problema es que se creó el WebComponent RefreshMasterPage que básicamente ejecuta por Javascript el Click de un botón escondido en dicha MasterPage. Esto logra forzar el evento Refresh de la misma.
Encontramos que pese al Work Arround la performance de la aplicación es notoriamente más lento que con el uso del Panel Principal por lo cual se decidió mantener esta forma de programación.
Con la utilización de la Masterpage Principal también se encontraron Links a objetos que dejaban la pantalla completamente el Blanco. Esto se estará viendo con GeneXus para detectar el motivo de dicho problema.
Nuevas propiedades a nivel de patterns:
Web User Experience: En algunos casos puntuales se debe mantener el valor Previous Version Compatible por problemas de comportamiento. En particular al utilizar la funcionalidad de "Transaction As Business Component" del PXWorkWith los eventos de usuarios que realizan la aparición de nuevas columnas en la grilla no son reflejadas en la pantalla. Esto ya está reportado a GeneXus y está en proceso de investigación del problema.
Esta nueva propiedad se encuentra en:
Selection, Transaction, View, Section y Prompt de PXWorkWith.
Level de PXParameterRequest y PXComposer.
Refresh Action: Las acciones que realizen invocaciones con CallType: Call, Subroutine, Event o None pueden requerir adicionar la indicación de refresco. Esta nueva propiedad define esa indicación. Se pueden indicar refrescar distintos elementos:
Form Refresh: Termina ejecutando los eventos Refresh de todos los objetos relacionados con la pantalla activa.
Local Refresh: Termina ejecutando los eventos Refresh del objeto de la acción y los WebComponents subordinados.
Grid Refresh: Termina ejecutando solo la solicitud de refresco de la Grilla. Esta opción solo está disponible en el patrón PXWorkWith.
Compatibilidad con Upgrade 6 de GeneXus ya que eliminaron la representación de la sombra en las pantallas Modales (Popups de GeneXus) y eso generaba errores de ejecución de Javascripts de PXTools al momento de redimensionar este tipo de ventanas.
Nueva KB PXToolsDemo disponible en el instalador de PXTools: Se agregó una carpeta PXToolsDemo dentro de la carpeta de Examples con el XPZ correspondiente a esa KB y un backup de SQLServer para poder realizar una prueba de funcionalidades de PXTools actualmente con compatibilidad de Smooth.
Nueva propiedad "Column Title" en acciones del patrón PXWorkWith con la propiedad "Control Type" con el valor "Image" y la acción está visualizada en la propia grilla. Permite cargar la columna de la grilla con un valor a definir en esta nueva propiedad.
Se mejoró el caption del nodo Condition de la instancia del pattern PXParameterRequest.
Se condicionaron la visualización de algunas propiedades del nodo Parameter del PXWorkWith de acuerdo al nodo donde se definan.
Mejoras en el Theme para mostrar los títulos de las grillas de las transacciones (que se usan con la grilla estandard) al estilo de los títulos de la grilla con la GXUI.GridExtension.
Errores Corregidos
Se corrigió el procedimiento PPEXE_DeMnW13 que generaba un registro en la tabla de menus que conflictúa con una nueva integridad referencial agregada sobre la tabla MnuWeb en las betas anteriores.
Template Element "ProgramName" no estaba calculando altura correcta en patrón PXWorkWith.
Columnas asociadas a variable Reference no tenía las propiedades relacionadas con la GXUI y por lo tanto en el objeto generado tenía todas las propiedades deshabilitadas.
El nodo Codes con valor "Load" no se estaba desplegando en objeto generado del View.
Cuando se generaban orden por columnas con la GXUI.GridExtension no se ordeneban las columnas que tienen largo del nombre mayor al "Significant Attribute Length". Se detectó que la propiedad SortField de la GXUI.GridExtension está mostrando los valores de los campos como se ven en la base de datos y no como en la KB. Se corrigió la generación del PXWorkWith para comparar contra los nombres truncados.