Mostrando entradas con la etiqueta Lotus Notes. Mostrar todas las entradas
Mostrando entradas con la etiqueta Lotus Notes. Mostrar todas las entradas

viernes, 22 de febrero de 2013

Problema cache xpages en Mac y Linux

 Una aplicación de xpages funciona muy bien en Internet explorer aunque es raro pero bueno funciona, firefox, chrome en equipos con windows. Pero he observado que desde los navegadores de un Mac o Linux no refresca la xpages a no ser que las forcemos.

Y he utilizado la etiqueta de No chache en el head de la página, he utilizado la propiedad de xsp.application.forcefullrefresh=true, pero nada de nada.

Al final he hecho lo siguiente y funciona bien.

Pasos: 

1.- Primero insertamos en el evento de la xpages beforePageLoad el siguiente código 

// Importamos paquete de java que vamos a utilizar 
importPackage( org.restoy.cache ); 

//Capturamos la respuesta de la xpages 
var ec = facesContext.getExternalContext(); 
var response = ec.getResponse(); 
var writer = response.getWriter(); 

// Iniciamos headers y ponemos el tiempo que caducará 
var now = new Date(); 
response.setDateHeader("Expires", 
now.getTime() + (1000)); 
response.setHeader("Cache-Control", "public"); 


// Iniciamos response cache header 
var reqParam = facesContext.getRequestParameters(); 
var resCH = new SHResponseCacheHeader(); 
reqParam.setResponseCacheHeader( resCH ); 

//Imprimimos un test 
writer.write( "Ahora esta página no utiliza la cache del navegador: " ); 
writer.write( now.getTime().toString() ); 


2.- Ahora creamos una clase de Java con el paquete org.restoy.cache 

// Con esto utilizamos el ResponseCacheHeader para inicializar el "expire" y evitar que la xpage ponga -1 y por tanto se inicializará con la fecha que nosotros le digamos. 
package org.restoy.cache; 

import javax.servlet.http.HttpServletResponse; 
import com.ibm.xsp.context.RequestParameters.ResponseCacheHeader; 

public class SHResponseCacheHeader implements ResponseCacheHeader { 

public SHResponseCacheHeader(){} 

public boolean initResponseCacheHeader(HttpServletResponse arg0){ 
return true; 



3.- Ya estaría todo terminado, ahora si lo comprobamos con navegadores de mac o en linux, y vemos el header podemos comprobar que ya no utiliza la cache del navegador, puesto que expira a con la misma fecha que cuando se carga y el navegador entenderá que ya esta caducada y la solicitará de nuevo al servidor. 

Bueno todo esto es lo que he tenido que hacer para que funcione correctamente, me hubiera gustado encontrar una solución mas sencilla, pero por ahora creo que esta es la única solución. Y si estáis diseñando aplicaciones de mantenimiento con xpages como lo hago yo últimamente, tener en cuenta que desde cualquier navegador en mac o linux vais a tener un problema si no controláis la cache. ya que documentos que por ejemplo hayáis eliminado, se seguirán viendo en las vistas, teniendo una sensación de muy mala aplicación.

Texto enriquecido en vistas



¿Cómo podemos insertar un campo de texto enriquecido en una vista Lotus Notes?

Los campos de texto enriquecido de Lotus Notes son un poco especiales comparados con el resto de campos, éstos pueden almacenar cualquier tipo de objeto y texto con formato.

Si alguna vez necesitamos visualizar el contenido del campo de texto enriquecido en una columna de una vista, nos daremos cuenta de que no se visualiza nada.

La solución a este problema pasa por utilizar la formula @Abstract() que mediante algunos parámetros podemos extraer sólo el texto de dicho campo.

Si nos situamos en una columna de una vista de lotus, a continuación insertamos el siguiente código:

@Abstract([TextOnly]; 500; ""; campotextoenriquecido)

De esta forma conseguimos sacar hasta 500 caracteres del campo de texto enriquecido y lo más importante es que se visualiza en la columna de la vista.

Podemos completar la formula comprobando si el campo esta vacío:

@If (campotextoenriquecido != ""); (@Abstract([TextOnly]; 500; ""; campotextoenriquecido))

viernes, 25 de marzo de 2011

Iconos vistas Lotus Notes


Siempre que necesito poner algún icono en las vistas nunca me acuerdo de donde los tengo así que desde aquí siempre estará disponible. Están ordenados por su código correspondiente.