Beta 7: 22/11/2016

NOTA:

  • Advertencia: Esta versión es compatible con GeneXus X Evolution 3 Upgrade 9 y la GXUI versión 2.0.0.2536 o superior.

  • Nota: En esta Beta se realizó un cambio importante en la forma de representar los scrolls en grillas para el generador Web Desktop. Es importante definir correctamente dos nuevas Classes en el Theme del generador Desktop para que las grillas se representen con scroll sin problemas. Para más información hay documentación en la corrección de errores del Preview 7.

  • También se agregó una nueva propiedad: "Support After Trn On Selection Component" que cambia el comportamiento por defecto. Para más información hay documentación en la nueva funcionalidad del Preview 8.

Preview 1

Nuevas Funcionalidades

    • Nueva propiedad "First Element Aligned" en Rows y "Row First Element Aligned" en nodos superiores. Esta nueva propiedad permite lograr alinear la primera etiqueta del primer elemento de un nodo Row en la misma posición que aquellos atributos o variables que no estén definidos en rows. El valor por defecto es <default> y representa que hereda el valor sobre cualquier contenedor superior. En caso de que se llegue hasta el nodo Layout con el valor <default> se tomará la configuración de las preferencias del pattern PXWorkWith en el nodo Form. Para lograr la alineación se adicionaron dos nuevas clases: FirstAlignedLabel bajo el nodo principal TextBlock -> Label y FirstAlignedRow bajo el nodo Table en el Theme PXToolsResponsive.

    • Se trasladó la funcionalidad de Visible Condition a todos los nodos Attribute y Variable del patrón PXWorkWith y el patrón PXParameterRequest.

Errores Corregidos

    • El control por defecto cuando no se declaraban atributos en el Layout de una transacción quedaba incorrectamente en Edit cuando debería heredar el que está declarado en la estructura de la transacción.

    • Correcciones en la estética de visualización de atributos o variables de control info checkbox en ambiente responsivo ya que no estaban visualizándose correctamente.

    • Mejoras varias en la alineación de controles dentro del nodo Filter para ambiente responsivo.

    • El control rectangle ni ninguno de los contenidos se estaban visualizando en ambiente responsivo.

Preview 2

Nuevas funcionalidades

    • Nueva propiedad "Default Responsive Label Width" y "Default Responsive Row Label Width" para declarar los porcentajes por defecto de las etiquetas fuera y dentro de Rows. Estas propiedades terminarán generando sobre la Propiedad "Label Width" del editor de Responsive Sizes en ambiente responsivo. Estas propiedades se encuentran bajo el nodo Form de las preferencias de la plataforma Web Responsive del pattern PXWorkWith.

Errores Corregidos

  • Se corrigió el instalador para copiar la dll PuntoExe.Patterns.PXTools.dll al directorio GeneXus. En caso de que no esté esa dll en el directorio de instalación de GeneXus la propiedad Resonsive Sizes dentro del pattern no puede ser editada.

  • La propiedad Responsive Sizes no estaba habilitando la configuración de Label para nodos Attribute. Ahora se está habilitando en nodos Attribute o Variable siempre que tenga el nodo description cargado.

  • Pattern PXOAV estaba dando error al aplicarlo.

  • Se generaban nombres de Tablas en el form de las transacciones que comenzaban con números lo cual genera problemas con GeneXus. Se corrigió para que siempre las tablas comiencen con prefijo Table y luego el número de tabla.

Preview 3

Nuevas funcionalidades

    • Se actualizó el PXToolsLicenseManager.exe para gestionar las nuevas licencias Web Desktop y Responsive en forma independiente de GeneXus.

    • Se disminuyó el tamaño del instalador ya que se eliminaron los war predefinidos para las distintas versiones de GeneXus. Estos wars ocupaban mucho espacio y solo son necesarios en los casos en que de desarrolle con GeneXus con el generador Java y no se tenga el Tomcat instalado en ma máquina de desarrollo.

