miércoles, 12 de febrero de 2014

SP2013: Cómo forzar las alertas de búsqueda de forma inmediata

Si sois administradores de SharePoint, es posible que alguna vez os hayáis encontrado con la necesidad de forzar una ejecución inmediata de alguna alerta de búsqueda.

Sin embargo SharePoint no facilita ninguna interface (ni siquiera PowerShell) para forzar esta ejecución. Así que la única opción que tenemos es esperar un día natural para ver si nos llega ese deseado e-mail de forma correcta. ¡¡Pero nosotros no podemos esperar tanto!!



Así que... ¿Cómo puedo forzar la ejecución automática de estas alertas? Lamentablemente tan solo podremos activarlas haciendo algo de "cirujía" directamente en la Base de Datos de Contenidos de nuestro Site Collection.

Como pre-requisitos, deberemos tener activadas las alertas de búsqueda, así como bien configurado el correo electrónico saliente (outgoing e-mail settings), tener suscripción a alguna alerta de búsqueda y haber realizado una indexación de todo el contenido recientemente.

Entonces "solo" tendremos que entrar en el servidor de SQL Server, lanzar el Management Studio, y una vez dentro, abrir nuestra BD de contenidos, buscar la tabla "Sched.Subscriptions" y hacer un "editar las 200 primeras filas", o en su defecto (mucho más polite) construir la sentencia SQL para que realice los cambios requeridos. En mi caso tiré por la edición directa, al ser un entorno de test con poco tráfico y pocas alertas creadas.

Una vez estemos consultando la tabla, lo primero será identificar nuestra alerta (la que queremos activar de forma inmediata), lo podemos hacer fácilmente buscando primero por la columna "AlertTitle" combinada con "UserEmail", por ejemplo. Una vez la tengamos localizada, hay que modificar 2 campos:

  • NotifyTime - Es el momento en el que se creó la alerta sumándole un día. Lo modificaremos para que se ejecute en el dia de hoy (fecha actual) y algunos minutos por encima de la hora actual (para que se active al poco de haberla editado). 
  • NotifyTimeUTC - tendrá un valor similar a NotifyTime, pero con la hora transformada a UTC + 0. En España estamos a UTC + 1, así que tendremos que restar una hora al valor introducido en NotifyTime)


Una vez realizados estos cambios, tendremos que esperar a la nueva hora que hemos editado para la alerta, así como dejar unos minutos de margen (pueden ser hasta 15) para que se ejecute el job que las revisa y lanza de forma periódica: Immediate alerts.

Pasado este margen de tiempo, el usuario suscrito a dicha alerta, recibirá el correspondiente mail, sin haber tenido la necesidad de esperar un día entero para ello. Podemos realizar la prueba tantas veces como queramos, siempre teniendo en cuenta que una vez se ejecuta la alerta, necesitaremos añadir nuevo contenido o modificar el existente (según el tipo de alerta) para que esta se vuelva a disparar (si no hay adiciones/cambios no hay ítems de los que informar y no se envía ningún mail).

Eso es todo por hoy, ¡Hasta pronto!

No hay comentarios: