Beta 2: 20/11/2015

Nuevas Funcionalidades

  • Soporte de CustomRender como TreeView de la GXUI. Este nuevó valor de la propiedad CustomRender permite generar el control gxui.TreeView asociado a la grilla. Se generará en forma automática la variable gxuiTreeviewNodes (que esta definida en base al SDT gxuiTreeviewNode y como Collection) y será la que debe cargarse en el Code Refresh para la carga de la estructura arbórea.

  • Por el momento se deshabilita en forma automática las propiedades "Use Paging Buttons", "Show Paging Status" ,"Allow Page Rows Change", "Allow Page Jump" y "Allow Selection" del nodo principal y la propiedad "Paging" se pasa a "<unlimited>".

  • Se integraron las automatizaciones de algunas funcionalidades relacionadas como ser el soporte del "Code" "OnlineActivate" para este control y el soporte de Aciones type Grid para que realice el control automático de registro seleccionado en el TreeView y dar error en caso de no haber seleccionado un nodo del mismo.

  • Separación del módulo Basic en dos: System por un lado y DynamicCallReferences por el otro. Queda a nivel de la carpeta Basic el módulo de System ya que el módulo de Menus necesita de su dependencia. El módulo DynamicCallReferences pasó a la carpeta Modules.

  • Cambios respectos a estos nuevos módulos:

    • System

      • Se cambió las primeras líneas del código generado para el procedimiento SaveSystemModules para pasar a utilizar un procedimiento para la eliminación de registros "DelSystemModules". Este procedimiento realiza la eliminación vía BusinessComponent de la transacción TSystemModules para contemplar casos en que no se puedan borrar registros por referencias de integridad existentes.

    • DynamicCallReferences

      • Se pasó a manejar DataProviders para la carga de los registros de la tabla.

      • El WorkWith de la Transacción TDynamicCallReferences pasó a solo poder generar registros a través de un nuevo botón "Update References" y no es posible insertar, modificar o eliminar a través de la transacción.

  • Carga de Menus a partir de DataProviders. A partir de esta versión al módulo de Menus se le incorporó la carga automática de menús a partir de DataProviders. Se basa en la experiencia del uso de DataProviders del módulo SystemParameters donde cada módulo contendrá su DataProvider correspondiente para definir los menus relacionados con el mismo.

  • El módulo de Menús por defecto ya tiene la invocación a todos los DataProviders de todos los módulos pero inicialmente esos DataProviders están vacíos. En la medida de que se van importando los módulos se irán sobreescribiendo los respectivos DataProviders con la estructura por defecto de los menus.

  • Algunos módulos disponen de una sola opción de Menú por lo que se adicionó la posibilidad de indicar sobre qué menú padre se previere ubicar la opción de menú. Esto permite juntar varios módulos en una sola opción de menú principal. Existen muchos módulos de PXTools que están siendo ubicados bajo un menú "Basic".

  • La aparición de este nuevo DataProvider en el módulo Menus implicó que en casi todos los módulos transformó la forma de generación de los xpz ya que este DataProvider pasa a quedar definida en la Folder Personalized de cada módulo lo que genera que a partir de esta versión casi todos los módulos generan tres xpz:

    • APIs: Programas GeneXus relacionados con el módulo que no deberían ser modificados por el Cliente. Para ser utilizado en actualizaciones de versiones donde si el cliente no tocó estos fuentes no ha problema de perder funcionalidades.

    • Personalized: Programas GeneXus relacionados con el módulo factible de ser modificados por el Cliente. Para ser utilizado en actualizaciones de versiones para comparar los cambios realizados en estos objetos con el objetivo de que el Cliente realice los mismos cambios pero sin perder la customización que fue realziada por el Cliente.

    • APIs-Personalized: Programas GeneXus completos del módulo. Para ser utilizado cuando se instala por primera vez un módulo en una KB.

Esto generó en un crecimiento muy importante de los archivos a nivel del directorio "XPZs\\Modules" y el directorio "XPZs\\Basic" del directorio de instalación.

Con el objetivo de organizar mejor los xpzs se decidió a que cada módulo estará representado por un directorio en donde se ubicarán en cada uno los xpz corespondientes.

  • Nuevo Panel del Login. A los efectos de mantener el login a través de patrones es que se pasó el mismo a ser creado a partir del patrón PXParameterRequest.

  • También cambió de nombre. Antes se llamaba HLogin y por ser generado por un PXParameterRequest por defecto el nombre pasó a ser WbLogin o HWbLogin dependiendo si está habilitado compatibilidad con GeneXus 9 o no.

  • Este nuevo login también incorpora la posibilidad de interactuar con una nueva entidad llamada "Projects" que comenzará a ser necesarioa para algunos módulos nuevos. Desde el login y luego de ingresar las credenciales y que el sistema las haya validado podrá aparecer una combo de "Projects" a elejir. Este valor de "Project" quedará almacenado en el "Context" junto con los datos del usuario.

  • Por otro lado se recuperó la funcionalidad de poder retomar la última pantalla invocada luego de perder la sesión. Esta funcionalidad está relacionada a la nueva funcionalidad que llamamos "QueryString".

  • Esta funcionalidad por defecto está deshabilitada pero puede ser habilitada desde el LoadPXToolsParameters con la propiedad "ReturnToLastPageOpened".

  • Nueva funcionalidad QueryString a nivel de las APIs de PXTools. Esta funcionalidad tiene como el objetivo el poder hacer un redirector a partir de parámetros al estilo "URL Variables". Esto permite interactuar sistemas externos que puedan interactuar invocando con este estilo de URL.

  • El panel principal que soporta esta funcionalidad es el QueryStringToLink:

  • A modo de ejemplo se puede invocar esta URL: http://server:8080/basedir/querystringtolink?Host=server&Port=8080&Path=basedir&ProgramName=test&Parm1=1&Parm2=38 y ese link terminará realizando la invocación a la siguiente URL: http://server:8080/basedir/test?1,38

  • Se puede omitir las variables Host, Port y Path y el sistema lo considerará como un link relativo.

  • La extensión del ProgramName se agregará en forma automática según la plataforma (Java o C#) que se esté utilizando.

  • Esta funcionalidad está funcionando para los dos estilos de armado de entornos de navegación (también llamado "DataAreaBehaviour" en PXTools).

  • Soporte de DynamicCombos basadas en DataProviders.

  • Nuevo módulo: Projects. Este nuevo módulo está creado a consecuencia de la necesidad de representar esta entidad en otros módulos:

    • IssueTracking: Se requiere identificar esta entidad para poder asociar un incidete a un proyecto.

    • SecurityProjects: Se podrá definir a nievel del módulo de Seguridad la declaración de Roles asociados a Proyectos.

    • APIs: El login ahora está tomando si el sistema tiene proyectos definidos para solicitar, luego del ingreso de usuario y password, se habilitará la selección del proyecto. Una vez seleccionado el proyecto, éste quedará almancenado en el Contexto identificando el proyecto activo.

  • Nuevo módulo: TaskManager.

  • Soporte de Parámetros del Módulo SystemParameters basado en Valores representados en una Combo. Sería la representación de Enumerados a nivel de este módulo. También se agregó un nuevo DataProvider RetSystemParametersGeneral que es propio del módulo y que define dos nuevos parámetros:

    • Operating System: Define el tipo de sistema operativo en donde está alojada la aplicación.

    • CPU Type: Define el tipo de procesador (32 bits o 64 bits).

Estos nuevos parámetros se utilizarán en un nuevo módulo HTMLToPDF que permite realizar la conversión de HTML a PDF. La interacción con este módulo se hace a través de un software de tercero que según el sistema operativo y el tipo de cpu varían las funcionalidades. Considerando que esta información podría servir para otras interacciones es que estos parámetros quedaron a nivel General y no específicamente del nuevo módulo.

  • Nuevo Módulo: HTMLToPDF.

  • Mejoras en el módulo de CountriesStatesCities. Se mejoró el trabajar con de las tres entidades del módulo.

  • Se adicionó soporte del nodo Link en cualquier atributo, variable o label en una sección tabular del patrón PXWorkWith.

  • Soporte en Acciones In Grid de valores de ConditionalImage para Disabled Image. Esto permite customizar acciones de imagen que se desplieguen en la propia grilla con posibles valores distintos de imágenes tanto cuando la acción está habilitada como cuando la acción está deshabilitada.

Errores Corregidos

  • En la Beta 1 se modificó la funcionalidad del control scaMessage para utilizar las librerías de JQueryUI que comenzamos a dejarla bajo el directorio Shared. Esta librería de JQueryUI no se cargaba en forma automática por la instalación ya que como refiere a estética visual hay una versión de la JQueryUI debajo de cada uno de los Designs prestablecidos.

  • Si el usuario se olvida de realizar esta copia de directorios GeneXus no incluye las ferencias a estas librerías y por lo tanto la muestra de los mensajes con el scaMessage se ven incorrectamente.

  • Lo que se realizó es dejar la librería con estilo Gris por defecto y la instalación copia en forma automática esa librería.

  • Luego de que el usuario decida el diseño que se utilizará en la KB deberá copiar a la carpeta del Modelo y sobreescribir para que la estética visual coincida con el diseño seleccionado.

  • La funcionalidad EnterOnSwitchTab no estaba funcionando.

  • Cuando se tiene una acción multi-row con "SDT as First Parameter" el SDT generado no incluía los elementos de la grilla que estaban con visible en false.

  • Cuando se dejaba un Component en un PXComposer sin referencia a GXObject se generaba un código "Do Case" y en la siguiente línea "End Case" lo que generaba error en el salvado del objeto. Este error se incorporó cuando se comenzó a soportar el ConditionalCall en Componentes y Embeddeds. El error quedó corregido.