Errores Corregidos

    • La popup para realizar Upload de imágenes asociadas a atributos tipo Image quedaba bloqueada en ambiente responsivo. Para esto se corrigió un archivo css del User Control "PXTools Responsive Layout" y se modificó una clase del Theme PXToolsResponsive.

    • En ambiente responsivo al ejecutar algún evento en una pantalla generaba un pequeño salto. El problema lo causaba unos Tags <p></p> que estaban antes del LayoutResponsivo en la masterpage HMPWkW09.

    • Variables basadas en Business Component no se estaban generando correctamente.

    • Nodo ConditionalCall bajo nodo Link en PXWorkWith no estaba desplegando correctamente las propiedades.

    • Propiedad ControlType en nodo ControlInfo no se cargaba correctamente si el control se presentaba en un Layout con Platform en Any. En este caso se van a cargar todos los tipos de controles de edición de todas las plataformas ya que no se sabe sobre qué plataforma se aplicará.

    • No se estaba generando la transacción como hija del pattern para ambiente responsivo si se tenía deshabilitado la generación de la plataforma WebDesktop y la propiedad "Transaction Default Platform" con el valor "<none>".

    • Cuando se habilitaba Autorefresh en objetos responsivos tanto del PXWorkWith como del PXParameterRequest generaba un error relacionado con el control Timer1. El problema fue corregido. En estos objetos no se utilizará el User Control Timer sino que se pasará a utilizar la propiedad Lapse provista en forma nativa por GeneXus.

    • Subida de WebPanels con LayoutAbstracto generaba errores en GXServer.

    • Instancia por defecto no generaba en Transacciones debajo de los nodos Section el nodo Layouts -> Layout con propiedad "Platform" con valor "Any". Esto generaba el error "Transaction node without Layout defined for platform ..."

    • Al abrir KBs con versiones anteriores de PXTools generaba error al intentar abrir las preferencias del PXWorkWith o cuando se aplicaba el pattern y los generadores intentaban abrir la preferencia del PXWorkWith.

    • Cuando se tiene la propiedad "Default Transaction Platform" en "<none>" la transacción principal de la Instancia de PXWorkWith no debería tener más código generado por PXTools. Por ello se realiza una limpieza donde se depura el WebForm, Eventos, Reglas y Variables. En algunos casos la limpieza de la Transacción principal no se realiza correctamente. Se adicionó información para identificar el problema por el cual la limpieza no se puede realizar.

Preview 4

Nuevas funcionalidades

    • Se mejoró el Caption del nodo Rule en Transacciones.

    • Mejoras en el Módulo Security:

      • Nueva entidad SecurityDomain para poder declarar usuarios con el formato "user@domain". El dominio es una nueva entidad del módulo de seguridad y está relacionada como clave foránea en SecurityUsers.

      • En SecurityUsers se creó un índice único por SecurityUserCode y el nuevo atributo SecurityUserDomainId para controlar unicidad de Usuarios por la combinación de ambos campos.

      • Se soporta que SecurityUserDomainId pueda ser nulo en cuyo caso sería para mantener compatibilidad con versiones anteriores y en ese caso no es necesario indicar el @ en la caja del nombre de usuario en el Login.

      • Se realizaron cambios a nivel del Login para soportar este nuevo concepto.

      • Se modificaron algunas instancias para dejarlas funcionales con cualquiera de los dos generadores Web.

    • Las preferencias que habilita los generadores en los xpz de los Designs ahora vienen todas deshabilitadas. Esto quiere decir que por defecto PXTools no va a generar ningún objeto de ninguna plataforma. Lo primero que habrá que realizar luego de importar un xpz de Design es indicar con qué generador se comenzará a trabajar para puego hacer un F5 luego de la importación.

    • Nueva API RetInstanceReferenceProgramName que permite a partir de un SDT "SDTInstanceReference" identificar objetos generados identificando con cuatro campos:

      • ModuleName: Identifica el módulo donde se encuentra el objeto.

      • LevelName: Nombre del nodo Level de una instancia de PXTools que terminará generando los objetos por plataformas.

      • NodeType: Tipo de nodo generado. Por lo general cada tipo de nodo determinará un prefijo a adicionar al LevelName. La conjunción del Prefico para cada plataforma sumado al LevelName generará el objeto que interesa referenciar.

      • Parameters: Conjunto de valores de parámetros separados por coma.

La conjunción de estos cuatro campos terminará generando una URL.

Este procedimiento recibe además de el SDTInstanceReference los siguientes parámetros:

    • InstanceReferenceTarget: Basado en un dominio con igual nombre con los valores: Menus o Link. Esto es para indicar si se va a generar una URL para guardar en la tabla de Menus o si se quiere generar para hacer un link dinámico.

    • ApplicationPlatform: Plataforma en la que se quiere identificar el objeto generado.

    • Nueva estructura en el SDTMenus que es utilizado en los DataProviders de generación de los menús para identificar de una forma de más alto nivel los objetos que serán generados para cada plataforma. La nueva estructura utiliza el mismo SDTInstanceReference mencionado en el punto anterior que permite identificar de una forma de más alto nivel la identificacione de los programas relacionados a un menú para todas las plataformas. Esto permite hacer referencias a objetos que no existen en la KB pues por defecto no se estará generando ningún objeto para ninguna de las plataformas Web.

Errores Corregidos

    • Se generaban distintos errores al aplicar patterns relacionados con KBs que tenían definidos prefijos con compatibilidad de versiones con GeneXus 9.

    • Export a Excel tanto para Web Desktop como para Web Responsivo no estaba cargando los valores de Contextos definidos en las preferencia del PXWorkWith. Esto se debió que al mover el Contexto por plataforma dejó de tomarse en cuenta correctamente. Se tomó la decisión de volver el Contexto para la raíz de la preferencia ya que no encontramos motivo para cambiar los valores del Context dependiendo de la plataforma.

    • Control de seguridad de las acciones asociadas al Nodo Modes para Insert, Update, Delete y Display no se estaba realizando en los objetos responsivos.

    • Los Menus no se estaban ocultando en forma automática a partir del control de seguridad. Esto fue corregido en el procedimiento PPEXE_DeMnW05 donde también se detectó una vez corregido este problema que los menús padres de hijos ocultos tampoco se estaba ocultando automáticamente. Este último problema también se corrigió en el mismo procedimiento.

    • Template responsivo personalizado en los nodos del pattern no se estaba tomando en cuenta.

    • Propiedad "Refresh Action" en Action con "Call Type" Event no se estaba tomando en cuenta.

    • Acción con "Insert" con "Insert Variables" no se estaba incluyendo en los Web Panels con generador responsivo.

    • Propiedad "Selected Data Type" en las preferencias del patterns pasó al nodo "Template" del PXWorkWith pero no se estaba transformando correctamente de la versión anterior. Esta propiedad estaba originalmente en el nodo Grid de las preferencias del PXWorkWith pero al moverse todo el nodo Grid a ser dependiente de Platform generó sacar esta propiedad "Selected Data Type" del nodo Grid porque no puede depender de la plataforma. El proceso de movimiento de esa propiedad para la nueva versión no copiaba correctamente el valor de la misma por lo que en KBs que tenían el valor "Domain Boolean" se pasaron a "Data Type Boolean" lo que generó problemas en el proceso de compilación de las aplicaciones por ser tipos de datos distintos. Adicionalmente tampoco se estaba viendo en el nodo Template pero porque no se quitaron ciertos controles de visualización que tenían cuando estaba bajo el nodo Grid. El problema fue resuelto pero en aquellos clientes que la transformación de la instancia ya se hizo deberán cambiar esta propiedad manualmente.

    • El procedimiento de Export a Excel no estaba incluyendo entre los parámetros la variable &OrderSelected lo que generaba errores en el pasaje de parámetros entre el Selection y el Export a Excel.

    • ConditionalImage no esta funcionando en acciones InGrid que no tienen definida la propiedad Condition. Como Work Arround se puede solucionar el problema agregando una condición 1=1.

    • Cuando se deshabilita en el nodo Modes el Delete y el Insert y se tiene la funcionalidad de "Transaction as Business Component" (editar la grilla sin interacción con el form de la Transacción) la columna de Delete no debe generarse.

    • También se encontró un problema si solo se deshabilita el Delete. En ese caso la columna de Delete si debe generarse pero faltó generar un control de habilitación de dicha acción solo para los registros que se están ingresando en el momento de pasar la grilla a editable.

Preview 5

Nuevas funcionalidades

    • Nueva API EncodeURLParameters que genera la codificación de valores de parámetros con caracteres no válidos de la tabla de ASCII usando el concepto de "URL Encoding". Por más información: http://www.w3schools.com/tags/ref_urlencode.asp

    • Nueva preferencia a nivel del nodo Form debajo de Platform con el nombre "Generate Cancel Action On Components" para determinar si se genera la acción Cancel en objetos Componentes. Por compatibilidad esta propiedad será inicializada en False.

Errores Corregidos

    • Nodo Columns -> Column generaba error de nombres de tablas duplicados en generador Web Responsive en patrón PXComposer.

    • Campos fecha en grilla que tiene habilitada la funcionalidad de "Transaction as Business Component" (editar la grilla sin interacción con el form de la Transacción) se visualizaba duplicado cuando la grilla estaba en modo lectura y se presentaba un botón a la derecha de la caja de texto que incluye el caption del Tìtulo y que no funcionaba correctamente. Se detectó que este problema es de GeneXus cuando se presentan variables en la grilla que pueden cambiar de Enabled a Readonly o viceversa. Se encontró un WorkArround definiendo algunas clases bajo el nodo: Custom -> Grid -> TD. Este WA es temporal y para permitir trabajar con atributos en la grilla basados el Date pero con la resolución del problema por parte de GeneXus habrá que borrar estas classes creadas.

    • Cuando se tiene la preferencia en Defaults: Transactions Default Platform en valor <none> generando transacciones hijas por el pattern PXWorkWith no se estaban generando correctamente variables declaradas en el pattern basadas en SDTs.

    • Cuando se generan transacciones hijas por el pattern PXWorkWith se estaban considerando incorrectamente en la generación de Levels de las instancias por defecto de otras transacciones relacionadas por las estructuras.

    • Si se tiene un componente y se genera un nodo Action con valor Cancel no se incluía la acción.

    • Cuando se tiene la propiedad "Main Transaction In Section General" habilitado se generaba incorrectamente la asignación de las imágenes de los Modos Update, Delete y Display.

    • Action Cancel con Control Type <default> no estaba generando la acción en Transacciones.

Preview 6

Nuevas funcionalidades

    • Nuevo módulo MailAccounts que gestiona la definición de cuentas de correo y sus respectivas conexiones a servidores SMTP y POP3. Es un módulo básico que será utilizable para los módulos más avazados de SendMails y ReceiveMails. Por mayor información: https://sites.google.com/a/puntoexe.com.uy/pxtools-manual/modulos/mailaccounts

    • Nuevo módulo ReceiveMails que permite la lectura de correos de las casillas de correos declaradas en el módulo MailAccounts. Por mayor información: https://sites.google.com/a/puntoexe.com.uy/pxtools-manual/modulos/receivemails

    • Mejoras al módulo SendMails para:

      • Integración con nuevo módulo FileStorage para almacenamiento centralizado de los adjuntos.

      • Integración con módulo TaskManager a través de nueva tarea: TskSendMails.

      • Modificación del proceso Command Line PrcSendMails para encapsular la programación por el nuevo TskSendMails.

    • Nuevas preferencias relativas a seguridad en nodo Defaults del PXWorkWith.

      • "Check Modes Security On Selection": Determina para las acciones asociadas al nodo Modes (Insert, Update, Delete y Display) si se quiere hacer un control de seguridad contra el Selection, Prompt o Section correspondiente.

      • "Check Security On Sections": Determina si se controla seguridad para las secciones del nodo View. También se cambió la propiedad "Check Security" del nodo Section para soportar el valor <default> que indica que se tomará en cuenta con esta nueva preferencia.

      • "Check Security On Sections Against": Determina el control de seguridad contra qué objeto se realizará. Las opciones son "Panel" que será el control sobre el nombre del objeto generado asociado al Section o "Transaction" que será contra el nombre de la transacción asociada al nodo Section. En caso de que no haya nodo Transaction asociado al Section se controlará directamente contra el Panel del Section.

    • Cambios en la forma de generar código de un PXParameterRequest type Prompt. Se detectó que en modo Smooth la funcionalidad de Parameter Request type Prompt no funcionaba si se tenía instanciada una Action Enter. Esto es debido a que en ambiente Smooth no se está ejecutando correctamente el UC RunScript. Se realizaron pruebas utilizando código nativo GeneXus y se determinó que la versión actual de GeneXus implementa correctamente el retorno de valores. Por este motivo se decidió volver al código nativo de GeneXus.

    • Soporte de Two Pane Dialog en ambiente Responsivo. Se realizaron varias mejoras relativas al soporte de esta nueva funcionalidad:

      • Nuevo Template: PXToolsResponsiveSelectionTwoPaneDialog. En KBs que ya tengan PXTools instalado deberán adicionar la referencia de este nuevo template en las preferencias del PXWorkWith para el nodo Selection, Section y Prompt.

      • Nuevas propiedades para las Standard Actions "Add All" y "Remove All" que permite diferenciar la imagen o el texto según la configuración dependiendo si se tiene (o no) habilitado e TwoPane dialog.

      • Agregado de algunas clases para soportar el diseño de la representación de las dos grillas y los títulos que identifican cada una de ellas.

Errores Corregidos

    • Correcciones en las APIs del módulo PXTools.Menus para continuar tomando en cuenta el campo Program del SDTMenus. Ese campo, pese a haber deprecado, debe seguir utilizándose en el módulo Menus para que no sea obligatorio cambiar los Dashboards que cargan los menús.

    • Transacción con FixedData Section generaba error en generador Smart Devices.

    • Se generaban errores en el generador Smart Devices cuando se encontraban preferencias de los nodos Layouts con valor <default>

    • Propiedad "Add All Row Condition" y "Remove All Row Condition" del nodo Modes no se estaban tomando en cuenta si se tenía la propiedad "Force Grid Load" en False.

    • Invocación con Link Type "PXInstance" a transacción desde cualquier pattern que no sea el WorkWith no se estaba soportando.

    • Cuando se trabaja con Transacción intermedia en OAV se generaban algunos errores que fueron corregidos:

      • Procedimiento de Validación de Fórmula generaba un paréntesis de más en una invocación.

      • Procedimiento de Agregar atributos generaba un error de especificación en el New por referenciar a atributo inferido.

      • Procedimiento de validación de existencia de atributo generaba un error de especificación por no tener declarada una variable.

    • Algunas propiedades del nodo "Control Info" no se estaban mostrando sobre una variable declarada bajo el nodo "Insert Variables".

    • Export a Excel sobre columnas basadas en Dominios enumerados estaba generando la asignación contra el mismo tipo del Dominio cuando debería siempre asignar sobre Texto ya que se va a cargar siempre la descripción del dominio enumerado.

    • VisibleCondition en Atributos hijos del nodo Filter del WorkWith estaba generando regla sobre el atributo en lugar de la variable.

    • En paneles con Two Pane Dialog habilitado la acción de quitar los seleccionados no estaba funcionando correctamente si se tiene la propiedad Selected Data Type con Boolean.

    • ParameterRequest estaba generando error al aplicar el pattern para el generador Smart Devices.

    • No se estaba grabando correctamente la propiedad Tooltip en Botones en Paneles con Layout Abstracto.

    • Control de Seguridad de Acciones del nodo Modes contra Transacción cuando se tiene habilitada la funcionalidad Transaction as Business Component referenciaba a la Transacción sin el Qualified Name.

    • Subrutina de Salvado de contexto de Grilla no se estaba invocando en nodos Codes de tipo ControlEvent en generador Responsivo.

Preview 7

Errores Corregidos

  • Se cambió la invocación al HNotAuthorized con el Qualified Name para no generar problemas de ambiguedad de invocación si hay otro objeto con el mismo nombre en otros módulos.

  • Se cambió la forma de implementación de los scrolls en las Grillas. Debido a un cambio de GeneXus en el comportamiento de algunas pantallas con "Web User Experience" en "Smooth" (en los navegadores Safari y Firefox) no disparan ciertos Javascripts en la MasterPage al pasar del Selection a la Transacción. Esto es debido a que no se ejecuta el evento Refresh de la MasterPage en esa transición de pantallas y este evento es necesario para ejecutar los Javascripts que determinaban el tamaño del div para el scroll correspondiente a las grillas. Se logró implementar con HTML y CSS3 la representación de esta funcionalidad sin necesidad de ejecución de Javascripts.

  • Para lograr dejar implementado esta funcionalidad sin importar el Theme de alguno de los Design será necesario configurar las siguientes Clases (debajo del nodo Section) en el Theme para el generador Desktop:

  • .GridDivMain

  • {

  • position: relative;

  • height: 100%;

  • width: 100%;

  • }

  • .GridDivOverflow

  • {

  • overflow: auto;

  • padding-right: 15px;

  • position: absolute;

  • height: auto;

  • max-height: 100%;

  • width: auto;

  • max-width: 100%;

  • }

  • Cambios en la forma de ejecución de los Javascripts para la representación de Tabs para el generador Web Desktop. Por el mismo motivo que el punto anterior se debieron realizar cambios a algunas formas de ejecutar Javascripts para asegurarse que en la entrada de la transacción se ejecuten los mismos. Para esto se hizo un cambio en la API PPEXE_DeTab06 que se deberá importar del Modulo APIs para lograr la corrección de este problema.

  • Modificación de algunos procedimientos generados por el OAV para generar la propiedad "Commit On Exit" en No. Esto se cambió para soportar algunos DBMS que no soportan la generación del comando Commit dentro de una iteración de registros.

  • Soporte de nuevas propiedades asociadas a la Grilla de GXUI.GridExtension:

    • EditableCellClass: Permite definir a las columnas asociadas a variables editables con una clase que distinga el estilo de las no editables.

    • EnableTextSelection: Permite que los valores de las grillas puedan se seleccionados para poder Copiar sus valores.

  • Cambios en Theme de los diseños predefinidos para:

    • Soporte del nuevo template PXToolsResponsiveSelectionTwoPaneTemplate.

    • Mejora del estilo en caso de usar la grilla estándar tanto en transacciones como en Selection o Section Type Grid con el estilo similar al de la GXUI.

    • Uso de la nueva propiedad EditableCellClass.

  • Se corrigió la generación de Conditions en Control Info con valor Dynamic Combo para generador Responsivo. En algunos casos no se trasladaba la propiedad al objeto generado.

  • El control de Menu para el lateral izquierdo cuando está configurado como Standard tenía un retardo en la ejecución y se detectó que estaba en permanente ejecución. Se corrigió el pexe_menudivfix.js que se encuentra dentro del UC PXToolsJavascripts.