24 de octubre de 2007

Modificar Plantillas de alerta en Moss 2007

Una alerta es una suscripción a un elemento del portal, ya sea un elemento, una lista, una librería o incluso a los resultados de una búsqueda. De esta forma el sistema, al producirse un evento sobre el objeto en cuestión, envía un correo electrónico a todos los usuarios que están suscritos al elemento informando sobre lo sucedido.

Esto no es nuevo en SharePoint, ya lo teníamos en SPS 2003 y aquellos que trabajasen con este producto estarán de acuerdo conmigo en que es una de las cosas que más se utilizan, tal vez por que es una característica bastante curiosa. No creo que pueda olvidar frases como: 'Ahh, y la pagina esta me manda un correo cuando me cambien el documento??' y por supuesto ... como no ... la de 'Esto se ha vuelto loco! por que me está enviando cien correos al día! como puede ser!!!' y al final el usuario está suscrito a todas las listas de un site por que en su momento, el primer día, entró, vió que 'esa página le mandaba un correo' y como por aquel entonces apenas tenía correo ... mira, así le daba uso. Por supuesto no podía haber seleccionado en 'Resumen Semanal' o en 'Resumen Diário' ... selecciona en 'Enviar Inmediatamente'. ( Es crítico conocer el estado de la quiniela )

Si se dan cuenta en los correos de notificación, la verdad es que son bastante feos.

Esto es modificable, y podemos personalizarlo de cara a que todos los mensajes que se envíen en nuestra empresa cumpla con la identidad corporativa. ( Es decir, que tenga los mismos colores, funtes, imágenes, etc que tiene que tener cualquier comunicado que emita la empresa ).

La forma de configurarlo es muy sencilla, solo tenemos que modificar un fichero que se llama 'AlertTemplates.xml'. En este fichero podremos configurar los Filtros, Propiedades y el diseño para cada tipo de lista de SharePoint.
Este fichero está en 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensios\12\AlertTemplates.xml'

NOTA: IMPORTANTE - Siempre hagan respaldo de estos archivos al momento de modificarlos.

Vamos a empezar definiendo los filtros.

Los filtros nos van a permitir crear nuevos desencadenantes para eventos como por ejemplo, cuando la localización de un evento cambia o la fecha en la que se va a producir, etc. Nosotros podemos modificar estos desencadenantes e incluso crear nuevos basándonos en consultas CALM ( Collaborative Application Markup Language ).
Les paso una relación de los operadores CALM de uso comun

Eq equals
Neq not equals
Lt less than (numbers only)
Gt greater than (numbers only)
Leqr less than or equal to (numbers only)
Geq greater than or equal to (numbers only)
BeginsWith begins with (strings only)
Contains contains (strings only)

Con estos operadores podríamos crear cualquier filtro que deseemos teniendo en cuenta el valor de los campos de nuestro elemento de la lista. Por ejemplo, esta sería la consulta necesaria para activar un filtro que dispare n desencadenante cuando se cambie la fecha de un evento.

$Resources:Alerts_4_filter; $Resources:Alerts_4_filter_shortname;

Por otro lado tenemos una sección de Propiedades en la que nos va a ser posible agregar o excluir campos de la lista que queremos que sean visibles en el correod e notificación.

ID;Author;TaskGroup;
ModifiedBy;ContentType;IsCurrent


Y por último tenemos los formatos.

En la sección del formato podemos definir el aspecto visual al correo electrónico que se envía a los usuarios registrados, para ello podemos definirnos incluso clases ( CSS ) embebidos de forma que podemos modelar el aspecto que deseemos.
Vamos a ver un poco como deberíamos trabajar cuando tenemos que hacer este tipo de tareas. Daros cuenta que dado que estamos modificando un fichero del sistema, por lo que tenemos que extremar el cuidado.
Ir a la carpeta 'c:\program files\common files\microsoft shared\web server extensions\12\xml'
Copiar 'AlertTemplates.xml' con el nombre 'Custom_AlertTemplates.xml'
Editamos el fichero.
Moificamos el estilo.
Dentro de la sección Format Element tenemos un estilo llamado .formbody y otro que se llama .headercontent. Vamos a hacer un pequeño experimiento cambiando el color.
Cada tipo de lista tiene su propio template definido dentro del fichero. El primero que aparece en el documento es el de la lista Genérica. Las otras listas heredan directamente de la genérica.
Bien, una vez hecho el cambio solo nos queda publicar los contenidos a la base de datos de contenido de la aplicación Web. Para ello utilizaremos la aplicación STSADM.
En el servidor SharePoint abrimos una consola de comandos.
Navegamos a la carpeta 'c:\program files\common files\microsoft shared\web server extensions\12\bin'

Ejecutamos la siguiente orden:
stsadm updatealerttemplates /URL <http://servidor/> /f /LCID
Bien, una vez registrado solo nos quedaría hacer una prueba a ver si lo hemos hecho bien. Para ello nos vamos a una librería de documentos y nos suscribimos a los eventos, por ejemplo cuando se cambie algo en el fichero.
Solo quedaría hacer un cambio en el fichero y esperar a que llegue nuestro correo con nuestro nuevo diseño.

5 comentarios:

jarauta dijo...

Hola. He seguido el post y funciona correctamente. Tengo otro problema. Quiero que un mismo tipo de lista lleguen mails con dos formatos en dos sitios diferentes. He probado creando dos plantillas alerttemplates y custom_alerttemplates pero en todos los sitios recibo el formato de la última plantilla que aplico con stsadm. ¿Alguna idea?

Hector Insua dijo...

La forma mas facil es con SharePoint Designer, eso si o si lo haces con Designer sin problemas.
Salu2.

Helen dijo...

Hola Hector,
cómo puedo agregar campos especificos en las alertas? Es decir, por ejemplo en la alerta de una biblioteca de documentos quiero que me muestre el tamaño del archivo del documento. Dónde y Cómo le especifico los campos que quiero que muetsre la alerta?

gracias!

Unknown dijo...

Hola, tengo un problema con las alertas, cuando un usuario selecciona la opción de enviarse alertas, se muestra el siguiente error:
Error, los siguientes usuarios no tienen las direcciones de correo elestrónico especificadas: dommo\juana. Se has creado alertas correctamente, pero estos usuarios no recibirán notificaciones por correo electrónico hasta que no se proporcionen direcciones válidas.

Graciaspor adelantado por la ayuda, cualquier idea de donde puedo areglar este problema será bienvnida.

Freddy Sanjines dijo...

Ola, una consulta, estoy usando Share Point Portal Server 2007 pero integrado solo a las cuentas locales de un Windows Server 2003. El caso es que no quiere notificar via correo electrónico pues las cuentas no tienen definido un correo electrónico, no puedo asignarles un email pues son cuentas locales de Windows (no de Active Directory). Que puedo hacer si me pueden ayudar...