NUEVAS FUNCIONALIDADES
Soporte de apertura de un objeto referenciado en Acciones con invocación "Submit".
Soporte de apertura de una instancia de pattern referenciada en un Section asociado a un Componente externo con "Reference Type" de tipo "PXInstance".
ERRORES CORREGIDOS
Cuando se define un nodo Label se asociaba a una clase incorrecta.
En los nodos Label e Image no se mostraban las propiedades asociadas a las clases.
Condición de visibilidad de Atributos o Variables en Transacciones definidas dentro de nodo Section no generaba el código de visibilidad del Label asociado.
Se eliminaron del Output de GeneXus falsos Warning de variables duplicadas cuando se definen variables con mismo nombre en el nodo "Transaction" debajo del nodo "Section".
Visible Condition en variables o atributos basado en control "Chosen" no estaba referenciando correctamente al control en pantalla.
NUEVAS FUNCIONALIDADES
El título del ContextualBox del GridHandler se mantiene fijo al realizar scroll hacia abajo por las opciones.
Esto permite (en caso de estar habilitado) mover la ventana contextual aunque se encuentre bajo el scroll.
ERRORES CORREGIDOS
Se comenzó a eliminar los posibles ";" generados en la "Condition" de los nodos "Order" del PXWorkWith.
Correcciones relacionadas con el ResponsiveLayout:
Se mejoró la actualización dinámica de las áreas al momento de redimensionar la ventana del navegador.
No en todos los casos se redimensionaba correctamente.
La opción minimized solo se habilita en modo Push.
En algunos casos se estaba mostrando en modo Float.
Correcciones relacionadas con el GridHandler:
Se corrigió la declaración del DataProvider de GridHandler para casos de Variables, Atributos o Acciones que se desplieguen a nivel de la grilla y tengan "Visible Condition" para que no pueda ser afectado ese comportamiento de visibilidad a través de este control.
Problema con recuperación de la configuración de las columnas en Evento Start.
Problema cuando la obtención del ControlPreferences es más rápido que la carga del Grid.
Problema con la identificación del Grid cuando se muestran Componentes con varios Grids.
Se agregó el campo "ObjectName" en el SDT asociado al GridHandler para identificar el nombre del Web Panel asociado al control.
Se está cargando en forma automática en el DataProvider que realiza la carga de dicho SDT.
Se agregó la clase BtnGridOptions al Theme PXToolsResponsive y se dejó de referenciar en el css asociado al GridHancler para que todo lo que esté asociado a estética de colores se mantenga en el Theme y no a nivel de los css de los User Controls.
Correcciones relacionadas con el ContextualBox:
Corrección del comportamiento del scroll de la caja al llegar a los extremos que se cerraba el ContextualBox.
Corrección de la posición del ContextualBox al ser activado en un Componente.
NUEVAS FUNCIONALIDADES
Nuevo soporte a nivel de patterns de una nueva funcionalidad en GeneXus 18 que permite establecer un Data Store y un Data Selector asociado a una posible base de datos replica de lectura:
Nueva propiedad "Data Selector For Read Database" a nivel de la preferencia del pattern PXWSLayer que determina a nivel del pattern PXWSQuery y PXWSData utilizar la sentencia "Using" para el DataProvider (del PXWSQuery) y Procedimiento (del PXWSData) que permitirán utilizar el Data Selector asociado a la base de datos de Lectura.
Nueva propiedad "Data Selector For Read Database" a nivel de la preferencia del pattern PXWorkWith que determina que en el control de Grilla de los objetos generados (Selection, Section tipo Grid y Prompt) se le asocie ese Data Selector y utilizar la sentencia "Using" para el Procedimiento de Export a Excel vinculando el Data Selector asociado a la base de datos de Lectura.
ERRORES CORREGIDOS
Cuando se tiene una Acción definida en un Section de tipo Grid con la propiedad Name basada en acciones estándar (por ejemplo "Insert", "Update" o "Delete") y el "Control Type" tiene el valor "<default>", no se utilizaba el tipo predefinido a nivel de las Standar Actions de las preferencias de la plataforma y se forzaba a texto en forma incorrecta.
ERRORES CORREGIDOS
Cuando se tenía la funcionalidad de GridHandler habilitado y se pide deshabilitar esta funcionalidad, bajo algunas circunstancias, se generaba un error interno.
No está claro el motivo, pero durante el proceso de intento de borrado del DataProvider asociado al GridHandler, GeneXus intenta generar la sección de variables en forma innecesaria. Se agregó una programación para considerar esta situación.
NUEVAS FUNCIONALIDADES
Es posible configurar el comportamiento por defecto de la primera columna de los Prompts para quedar como Fixed Column a la izquierda con la propiedad "Return Prompt Column As Fixed Column" en las preferencias del PXWorkWith en el nodo Grid en la categoría "Fixed Columns".
Se cambió la propiedad "Selected As Fixed Column" en las preferencias del PXWorkWith en el nodo Grid a la categoría "Fixed Columns".
ERRORES CORREGIDOS
La funcionalidad de Fixed Columns no funcionaba correctamente al aplicarlo sobre Atributos o Variables.
Cuando se habilita el "Paging Programming Style" en "GeneXus with GotoPage":
En el evento Start dejaba de incluir una línea que inicializaba el valor de Rows: "Grid1.Rows = &PageRows".
En la Subrutina 'LoadGridState' dejaba de incluir una línea que solicitaba a la grilla el salto de página: "Grid1.GotoPage(&CurrentPage)".
NUEVAS FUNCIONALIDADES
Se agregó la propiedad "Action Post Code" para acciones que tengan "Call Type" en "Submit" en PXWorkWith, PXParameterRequest y PXComposer.
Soporte de control "Grid Handler" a nivel del generador Responsivo.
Este nuevo control permite las funcionalidades de:
Ocultamiento/Visibilidad de Columnas en tiempo real.
Movimiento de Columnas en tiempo real.
Perdurabilidad de las configuraciones usando el módulo de Control Preferences.
La propiedad principal para habilitar este control está en:
El nodo Selection, Section tipo Grid y Prompt en la categoría Grid.
En caso de que ese valor sea "<default>" se considerará la propiedad "Grid Handler" en la categoría "Handler".
Por el momento solo está habilitada esta funcionalidad para el generador Web Responsive.
Existe una nueva propiedad ("Visible by default") a nivel de "Attribute", "Variable" y "Variable Reference" que define el comportamiento inicial de la variable o atributo en la grilla.
Nueva funcionalidad de Fixed Columns en "Attribute", "Variable", "VariableReference", "Action" y "ActionReference":
Esta funcionalidad permite mantener cierta(s) columna(s) fijas tanto a la izquierda como a la derecha de la grilla sin que se ven afectadas por el scroll horizontal de la grilla.
La propiedad asociada es "Fixed Column" y los valores posibles son:
No: Comportamiento habitual.
Left: Que se muestre como columna estática a la izquierda.
Right: Que se muestre como columna estática a la derecha.
<default>: Que se muestre colmo columna estática según esté indicado en la propiedad "Actions Position" en Sección "Grid".
Es posible configurar el comportamiento por defecto de la variable &Selected (asociado a Acciones multy-row) con la propiedad "Selected As Fixed Column" en las preferencias del PXWorkWith en el nodo Grid en la categoría "Actions".
Por el momento solo está habilitada esta funcionalidad para el generador Web Responsive.
Soporte de valor "Otherwise" en propiedad Condition en nodo Order del Selection, Section Grid o Prompt de PXWorkWith
El valor funcionará correctamente si ese valor es colocado únicamente en el último nodo Order.
Nueva funcionaliad de "Title Groups" en Grillas estándar de GeneXus.
Esta funcionalidad permite generar textos agrupados entre distintos títulos de columnas adyacentes.
Se comparte el uso de la propiedad "Header Groups" que es originalmente soportado a nivel del la GXUI Grid Extension.
Por el momento solo está habilitada esta funcionalidad para el generador Web Responsive.
Nueva opción en la propiedad "Paging Programming Style" con el valor "GeneXus with GotoPage".
Esto se debe a que, bajo determinadas circunstancias, se genera un mal funcionamiento de la paginación en GeneXus 18 y se implementó un Work arround para resolver este inconveniente.
Soporte de Statefull y otras mejoras en el User Control PXTools GridPaging en responsivo:
Nuevas APIs a nivel del módulo ControlPreferences.
Uso de esta nueva funcionalidad en función de la preferencia existente "Save Grid State" y de encontrarse los procedimientos nuevos definidos en el módulo ControlPreferences.
Se implementaron algunas mejoras a nivel de javascript para la detección de cantidad de páginas permitiendo disminuir código a nivel del Web Panel.
ERRORES CORREGIDOS
El valor del Caption del Textblock asociado al nombre de la transacción no se estaba generando correctamente si se usaba la propiedad "Transaction Default Platform" de la raíz de la instancia.
Correcciones en el pattern PXOAV:
Se estaba haciendo referencia a la API SplitPosition con el nombre viejo HPEXE_SplitPosition.
En el procedimiento Val<TansactionDefinitionPrefix>OAVFormula se estaba referenciando, en una de las invocaciones al procedimiento Ret<TransactionDefinitionPrefix>OVAFormulaAttQueryString, parámetros con atributos incorrectos.
Se elimintó el comentario de "// Columns Titles" si no se define ninguna columna con opción de Orden en generador Responsivo.
ERRORES CORREGIDOS
El pattern PXWSData generaba error en la generación de uno de los SDTs cuando se cargaba la propiedad "Private Name".
El pattern PXWSQuery no generaba correctamente el nombre del campo del SDT asociado a variables definidas en el nodo Filter cuando se cargaba la propiedad "Public Name".
El pattern PXWorkWith realizaba la invocación a la Transacción con el nombre incorrecto cuando se tiene la propiedad Transaction Default Platform cambiada a nivel de la raíz de la instancia.
No se estaban generando imágenes declaradas en el nodo Section de tipo Tabular del pattern PXWorkWith con el generador Web Desktop.
ERRORES CORREGIDOS
La propiedad "Evaluate Security" en <default> en acciones InGrid no respetaba el valor seteado a nivel de la preferencia del pattern.
Esto se daba debido a un Work Arround implementado a causa de un Bug de GeneXus 17 U10 o superior que no mantiene el valor de ciertas variables utilizadas en el panel para consultarlas luego de ejecutar una acción y verificar el estado de esas variables para la seguridad de la Acción.
El Work Arround fuerza el valor de "Evaluate Security" a "Refresh" si la propiedad "Evaluate Security" está en <default>.
Ahora se corrigió para solo aplicarlo si la propiedad "Evaluate Security" está en <default> y además, en las preferencias del pattern, el valor de "Evaluate Security" está en "Start".
NUEVAS FUNCIONALIDADES
Se agregó la posibilidad de declarar múltiples Métodos en el PXWSData de igual forma de que se pueden definir en el PXWSQuery.
Se soportó en el PXWSLayer la posibilidad de referenciar los nuevos métodos del PXWSData.
Nueva propiedad a nivel de la raíz de la instancia del PXWorkWith: "Transaction Default Platform".
Esto permite realizar cambios paulatinos de la plataforma base para poder actualizar al GXServer sin mayores problemas.
El valor por defecto es "<default>" que indica que se toma el valor definido a nivel de la preferencia del PXWorkWith.
ERRORES CORREGIDOS
En el pattern PXOAV en los eventos del Editor de Atributos se agregó el control de que el atributo basado en Dynamic Read Only pueda llegar a estar vacío además de nulo.
Corrección de fallo en la grabación de Transacciones generadas subordinadas al pattern (generalmente creadas cuando se soportan múltiples plataformas) en el caso de la existencia variables a nivel del Template que ya están definidas en la Transacción base del pattern. En esos casos la aplicación del pattern generaba un error por variable duplicada.
Las acciones declaradas con nombres preestablecidos no estaban generando el control de seguridad que se definía en la propiedad "Evaluate Security" del nodo sino que las aplicaba siembre a nivel del Evento Start.
NUEVAS FUNCIONALIDADES
Nueva propiedad "Level" a nivel del nodo Rule en Transacciones del PXWorkWith para poder definir reglas asociadas a atributos de grillas de la transacción.
Cuando se define una variable o atributo basado en Boolean ahora se asocia la clase "CheckBox", "TabCheckBox" o "GridCheckBox" sin necesidad de tener que definir el ControlInfo Checkbox.
Nueva opción de generación forzosa de variables en Objeto API para resolver pérdida de dinamismo por bug de GeneXus 17.
La nueva propiedad es "Overwrite REST API Object Variables" bajo el nodo "Defaults" de las preferencias del PXWSLayer
En GeneXus 18 no es necesario realizarlo porque ya fue reportado el problema a GeneXus y lo van a resolver ellos.
Nueva propiedad "Do Not Goto First Page On Page Row Change" a nivel del nodo Layout del PXWorkWith en Selections, Sections y Prompts.
Cubre un caso muy puntual de un mal funcionamiento de GeneXus que hace que la grilla no se refresque correctamente cuando se hace un cambio de cantidad de registros por página en ambiente responsivo.
ERRORES CORREGIDOS
En la generación del nuevo Objeto API asociado al PXWSLayer se modificó la parte de eventos que estaba usando una variable &ExecutionException en lugar de usar &ThrowException.
En la generación del procedimiento SOAP asociado al PXWSLayer no se estaban generando las variables &SDTExceptionHandler y &ThrowException.
ERRORES CORREGIDOS
En la generación del nuevo Objeto API asociado al PXWSLayer los métodos se modificaron para usar la modalidad POST en lugar de GET.
NUEVAS FUNCIONALIDADES
Soporte de WSLayer.SDTAPIContext en PXWSQuery para trasladar información adicional al Data Provider.
En ocasiones existe la necesidad de filtrar registros de un Query con las siguientes características:
Dicho filtro no está relacionado con la clave de la tabla por lo que no se puede usar las funcionalidades de Multitenant.
En determinadas situaciones esos valores no están directamente ni en la tabla base ni en la tabla extendida.
Por lo que se necesita trasladarle al Data Provider información adicional que se pueda deducir del Contexto de Seguridad.
Para esto se creará un nuevo SDT que llamaremos SDTAPIContext:
Podrá indicarse que se cargue a través de una nueva propiedad "include Context" en el nodo "Method" .
Con la indicación de la carga se generará una nueva línea de código en el procedimiento asociado al query que invocará a un procedimiento "RetSDTAPIContextFromConnection" pasando por parámetro el SDTConnection.
Ese procedimiento también podrá tomar valores del Header del HttpClient.
Ese SDT será pasado por parámetro al DataProvider.
Ese SDT podrá ser referenciado a nivel de las Conditions de la instancia del Pattern para vincular los campos del SDT con las distintas formas de filtros que soporta GeneXus como Conditions de un DataProvider.
Soporte de Filtros de tipo "Collection" tanto en atributos como variables.
Nuevas propiedades a nivel de la versión del PXWSLayer
Las nuevas propiedades son las mismas que se incorporaron en la versión anterior "Generate SOAP", "Generate REST", "Generate REST API Object" y "Generate REST Procedure Object" a nivel de las preferencias del pattern.
Los valores por defecto que tendrán será el valor "<default>" que representa que se toman los valores por defecto de las preferencias del pattern.
Para todo lo generado previo a esta versión se forzarán a los siguientes valores para mantener compatibilidad de versiones anteriores:
Generate REST API Object: False
Generate REST Procedure Object: True
Soporte de Generación de Web Service Log del PXWSLayer a nivel de las preferencias del pattern en el nodo Default.
Se soporta también programar la carga del Filter Data del Web Service log de la siguiente forma:
Propiedad "Include Context": Incluye la carga del &SDTAPIContext que podría ser la base para representar al Filter Data.
Propiedad "Filter Data Previous Code": Codigo previo a la referencia del Filter Data en la creación del log para permitir preprocesar información que podría necesitarse para referenciar al FIlter Data.
Propiedad "Filter Data Expression": Define la expresión regular que representará el Filter Data.
Soporte de Generación de bloques de Try Catch en PXWSLayer, PXWSQuery, PXWSData y PXWSTransaction.
En el único caso que no quedó soportado (por el momento) es en el caso de REST con invocación a GXObject desde Objeto API.
Soporte de propiedades "LoadPreviousCode" y "LoadCode" en variables del PXWSData.
ERRORES CORREGIDOS
En la propiedad Type del nodo Code en PXWSData se dejaron los valores: Start, Load y Subroutine.
No se estaba generando el Code Start ni Code Subroutine en PXWSData.
NUEVAS FUNCIONALIDADES
Posibilidad de indicar si se va a generar REST o SOAP en forma independiente.
Para ello se agregó a nivel de las preferencias del pattern en la sección "Default" nuevas propiedades bajo la Categoría "Generators": "Generate SOAP" y "Generate REST".
Nueva forma de generar el PXWSLayer sobre el nuevo objeto GeneXus API.
El nuevo objeto API de GeneXus viene a cumplir la misma funcionalidad, que hoy en día se soporta al publicar en un Procedimiento un EndPoint para SOAP que contenga un conjunto de métodos asociados, pero en este caso para el protocolo REST.
Por el momento, se ha encontrado en GeneXus 17/18 un bug asociado a la generación de la parte de las variables del objeto API que hace que se pierda el dinamismo al momento mismo de salvar el objeto. El motivo explicado por GeneXus de este problema es que es el primer Objeto GeneXus que genera variables estándar basadas en dominio y se plantea que la corrección quedará disponible a partir de GeneXus 18 U11.
Para habilitar esta funcionalidad se agregó a nivel de las preferencias del pattern en la sección "Default" nuevas propiedades bajo la Categoría "Generator REST": "Generate REST API Object" y "Generate REST Procedure Object".
Nuevas funcionalidades en el pattern PXWSQuery:
Soporte de una nueva propiedad en filtros que permita indicar una condición extra a la aplicación del propio filtro. El nombre de esta propiedad es: "When Extra Condition".
Soporte de Empty value en Filtros definidos como Numéricos o Boolean.
Esto surgió del análisis de representar la ausencia del dato de forma de poder no aplicar el filtro.
En estos caso se realiza un cambio del Tipo de dato del filtro a Character para poder representar el valor vacío como la ausencia de valor.
Posibilidad de referenciar a los filtros en las Conditions especialmente para la sección posterior al When.
En pattern reconocerá esas referencias como si fueran variables referenciadas y las transformará en los campos del SDT correspondientes al Filtro definido por el pattern.
Soporte de Variables en Filtros.
Esta funcionalidad incorpora en los nodos "Variable" (cuando se encuentran dentro de la sección de "Filters") las mismas propiedades que se pueden configurar a nivel del nodo "Attribute".
Posibilidad de generar instancias de PXWSQuery y PXWSData a partir de los nodos del PXWorkWith:
Desde un nodo Selection con botón derecho existirá una forma de generar un PXWSQuery que respetará la declaración de atributos de la grilla, filtros, conditions y parameters.
Desde un nodo Section de tipo Grid también se podrá generar un PXWSQuery tomando en cuenta los parámetros del Section o los parámetros del View.
Desde un nodo Section de tipo Tabular se podrá generar un PXWSData.
Soporte de SubLevels en PXWSTransaction.
Se mejoró la detección de prefijos para la carga automática de "Public Name":
Antes se tomaba el primer atributo no Clave, no Foráneo, no Inferido como la base para considerar el prefijo.
Ahora se toman los primeros 6 atributos no Claves, no Foráneos, no Inferidos y el que genere más coincidencias con el resto de los atributos será el que se toma como base.
En el proceso de la determinación de la mayor cantidad de caracteres del prefijo (que genere mayor coincidencia para el resto de los atributos), se permite una pequeña disminución en la coincidencia en la medida en que se siguen tomando caracteres que estén en minúscula.
ERRORES CORREGIDOS
Conditions de Filtros de Selection estaban generando mal el código en el Export a Excel si se incluye ";" al final de la condición.
NUEVAS FUNCIONALIDADES
Nuevo método del UC PXToolsJavascripts: ClickElementEnsureUniqueInvocation.
En ocasiones necesitamos invocar a una ventana modal al entrar en una interfaz.
El problema es que si se ejecuta desde el Evento Refresh GeneXus en ocasiones realiza el llamado al javascript dos veces levantando así dos ventanas en lugar de una.
Este método permite invocar a una elemento del DOM que sea el que levante la ventana modal asegurándose que no se ejecute más de una vez.
ERRORES CORREGIDOS
Se cambió el orden de generación de los objetos del PXWSQuery para que no generen error de dependencias.
No se podían definir variables ni nodos Code en el PXWSData.
No se incluía en el objeto generado el código de los nodos Code en el PXWSQuery.
ERRORES CORREGIDOS
Se corrigió el valor por defecto de la propiedad Apply del nodo Code Delimiter de la preferencia del PXWorkWith para el valor "Before Save" por compatibilidad de versiones anteriores.
No se estaba considerando la propiedad "Label Theme Class" de Atributos o Variables en PXParameterRequest.
Algunas propiedades de Theme Classes tenían la primera letra en minúscula.
En nodos Label que tenían cargado las propiedades de Data no consideraba la propiedad "Attribute Theme Class" en PXParameterRequest.
NUEVAS FUNCIONALIDADES
Nueva propiedad "Allow Invert Selection Title Check Box" a nivel del Selection, Prompt y Section Type "Grid" para permitir deshabilitar la checkbox que se define a nivel del Titulo de las grillas estándares (sea generado por el generador Desktop o por el generador Responsivo.
También está soportada la propiedad a nivel de las preferencias del PXWorkWith en el nodo Grid de cada plataforma para poder realizar un cambio masivo de comportamiento.
Se implementaron nuevas propiedades en el nodo CodeDelimiter en las preferencias del PXWorkWith:
Apply:
"After Clear Markers": Se aplicará el intento de borrado del código delimitado luego de haber depurado los marcadores de PXTools.
"Before Save": Se aplicará el intento de borrado del código delimitado antes de salvar la transacción. Este sería el valor por defecto por compatibilidad de versiones anteriores.
"On Fail": Solo se aplicará este borrado cuando falle el salvado de la transacción. Luego de este borrado se volverá aplicar el pattern sonbre la Transacción antes de intentar salvarla nuevamente.
Fail Error To Search: Se muestra esta propiedad si la propiedad "Apply" tiene el valor "On Fail" y se define para indicar un texto que se genere como parte del fallo del salvado. En caso de coincidir la existencia de este texto en el error se aplicará el borrado del código delimitado por el correspondiente Code Delimiter.
Se volvió el uso de TooltipText en las grillas de Selection, Prompts o Sections de tipo Grid a la funcionalidad de GeneXus.
Cuando se definen valores constantes a partir de esta versión se trasladará directamente a la propiedad de la variable o atributo.
Cuando se definen valores variables se definirá la carga a nivel del evento Load.
ERRORES CORREGIDOS
Se remueve el ";" (generado por GeneXus en forma automática) en las distintas condiciones de Conditions, Atributos y Variables al momento de generar el código del Export a Excel de PXWorkWith.
Las propiedades Genenerate Web, Generate Web Responsive y Generate SD solo se estaban tomando en cuenta en las acciones In Grid.
Quedaron contemplaras estas propiedades para todos los tipos de acciones.
Nuevas clases: "Data Form Row Responsive Table" y "Data Form Row Tabular Table" no se estaban asociando correctamente en las tablas de Rows definidas en un PXParameterRequest.
La propiedad TooltipText en Variables o atributos de la instancia que se encuentren en secciones tabulares se comenzó a trasladar a control del panel generado. No quedó soportado el concepto de TooltipTextType con el valor "Variable" ya que dependiendo de la circunstancia puede necesitarse ejecutar en distintos eventos GeneXus.
ERRORES CORREGIDOS
Se remueve el ";" (generado por GeneXus en forma automática) en las distintas condiciones de Atributos, Variables y Acciones y Conditional Calls al momento de generar el código en los respectivos Eventos y Reglas del Panel de un PXParameterRequest y PXComposer.
Se realizan correcciones en los Eventos generados por un View con la funcionalidad de Dynamic Tabs que no estaba funcionando correctamente.
ERRORES CORREGIDOS
Cuando hay macros de [PXToolsWebDesktop] o [PXToolsWebResponsive] en Code Refresh o Load se trasladaba sin parsear el código generado para Export a Excel generando un error de sintaxis al salvar el procedimiento asociado.
Se tomó la decición que en la lógica del Procedimiento de Export a Excel ya no se tomarán en cuenta los códigos definidos bajo esas macros.
NUEVAS FUNCIONALIDADES
Se movieron algunas propiedades del nodo Action del PXWorkWith (relacionadas con Form y Theme Classes) a la zona inferior para ver más arriba propiedades de Conditions y Events.
Nueva propiedad "Allow Paging" en nodos Selection, Prompt o Section del PXWorkWith para concentrar la visualización de todo lo relacionado con la paginación en una sola propiedad.
Esto fue necesario porque a nivel del generador Responsivo el control de paginación concentra todos los subcontroles de paginación y por este motivo había que condicionar la visualización del mismo con una sola propiedad.
A nivel del generador Desktop si esta propiedad está deshabilitada entonces deshabilita todas las otras propiedades relacionadas con controles de paginación como ser (Botones de Paginación, Page Row Change, Page Jump, etc.)
Nuevas propiedades a nivel del Nodo "Templates" en las preferencias del PXWorkWith:
Generate HasFilters Variable: Determina la generación de la variable &PXToolsHasFilters que principalmente podrá ser usada a nivel del Template pero también en cualquier nodo Code de la propia instancia para determinar si hay filtros.
Generate HasPaging Variable: Determina la generación de la variable &PXToolsHasPaging que principalmente podrá ser usada a nivel del Template pero también en cualquier nodo Code de la propia instancia para determinar si hay soporte de paginación.
En el nodo Section se ocultaron todas las propiedades relacionadas con la Grilla en caso de que la propiedad Type tenga el valor "Tabular".
Nuevas clases: "Data Form Row Responsive Table" y "Data Form Row Tabular Table"
Estas propiedades están disponibles para poderles asociar clases.
Se crearon principalmente para poder afectar el comportamiento de la nueva funcionalidad de Tabla Tabular asociado a la Row que en ocasiones necesita algún tipo de ajuste de posicionamiento de los campos desplegados en este nuevo tipo de tabla.
El valor de estas clases iniciará vacío con el objetivo de que a nivel del generador no afecte el Layout resultante de la generación.
De momento que se carguen esos valores será necesario reaplicar el pattern de todas las instancias relacionadas con el generador Responsivo.
ERRORES CORREGIDOS
En el nodo Level del PXComposer se presentaba incorrectamente el Template asociado a Web Desktop.
En el generador Responsivo cuando se usa la propiedad visible sobre controles que están dentro de una Row con TableType "Tabular" se maneja el la visibilidad asociado al control y no a la Celda.
ERRORES CORREGIDOS
En el nodo Controller del PXWorkWith no se consideraban correctamente las macros de plataforma. Siempre se consideraba que era el generador Web Desktop.
ERRORES CORREGIDOS
La generación de las acciones InGrid no respetaba las propiedades de "Generate Web" ni "Generate Web Responsive" ni "Generate SD".
Se corrigió fallo en Generador Smart Device cuando se define un atributo o variable en el nodo Filters dentro del Layout.
ERRORES CORREGIDOS
En el generador Web Resposive se corrigió la muestra del Label con Description Position en Top que no estaba funcionando en View, Sections ni Transacciones.
Se corrigió un caso de falla en la generación de pattern PXWorkWith cuando se tiene un Selection (o Section Type Grid) con Export a Excel habilitado o alguna acción multi-row (que requiera la generación de un SDT a nivel del pattern) y además se encuentren acciones invocando con Link en formato PXInstance.
Si en las preferencias del PXWorkWith en el nodo "Grid" se tiene la propiedad "Columns Sortable" en "False" y en una instancia del pattern se habilita el orden por columnas sea a nivel de la instancia a nivel de las preferencias y en la propiedad "Sortable" de una columna de la grilla está en "<default>" entonces, durante su generación, se fuerza el valor a "True" para que exista la opción de ordenar en las columnas que se habilitó el orden automático.
ERRORES CORREGIDOS
En el patrón Flow Controller se pasó a soportar la posibilidad de que desde una ventana modal se cierre con la cruz de arriba a la derecha de la ventana y el controlador detecte ese cierre y realice la continuación del flujo.
Se agregó en el About la muestra de la versión del pattern WS Layer.
En el Install Manager se incluyeron los archivos ".svc" que corresponden a los web services rest.
En el generador Smart Devices se corrigió la muestra del Label con Description Position en Top que no estaba funcionando en View, Sections ni Transacciones.
ERRORES CORREGIDOS
No se generaba el botón Cancel en Paneles generados por el Parameter Request definidos como Popup o Prompts.
NUEVAS FUNCIONALIDADES
Se agregaron nuevas propiedades en el nodo View ("Excel Generate Top Grid" y "Excel Generate Bottom Grid") que permiten habilitar o deshabilitar la generación de contenidos de esos nodos en la exportación a Excel.
El valor por defecto quedó en False para mantener compatibilidad con lo generado en versiones anteriores.
ERRORES CORREGIDOS
En el pattern Entity Parameters se corrigió la muestra de los valores de preferencias basadas en Chosen.
Se mostrará la descripción de los valores seleccionados separados coma.
En el pattern Web Service Transaction no se estaba considerando el caso de actualización o borrado de registros de tablas subordinadas.
NUEVAS FUNCIONALIDADES
El nodo View del PXWorkWith generado por el pattern PXEntityParameters se le asignó la propiedad "Enter on Switch Tab" habilitada.
Se soportó la propiedad "Enter on Switch Tab" en nodos "Dynamic Tab" del PXWorkWith.
Nueva propiedad "Popup Name" en Acciones cuando se invoca con Link, External Link o Dynamic Link con Target New.
Esta propiedad levanta la popup con nombre lo que asegura que no se genere la presencia de múltiples popups con la ejecución reiterada de la acción.
Nueva propiedad "Ensure Unique Invocation" en Acciones cuando se invoca con Link, External Link o Dynamic Link con Target New.
Esta propiedad se asegura que la ejecución del javascript de ejecución de la ventana popup se haga una única vez.
Nueva propiedad "Force Form Reload" cuando se habilita Enter On Switch Tab en View. Esta propiedad fuerza la ejecución del View para contemplar casos en que luego de ejecutar el evento de una Section no se ejecuta el Evento Refresh ni el Evento Load del View.
Nueva funcionalidad en el User Control RunJS que se asegura de que la ejecución del script no se llegue a ejecutar más de una vez:
Se basa en la indicación al principio del Script de una macro que identifica ese script con un valor único.
El formato es el siguiente: &RunScript = "[!Unique:" + RetUniqueInvocationScriptValue() + "!]" + "<cualquier javascript>;"
Para ello se creó la API RetUniqueInvocationScriptValue que genera un valor único e irrepetible cada vez que se utiliza.
Cuando en una instancia hay nodos Fixed Data Section que tengan acciones y que a nivel del Template a utilizar no está definido dicho Fixed Data Section, las acciones se pasan a manejar como si fueran del nodo Actions.
Hasta el momento esta situación terminaba generando un error a nivel de especificación ya que los controles de dichas acciones no estaban en pantalla pero si estaban declarados los Eventos de dichas acciones que, en algunos casos, hacían referencia a los controles de pantalla.
Las propiedades de Classes de todos los controles comenzaron a aparecer pese a que el Layout sea Any:
Lo que se hizo principalmente fue duplicar todas las clases para diferenciar referencias del Theme Web con respecto a referencias de Clases del Theme SD.
Pasaron a ser todas visibles si el Layout se asocia a Any Platform.
Se ocultan aquellas classes si el Layout se personaliza para una sola plataforma Web o SD.
El objetivo de esto es para posteriormente poder hacer un nuevo juego de Clases asociadas al Design Object.
Nueva propiedad "Table Type" en Rows que permitiría customizar el Tipo de Tabla a usar en el Generador Web Responsivo cuando se tiene la funcionalidad de "First Element Aligned" habilitado.
Por el momento las tablas soportadas son: Responsive (que ya se estaban generando) y Tabular que utiliza el formato tradicional HTML.
El objetivo es continuar el desarrollo para habilitar posteriormente tablas tipo Flex o Smart.
Mejoras a nivel del Generador Smart Devices:
Si se habilita el nodo Modes en un Section el pattern buscará si hay un PXWorkWith asociado a la Transacción subordinada para hacer un link al Detail en el modo correspondiente.
Se agregó un Return luego de hacer el Save en el Section en modo Edit que representa la Transacción.
Soporte de Code type "OnLineTap" y "OnLineLongTap" para los eventos de Tap y LongTap sobre un registro de la grilla.
Soporte de Mode Update que generará en forma automática un Evento Tap sobre el registro de la grilla para llamar al Detail en modo Update con los parámetros instanciados del registro.
En el Detail se dejó de usar el Control "All Section Contents" ya que se detectó un bug de GeneXus que en caso de que haya una Section solo con Layout en modo Edit y se llama al Detail en modo "Display" se muestra incorrectamente el Tab correspondiente a esa sección cuando debería verse solo cuando se entra al Detail con los métodos Insert, Update o Delete.
Soporte de Condition en Sections.
Soporte en el Export a Excel para incluir variables que puedan encontrarse en FixedDataSections con Type "Top Grid" y "Bottom Grid".
ERRORES CORREGIDOS
Se cambió la propiedad "Condition" del nodo "Rule" de una Transacción para poder editarlo con una popup.
Se agregaron controles para eliminar los ";" definidos en la propiedad "Value" y "Condition" del nodo "Rule" al momento de la generación en la transacción.
Se corrigió la generación del pattern PXWorkWith correspondiente con la Transacción como Componente del pattern PXEntityParameters que tenía mal definido el Code Start ya que debe contemplar la carga de los datos en función del idioma recibido por parámetro.
En un Section Tipo Tabular si un atributo recibido por parámetro se despliega en pantalla, se pasa a gestionar como una variable pero a nivel del nombre del label se continuaba considerando con el prefijo de un atributo "lba" en lugar de una variable "lbv".
Cuando se tiene la opción First Element Aligned en Responsivo no se estaba definiendo la clase correcta asociada al Row con esa carácterística en el Layout Abstracto en los objetos generados asociados a los nodos Section del PXWorkWith.
Cuando una Acción en un PXWorkWith con la propiedad Name con el valor "Cancel" se define con link en formato PXInstance no se generaba el código correspondiente y solo se hacía el return.
Correcciones en generador Smart Devices:
Daba un error "The format string defined in the configuration file for type Transaction is invalid (does not contain "<Object>")" al aplicar el pattern cuando hay un nodo Transaction definido.
Daba un warning "Property ShowRowSelector not found in Grid node".
Se cambió la referencia del viejo External Object SDActions al nuevo Actions.
Se dejó de referenciar en ese External Object a los métodos de ese Refresh() y Return() por los comandos nativos de GeneXus.
Cuando se definen Columns en el Form de la Transacción quedaba mal definido el ancho de cada Column.
Se mejoró la predicción de los prefijos de los atributos al generar una instancia de PXWSTransaction.
NUEVAS FUNCIONALIDADES
Posibilidad de incorporar nodo Confirm durante el proceso de ejecución del Evento Enter de la Transacción:
Es sabido que esta funcionalidad no está soportada por GeneXus.
Se necesita en ocasiones el poder determinar si es necesario invocar a una interfaz de confirmación durante el proceso de Confirmación de la trasacción para estar seguro que el usuario está definiendo los datos de forma correcta.
Por ejemplo es importante si esos datos ingresados pueden implicar procesos posteriores que podría complicar deshacer si fue un ingreso incorrecto.
Para implementar esta funcionalidad se van a necesitar:
Definir una Acción con la propiedad Name con el valor Enter (que es uno de los valores posibles a definir por defecto en la lista de selección de esa propiedad).
Se podrá definir el Call Type de tipo Event y dentro del evento considerar las condiciones bajo las cuales será necesario invocar a una (o más) confirmación(es).
La (o las) confirmación(es) se puede(n) definir bajo el nodo Confirms.
Esta funcionalidad no es nueva ya que se podía usar Confirms en transacciones pero hasta el momento no se podía asociar al "Evento Enter" de la Transacción.
Soporte de un nuevo "Comando" a nivel de PXTools que en realidad es la función "Save()".
Esta función hace las veces de la solicitud a nivel de cualquier evento de ejecutar el Evento Enter final (real) de la transacción.
Queda ver si podemos resolver el caso de capturar la tecla Enter para que sea atendida por la Acción Enter y no por el Evento Enter de la Transacción.
Cambios a nivel de Sections Tabulares:
Soporte de Rectangle y Columns a nivel de Section Tabular.
Cambio en la forma de mostrar un atributo que está definido como parámetro:
En el Layout se pasó a mostrar la variable asociada al parámetro.
En las Rules se pasó a usar el visible de la variable asociada al parámetro.
ERRORES CORREGIDOS
Se corrigió en el generador Responsivo la muestra del Label asociado a una variable o atributo basado en el control Chosen ubicado en los filtros del Selection.
Se corrigió error en generador Desktop cuando en Section Tabular se agrega un Rectangle o Columns que no estaban soportados.
Se agregó una clase en la generación de la Tabla Responsiva de Chosen con Label para lograr alinear ambos datos correctamente.
ERRORES CORREGIDOS
En el PXParameterRequest:
Daba error el generador si se incluía un control tipo Chosen.
No se incluía código en el Evento Load asociado a nodo Link en Atributos o Variables del form en Web Panel responsivo.
En el PXWorkWith cuando se definen nodos "Link" con una llamada en formato PXInstance, no se generaba la invocación al web panel correspondiente al generador Responsivo.
ERRORES CORREGIDOS
En los paneles asociados al generador Responsivo se generaba el Textblock de htmScript en formato Text en lugar de Raw HTML.
Fallaba la validación de la licencia al comenzar a manejar el nuevo formato de versión de PXTools.
A nivel del licenciamiento se mantuvo el formato viejo mientras que en el About ya se maneja el formato nuevo.
NUEVAS FUNCIONALIDADES
Soporte de Code Type "LoadExcel". Código que se ejecutará como evento load solo en el procedimiento de export a excel.
ERRORES CORREGIDOS
Mejora en el proceso de About para detectar el directorio de GeneXus activo y por consiguiente las versiones de las librerías de PXTools correspondientes.
Ahora ya no se toma el directorio de instalación de GeneXus desde la registry sino el directorio del GeneXus que se esté ejecutando (que no tiene porqué coincidir con el directorio de instalación ya que el directorio de GeneXus puede haber sido copiado a mano)
Cambio en el majeno de versión de PXTools a la 7.0 que representa la versión general y ya no depende de la versión de GeneXus que se esté usando.
ERRORES CORREGIDOS
Se corrigió un caso de falla en la generación de pattern PXWorkWith cuando se tiene un Selection con Export a Excel habilitado y además se encuentran acciones con Conditional Calls invocando con Link en formato PXInstance.
ERRORES CORREGIDOS
En caso de que una acción de texto tenga una condición que se evalúe en evento y no tenga mensaje de error definido no se definirá el código generando un mensaje vacío.
No se estaban desplegando los valores correctos en la opción Evaluate Condition de Acciones en instancias PXParameterRequest. El valor por defecto pasó a ser "Start" al igual que en el PXWorkWith
NUEVAS FUNCIONALIDADES
Soporte de Code Type "ClearSearch".
Nueva propiedad "Excel Description" en Atributos y variables de la grilla. Si el valor está vacío se tomará para el Titulo del Excel la propiedad "Description".
Se toma la propiedad "Header Group" como valor a formar parte del título del excel.
ERRORES CORREGIDOS
En la extensión de generación de los módulos de la KB "Tools -> PXTools -> Basic -> Save System Modules" ya no se incluyen los módulos que comiencen con "GeneXus" y los módulos que comiencen con "Extensions".
Las acciones cuya Evaluate Condition estaba en "Refresh" se estaba evaluando dicha condición antes que el Code "Refresh".
Se pasó a evaluar la condición de la acción despues del Code "Refresh".
Se corrigió la nomenclatura del control asociado a una Category definido en una Row:
En Parameter Request y en Work With Responsivo no estaba considerando el nombre customizado del control.
En Parameter Request Desktop se estaba duplicando el nombre del control padre (en caso de que el Row esté dentro de controles contenedores como Tabs, Columns, etc).
NUEVAS FUNCIONALIDADES
Se agregó el nodo Label dentro de Row de Filtros en Selection, Prompts y Tabs tipo Grid.
Soporte de Grid1.OnLineActivate como evento posible a definir dentro del Template.
ERRORES CORREGIDOS
En acciones InGrid no se estaba declarando la variable de seguridad para trasladarla al momento de controlar la condicion de la acción (funcionalidad incorporada en la previa liberación).
En acciones InGrid no se estaba controlando la condición si la propiedad Evaluate Condición es "Start".
Esto está relacionado con un Work Arround implementado en la liberación previa que pasa el control de seguridad de una acción ingrid de "Start" para "Refresh" porque en caso contrario el valor de visibilidad definido en el Start se pierde al ejecutarse un refresh de la pantalla.
Al realizar este cambio ahora si la Condition está en "Start" también se fuerza la evaluación de la condición a Refresh para que se haga junto con la evaluación de la seguridad.
NUEVAS FUNCIONALIDADES
Se agregó la propiedad Range Precision y Like Precision en Preferencias del pattern PXWSLayer.
Estas preferencias permiten variar el comportamiento de búsqueda por rangos.
En Range Precision:
Cuando es "Strict" realiza la búsqueda estricta.
Cuando es "Flexible" agrega "Z" al final del To.
En Like Precision:
Cuando es "Strict" realiza la búsqueda estricta.
Cuando es "Flexible" agrega delante y detrás del valor el carácter "%".
Separación del momento de chequeo de seguridad de una acción del momento en que se controlaba la condición de la misma.
En versiones previas pese a que a nivel de acción era posible diferenciar los momentos de chequeo de seguridad del momento del chequeo de la condición de la acción el generador forzaba que se diera prevalencia al momento en que se chequea la condición de la acción y el chequeo de seguridad se hacía en el mismo evento.
En esta versión se comenzó a respetar cada evento por separado.
Esto implicó que cuando no hay coincidencia del evento del chequeo de seguridad del momento del chequeo de la condición se comienza a utilizar una variable que permita perdurar el valor entre el chequeo de seguridad y el momento de la evaluación de la condición de forma de que si el chequeo de la seguridad inhabilite la muestra de la acción entonces no se tenga que llegar a evaluar la condición.
Se generó un código correctivo tipo WorkArround en Acciones InGrid cuando se evalúa la seguridad en Start.
En estos casos al cargarse la pantalla por primera vez todo funciona correctamente.
Pero si esa primera vez no hay registros a desplegar, GeneXus no mantiene recuerdo de la indicación de visibilidad de esas acciones definidas en la grilla.
Por este motivo si la grilla inicia vacía y no hay restricción de visibilidad de una acción InGrid indicada en el evento "Start", luego de realizar cambios en los filtros que generarán la visualización de registros en una segunda instancia, esa acción pasará a quedar invisible en forma incorrecta. GeneXus no retiene el valor declarado de Visibilidad en el Evento Start y en la segunda instancia de búsqueda pasa a "False".
Por este motivo el Work Arround es que el control de visibilidad por seguridad se haga en el Evento Refresh.