Noticias

SSP: Smart Static Panels (continuación)

Como habiamos visto en la edición anterior, la generación de SSP se logra a partir de la ejecución del web panel dinámico. Esta ejecución puede hacerse desde la línea de comandos o desde otro objeto GeneXus no web. Analizaremos ambos casos.

Generación de SSP a partir de la línea de comandos
Las SSP se generan como producto de la ejecución de un web panel desde la línea de comandos o desde otro objeto
GeneXus no Web. Al ejecutar un web panel en estas condiciones:

  • Si está marcado como estático, se genera la SSP (html) con el contenido del web panel para la instancia de datos.
  • Independientemente de la property Generation Mode por cada link a un web panel GeneXus, si el web panel GeneXus esta marcado como estático, hace un call al web panel (de modo que este también generará un .html, etc), y el link lo deja apuntando al archivo .html.
  • Por cada SSP() que se genera, se despliega un mensaje en la consola (incluso si es llamado desde un objeto GeneXus).

PARÁMETROS ADICIONALES
La llamada al web panel puede contener parámetros adicionales que cambian el funcionamiento del programa. Los parámetros soportados son:

Static Web Directory
Indica el directorio en donde se generarán las SSP. Si no se especifica se generan en el directorio corriente.

Static Web Dynamic URL
Indica la URL base para los web panels dinámicos. Si una SSP tiene un link a un web panel dinámico, se agrega esta URL antes del nombre del mismo. Además, si la SSP tiene un botón, al apretarlo se hace un ‘POST’ al web panel dinámico cuyo nombre es el valor de este parámetro y el nombre del web panel. Esto implica que se puede tener un SSP en el cual cuando se apreta un botón se llama al dinámico.
Si no se especifica esta propiedad, no se agrega ningún prefijo a los web panels dinámicos que se invoquen.

Static Web Overwrite pages
Indica si se generan las SSP para los que ya existe un archivo .html con ese nombre. Si no se especifica esta propiedad siempre se sobrescribe (se asume ‘true’ ). Este parámetro es útil en muchos casos en que una nueva generación de SSP no significa que toda la información anterior deje de ser válida. Un ejemplo de esto es una lista con información clasificada según la fechas (calendario de cursos, calendario de partidos jugados, etc) donde en la página se tiene la información –que después de generada no cambiará – y un link a la fecha anterior y a la fecha siguiente. Si la generación de las SSP se hace en forma diaria, el parámetro deberá tener el valor overwrite en false para que no regenere todas las páginas sino solamente última (la del día). Además habrá que borrar la de la fecha inmediata anterior para que se genere nuevamente con el link a la fecha siguiente corregido (ya que la última página no tiene habilitado el link a la siguiente).

Static Web Links
Indica que se recorran todos los links del web panel principal. Si no se especifica esta propiedad siempre se recorren (se asume ‘true’)

Static Web Copy directory
Indica el directorio al que se copian las SSP una vez terminada la generación. Se copian en orden inverso al que fueron generadas, de modo que primero se pongan los ‘hijos’ y luego los ‘padres’. Si no se especifica esta propiedad, no se copian a ningún lugar

Generación de SSP a partir de otro objeto GeneXus
Es posible llamar a un web panel desde cualquier objeto
GeneXus. Al llamar al web panel se generan las páginas SSP. Esto permite, por ejemplo, poner el mecanismo de generación de los SSP dentro de un workflow. Se provee una forma de configurar los parámetros adicionales desde las aplicaciones GeneXus mediante dos funciones.

  • Función setenvproperty: Esta función permite cambiar el valor de una de estas propiedades, por ejemplo: 
                    &aux = setenvproperty('genexus.staticweb.dir', &Dir)
  • Función copystaticfiles: Esta función permite disparar la copia de las SSP generadas a otro directorio, por ejemplo:
                &aux = copystaticfiles()

Las ‘system properties’ que se definen en la línea de comandos, también se pueden poner en la línea de comandos de la aplicación Java.

Consideraciones
En la generación de los smart static panels, los parámetros juegan un papel muy importante, ya que el nombre del archivo creado depende de los valores de los mismos, por lo que para que funcione correctamente la llamada entre web panels dinámicos y smart static panels es necesario que se pasen y se reciban los parámetros con el mismo tipo de datos.
Por ejemplo, tener un programa A que llame a uno B pasando un parámetro en un Numérico de 10 (N(10)) y el B lo reciba en un N(10,2) dará problemas ya que se generará con decimales (como el llamado)pero se invocará sin decimales (como el llamador).

Ejecución desde el browser
Cuando el SSP se invoca desde el browser, se comporta como un web panel normal, resolviendo automáticamente para cada link si el web panel llamado es estático o dinámico.