SharePoint 2010: ¿Es una plataforma transaccional?

Un tema de debate continuo cuando se habla de diseñar e implementar soluciones sobre SharePoint es el relativo a la transaccionalidad en la manipulación de los datos que es una necesidad común en cualquier sistema transaccional…y es aquí dónde encontramos la clave en lo que a SharePoint se refiere ya que no es un sistema transaccional y presenta la particularidad de que toda manipulación de información se realiza a través del modelo de objetos. De hecho, y como tantas veces se habrá dicho, aunque SharePoint se apoye en SQL Server, no se trata de un sistema de gestión de base  de datos (DBMS). Implica esto que no podarnos conseguir este componente de transaccionalidad que se pueda necesitas…pues lógicamente no, lo que implica es que lo tendremos que implementar nosotros mismos a través de un sistema de compensación personalizado o algo por el estilo:

  • Por ejemplo, se podría usar Windows Workfow Foundaton (WF) y la actividad CompensatableSequence para ello.
  • En cualquier caso, vamos a tener que hacer un seguimiento de como la información cambia en las bases de datos de contenidos para poder revertirla al estado original en el caso de que ocurra un error. Por ejemplo, si estamos actualizando elementos de una lista mediante SPListItem y el método Update() tendremos que hacer ese seguimiento y registrar la información para permitir una hipotética vuelta a atrás en caso de error.
  • Lo mismo sucede si estamos actualizando información en SharePoint y en sistemas externos. Si el proceso de actualización en el sistema externo falla, no tenemos por defecto la posibilidad de volver a restaurar la información original en SharePoint salvo que implementemos la funcionalidad nosotros mismos.

En resumen, si la transaccionalidad es un requisito vital para la solución que queramos diseñar e implementar sobre SharePoint nos deberíamos replantear si SharePoint es la plataforma adecuada o no.

SharePoint2010_thumb