Como empezar el año dramáticamente: SharePoint y el WorkFlow Foundation

Pues bien, nuevo año, nuevos desafíos, como diría mi jefe… Algo que ya había comentado en alguna oportunidad el año pasado fue sobre (“Porque hacerlo fácil si se puede hacer difícil… SharePoint Tipos de Contenido, Flujos de Trabajo y cosas de esas”) la Fundación de Flujos de Trabajo funcionando con SharePoint. Allí, entre otras cosas, les contaba sobre algunos problemas cuando se desarrollan Flujos de Trabajo utilizando Visual Studio 2005 y SharePoint como Host.

El WorkFlow Foundation es una de esas maravillas que a veces nos sorprenden de Microsoft: una compañía que mete las patas de vez en cuando (mas “en cuando” que “de vez”), y que no para de sorprendernos con cosas brillantes otras veces. La Fundación es simplemente brillante. Un FrameWork unificado para flujos de trabajo, un sueño hecho realidad. Recuerdo muy bien cuando vi la primera demostración, ya hace casi cuatro años, que no podía para de pensar en el asunto por días y días… y que apenas le pude poner las manos encima al primer Beta, que no podía parar de intentar hacer cosas con ella. Pero bueno, vamos haciéndonos viejos, más sabios y cautelosos, y la realidad de vez en cuando nos pega golpes feos a mansalva…

Primero que todo, ayer Rolf Eleveld (http://rolfeleveld.spaces.live.com/default.aspx) uno de esos buenos amigos que andan por ahí regados en el mundo ancho y ajeno de la programación, me llamo la atención sobre un posting de Eilene Hao, uno de los innumerables Program Manager de Microsoft, encargada del SharePoint WorkFlow (http://blogs.msdn.com/sharepoint/archive/2008/01/04/issues-with-the-delay-activity-in-sharepoint-workflows-we-need-your-help.aspx), en donde, finalmente, acepta Microsoft que la actividad “Delay” simplemente no funciona cuando se usa dentro de un Flujo de Trabajo de SharePoint. Finalmente… después de que Microsoft lo ha negado por arriba y por abajo… y, lo peor de todo es que nos echa la culpa a nosotros porque las cosas no salen como deberían: primero nos cuenta que tienen un fix para el problema (“..We currently have a fix that makes things better for the issues that have been reproduced internally..”), luego nos dice que el fix no nos lo quieren soltar para que lo probemos (“..This fix is not yet available through our Customer Support Services channel, so please don’t call them to ask for it just yet..”) y luego nos echa la culpa porque no lo hemos probado (“..we don’t have enough information on customer reported issues to know if the fix will address all of them..”)… brillantemente Microsofiano, Kafka estaría orgulloso de trabajar allí…

Luego, por eso de recordar buenos viejos tiempos y para no aburrirme me ha dado por ver cómo funciona Visual Studio 2008 y el Service Pack 1 de SharePoint con el asunto de los Flujos. Si se instalan las herramientas para Office con Visual Studio 2008, se instalan automáticamente dos plantillas para crear Flujos (una para Secuenciales y otra para Estado de Maquina). Lo simpático es que las plantillas también pueden configurar la versión local de SharePoint para usar el nuevo Flujo:

  

Idealmente… el campo “local site” esta (casi) bien: la plantilla encuentra el nombre del servidor sin problemas, pero la Librería “Docs” no existe… el trabajo ha sido casi bien hecho… por supuesto, al intentar usar la librería por defecto sale un mensaje de error (porque no usar la Librería “Documentos Compartidos” que siempre está instalada?)… en fin, luego de corregir el asunto, la plantilla muestra una pantalla con las Librerías presentes… (entonces para que era el “Docs”?). Lo malo de la nueva pantalla es que la lista de Librerías no está filtrada para NO mostrar las Librerías invisibles (“Hidden”), así que podríamos asociar el Flujo a la “List template Gallery”, o a la “Web part Gallery”, etc.

Pero bueno, escogemos una de las Librerías correctas, el código se genera, produce inclusive el código para la Característica, así que sin agregar nada nuevo intentamos compilar… error… era casi de esperarse… la plantilla incluye una referencia al “Microsoft.Office.Workflow.Tasks” dll, que (parece que Microsoft no se ha dado cuenta) es un compilado de MOSS, no de WSS… así que la plantilla está hecha para MOSS, y los que trabajan con WSS que se j… perdón, se me escapó…

Bueno, no hay problema, el año está empezando, y todos estamos de buen genio (o no), así que quitamos la referencia equivocada, arreglamos el código y lo ponemos bonito para que compile bien, y, en efecto, podemos generar el compilado. Luego, para aprovechar la Característica creada automáticamente, vamos a las propiedades del proyecto -> “Deploy” y… redoble de tambor… error… casi que lo estábamos esperando… el mensaje de error es claro: “Could not load file or assembly ‘Microsoft.Office.Workflow.Feature, Version blablabla or one of its dependencies”… sh… perdón, se me volvió a escapar… por una u otra razón incomprensible, al genio que creó la plantilla no le contaron que existe WSS, y le pareció muy bonito utilizar un “ReceiverAssembly” y “ReceiverClass” de MOSS en la declaración de la Feature, totalmente innecesaria si lo único que queremos es instalar el (mal)bendito Flujo en una Librería…

Bueno, empezamos bien el año, con optimismo y esperanzas. Aunque todavía me sigo preguntando porque el creador de una cosa tan brillante ha hecho que la plantilla compile para el FrameWork 3.5… si no me equivoco, SharePoint, aun después del SP 1 sigue funcionando con el 3.0… con seguridad una pequeña equivocación…

PS: Uno de mis promesas para el nuevo año ha sido ser más cariñoso y comprensivo, y menos duro con lo que escribo sobre Microsoft. Como han visto, yo siempre cumplo lo que prometo.


Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

4 comentarios en “Como empezar el año dramáticamente: SharePoint y el WorkFlow Foundation”

  1. Hola Gustavo, como siempre das en el clavo…lo bueno es que a ti te ha pasado esto sólo, pero a mi me paso en el aula del CIIN ante 12 personas…y eso que yo estaba confiado porque resulta que había conseguido construir un workflow con VS 2008 Beta2 para SharePoint y me funcionó perfectamente en una máquina con WSS 3.0 (hice un post y todo de lo orgulloso que estaba :PPP):
    http://geeks.ms/blogs/ciin/archive/2007/11/19/visual-studio-2008-beta2-creando-workflows-para-wss-3-0-amp-moss.aspx

    …entonces, ingenuo de mi, no me lo miré para el seminario y me llevé la sorpresita que comentas…que marrón…pero bueno, el caso es que la semana pasada me bajé la MV de VS 2008 cuyo enlace de descarga publicó Jorge (http://geeks.ms/blogs/ciin/archive/2007/11/19/visual-studio-2008-beta2-creando-workflows-para-wss-3-0-amp-moss.aspx) y como tiene MOSS, todo va como la seda…en fin, habrá que seguir luchando…eso sí, no entiendo este paso atrás de la Beta2 a la RTM…que me lo expliquen!

    JC’s

  2. Hola Juan Carlos. Gracias por el comentario. En realidad es increíble que Microsoft, con la cantidad de controles de calidad que tiene, deje pasar software con errores en cosas tan básicas como no probar si algo funciona en WSS. El asunto no es que no lo podamos arreglar (hay que modificar un par de renglones de código), el asunto es que SharePoint es en este momento el “Producto Bomba” de Microsoft, al que tendrían que cuidar como a la niña de sus ojos, y no hacer metidas de patas de este tipo… y, de paso, integrarlo bien con Visual Studio, y hacer un buen SDK, y darnos las extensiones para VS de nuevo, y… en fin, seguimos en la lucha, como dices…
    Un saludo, Gustavo

  3. Muy interesante tu entrada Gustavo.
    Agradezco mucho que cuentes tus experiencias para que cuando otros tropecemos con ellas tengamos al menos el consuelo de saber que no somos tan torpes como a veces llegamos a pensar y sí pensar en que el error puede estar motivado por el propio producto.

    Y ya puestos, que manía con pasar algunas plantillas a Framework 3.5 cuando en realidad con el Framework 3.0 funciona (además usa Microsoft .NET Framework 2.0 por debajo). Pero si son plantillas de Visual Studio 2008, las habrán actualizado a Framework 3.5 generando algún dolor de cabeza que otro… esto es como volver al DLL Hell de nuevo… :-/

    Bueno, es lo que hay supongo.

    Abrazotes y Feliz 2008 para tí y los tuyos, para Juan Carlos y el CIIN y para todo el mundo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *