Tutorial: Importar un flujo de trabajo reutilizable de SharePoint Designer en Visual Studio

En este tutorial se muestra cómo importar un flujo de trabajo reutilizable creado en SharePoint Designer 2010 en un proyecto de flujo de trabajo de SharePoint de Visual Studio.

Los flujos de trabajo creados en SharePoint Designer, o flujos de trabajo declarativos, están compuestos de instrucciones XML en lugar de código. SharePoint Designer 2010 presenta los flujos de trabajo reutilizables, que son flujos de trabajo portátiles y declarativos que pueden utilizarse por listas diferentes en sitios de SharePoint.

Los flujos de trabajo creados en Visual Studio 2010, como los flujos de trabajo secuenciales y de máquinas de estados, se denominan flujos de trabajo de código. Los flujos de trabajo de código están compuestos de archivos XML y módulos de código en los que los usuarios pueden personalizar el comportamiento del flujo de trabajo.

Visual Studio 2010 permite importar flujos de trabajo reutilizables creados en SharePoint Designer 2010 y convertirlos para codificar los flujos de trabajo para el uso en los sitios de SharePoint.

En este tutorial se muestran las siguientes tareas:

  • Crear un flujo de trabajo simple y reutilizable en SharePoint Designer.

  • Exportar el flujo de trabajo reutilizable de SharePoint Designer a un archivo .wsp y a SharePoint.

  • Importar el archivo .wsp en Visual Studio mediante el proyecto Importar flujo de trabajo reutilizable.

  • Modificar el flujo de trabajo agregando código.

  • Utilizar el flujo de trabajo importado en un sitio de SharePoint.

Nota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

Crear subsitios de SharePoint de destino

Primero cree dos nuevos subsitios de SharePoint: uno para hospedar los flujos de trabajo reutilizables de SharePoint Designer, otro para hospedar los flujos de trabajo convertidos.

Para crear subsitios de SharePoint

  1. En SharePoint Designer 2010, haga clic en Abrir sitio en el menú Archivo.

  2. En el cuadro de diálogo Abrir sitio, vaya a un sitio de SharePoint donde desea crear el flujo de trabajo, o utilice el valor predeterminado de http://nombre sistema/ y, a continuación, haga clic en Abrir.

    Aparece la Página principal.

  3. En la sección Subsitios, haga clic en Nuevo.

  4. En el cuadro de diálogo Nuevo, seleccione Plantillas de SharePoint en el recuadro izquierdo y seleccione Sitio de grupo en el recuadro derecho.

  5. En el cuadro Especifique la ubicación del sitio web, reemplace la palabra subsitio en la dirección URL por SPD1 y, a continuación, haga clic en Aceptar.

    Esto abre el nuevo subsitio en SharePoint Designer. Cierre esta instancia de SharePoint Designer y vuelva a la primera instancia (el sitio de nivel superior).

  6. Repita los pasos 3 a 5 para crear el segundo subsitio, pero esta vez reemplace la palabra subsitio en la URL por SPD2.

Crear un flujo de trabajo reutilizable de SharePoint Designer

Dado que SharePoint no incluye todos los flujos de trabajo reutilizables que puede utilizar para este ejemplo, creará uno. En este flujo de trabajo simple, cuando un usuario escribe una nueva tarea en la lista de tareas que tiene un título concreto, la tarea se asigna a ese usuario.

Para crear un flujo de trabajo reutilizable de SharePoint Designer

  1. Haga clic en el sitio SPD1 en la sección Subsitios para modificarlo.

  2. Haga clic en Flujo de trabajo reutilizable en la cinta de opciones.

    Aparecerá el asistente para crear flujos de trabajo reutilizables.

  3. En el cuadro Nombre, escriba Flujo de trabajo de tarea SPD.

  4. En el cuadro Tipo de contenido, haga clic en Tarea y, a continuación, haga clic en Aceptar.

    El flujo de trabajo se abre en el diseñador de flujos de trabajo de SharePoint Designer.

  5. Asegúrese de que ese paso 1 está seleccionado y haga clic el botón Condición en la cinta de opciones, y, a continuación, seleccione Si el campo del elemento actual es igual que el valor de la lista de condiciones.

    De este modo, se agrega una nueva condición denominada Si el campo es igual que el valor.

  6. Haga clic en el vínculo campo en la condición Si el campo es igual que el valor.

  7. En la lista de valores, seleccione Título.

  8. Haga clic en el vínculo valor en la condición Si el campo es igual que el valor.

  9. En el cuadro, escriba Nueva tarea.

    La instrucción condicional ahora es Si el título de elemento actual es Nueva tarea.

  10. Haga clic en la línea bajo la instrucción condicional, haga clic en el botón Acción situado en la cinta de opciones y, a continuación, seleccione Establecer campo en el elemento actual de la lista de acciones.

  11. Haga clic en el vínculo campo en la acción Establecer campo en el valor y, a continuación, seleccione Asignado a.

  12. Haga clic en el vínculo valor en la acción Establecer campo en el valor, seleccione Usuario que creó el elemento de la lista de usuarios y grupos existentes, haga clic el botón Agregar y, a continuación, en Aceptar.

    La instrucción de acción ahora es Establecer Asignado a en Elemento actual:CreatedBy.

Guardar e implementar el flujo de trabajo reutilizable

Como Visual Studio solo puede importar archivos .wsp, debe guardar el flujo de trabajo reutilizable como un archivo .wsp e implementarlo en SharePoint antes de importarlo en Visual Studio.

Nota importanteImportante

Si recibe un error en tiempo de ejecución cuando lleva a cabo el procedimiento siguiente, tiene que realizar el procedimiento en un sistema con acceso al sitio de SharePoint.

Para guardar e implementar el flujo de trabajo reutilizable

  1. Haga clic en el botón Guardar en la parte superior de SharePoint Designer para guardar su progreso y, a continuación, haga clic en el botón Publicar para implementar el flujo de trabajo en el sitio de SharePoint SPD1.

  2. En el recuadro de navegación, haga clic en Flujos de trabajo.

  3. Bajo Flujo de trabajo reutilizable, haga clic en Flujo de trabajo de tarea SPD.

  4. En la cinta, haga clic en Guardar como plantilla para guardar el flujo de trabajo como un archivo .wsp.

  5. Abra el sitio de SharePoint SPD1 en un explorador para ver el archivo .wsp en SharePoint.

  6. Haga clic en Bibliotecas en la barra de inicio rápido.

  7. Haga clic en Activos del sitio en la sección Bibliotecas de documentos.

    El archivo Flujo de trabajo de tarea SPD aparece con otros activos del sitio.

  8. En la lista, haga clic en su nombre y aparecerá el cuadro de diálogo Descarga de archivos.

  9. Haga clic en el botón Guardar del cuadro de diálogo Descarga de archivos para guardar el archivo .wsp en el sistema.

Importar el archivo .wsp en Visual Studio

Importe el archivo .wsp en Visual Studio utilizando un proyecto Importar flujo de trabajo reutilizable. Este proyecto convierte un flujo de trabajo reutilizable y declarativo en un flujo de trabajo de código. Una vez convertido el flujo de trabajo, se usa el código para modificar su comportamiento.

Para importar un flujo de trabajo de un archivo .wsp y modificarlo

  1. En Visual Studio, muestre el cuadro de diálogo Nuevo proyecto señalando a Nuevo en el menú Archivo y haciendo clic en Nuevo proyecto.

  2. Expanda el nodo SharePoint bajo Visual C# o bajo Visual Basic y, a continuación, haga clic en 2010.

  3. Haga clic en Importar flujo de trabajo reutilizable en el recuadro Plantillas, deje el nombre del proyecto como WorkflowImportProject1y, a continuación, haga clic en Aceptar.

    Aparece el Asistente para la personalización de SharePoint.

  4. En la página Especifique el sitio y el nivel de seguridad de la depuración, escriba la URL para el segundo subsitio de SharePoint que creó previamente: http://nombre sistema/SPD2.

  5. En la sección ¿Cuál es el nivel de confianza de esta solución de SharePoint?, deje la selección como Implementar como solución de granja de servidores.

    Para obtener más información sobre soluciones de granja y soluciones en espacio aislado, vea Consideraciones sobre las soluciones en espacio aislado.

  6. En la página Especificar el origen de proyecto nuevo, vaya a la ubicación del sistema donde guardó el archivo .wsp previamente y haga clic en Siguiente.

    Nota

    Hacer clic en Finalizar en esta página hace que se importen todos los elementos disponibles en el archivo .wsp.

    De este modo, se muestra una lista de los flujos de trabajo reutilizables que están disponibles para la importación.

  7. En el cuadro Seleccione los elementos que desea importar, seleccione el flujo de trabajo Flujo de trabajo de tarea SPD y, a continuación, haga clic en Finalizar.

    Una vez finalizada la operación de importación, se crea un proyecto denominado WorkflowImportProject1 que contiene un flujo de trabajo denominado SPD_Workflow_TestFT. En esta carpeta se encuentra el archivo de definición Elements.xml del flujo de trabajo y el archivo del diseñador de flujo de trabajo (.xoml). El diseñador contiene dos archivos: el archivo de reglas (.rules) y el archivo de código subyacente (.cs o .vb, dependiendo del lenguaje de programación de su proyecto).

  8. Establezca el elemento de proyecto WorkflowImportProject1 como elemento de inicio.

    De este modo, se mostrará la lista inmediatamente cuando se depure el proyecto.

  9. Dado que Importar flujo de trabajo reutilizable no importa los valores de la propiedad de asociación del flujo de trabajo importado, es necesario escribirlos. Para hacerlo:

    1. Haga clic en el elemento de proyecto SPD_Workflow_TestFT en el Explorador de soluciones.

    2. Haga clic en el botón de puntos suspensivos (Elipse del Diseñador de ASP.NET Mobile) situado junto a la propiedad Lista de destino, o cualquier otra propiedad que tenga un botón de puntos suspensivos.

    3. Escriba los valores que falten en el Asistente para la personalización de SharePoint. Cuando termine, haga clic en Finalizar.

  10. Haga clic con el botón secundario en el archivo .xoml y seleccione Ver diseñador para ver el flujo de trabajo importado en el diseñador de flujo de trabajo.

  11. En el Cuadro de herramientas, en la sección Windows Workflow v3.0, arrastre una actividad Código hasta el diseñador y colóquela bajo la actividad SequenceActivity1.

    Esto agrega una actividad al diseñador de flujo de trabajo denominada ActividadCódigo1. En esta actividad, agregará una acción de código que crea un anuncio en la lista de anuncios cuando el usuario inicia el flujo de trabajo.

  12. Haga doble clic en CodeActivity1 para generar un controlador de eventos y ver el código.

  13. Agregue lo siguiente bajo las instrucciones Imports o using existentes:

    Imports Microsoft.SharePoint
    Imports System
    
    using Microsoft.SharePoint;
    using System;
    
  14. Reemplace codeActivity1_ExecuteCode por lo siguiente:

    Private Sub codeActivity1_ExecuteCode(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Try
            ' Get reference to SharePoint site.
            Dim site As SPSite = New SPSite("http://MyServer")
            Dim web As SPWeb = site.OpenWeb("SPD2/")
            ' Get reference to Announcements list.
            Dim announcementsList As SPList = web.Lists("Announcements")
            ' Add announcement to Announcements list for the Task.
            Dim oListItem As SPListItem = announcementsList.Items.Add
            oListItem("Title") = ("Assigned task on " + DateTime.Now.ToString)
            oListItem.Update()
        Catch err As Exception
            Console.WriteLine(("Error: " + err.ToString))
        End Try
    End Sub
    
    private void codeActivity1_ExecuteCode(object sender, System.EventArgs e)
    {
    
        try
        {
            // Get reference to SharePoint site.
            SPSite site = new SPSite("http://MyServer");
            SPWeb web = site.OpenWeb("SPD2/");
            // Get reference to Announcements list.
            SPList announcementsList = web.Lists["Announcements"];
    
            // Add announcement to Announcements list for the Task.
            SPListItem oListItem = announcementsList.Items.Add();
            oListItem["Title"] = "Assigned task on " + DateTime.Now.ToString();
            oListItem.Update();
        }
    
        catch (Exception err)
        {
            Console.WriteLine("Error: " + err.ToString());
        }        
    }
    

Implementar el proyecto y asociar el flujo de trabajo

A continuación, ejecute WorkflowImportProject1 para implementarlo en un sitio de SharePoint y después asocie el flujo de trabajo a la lista de Tareas para ver y probar el flujo de trabajo modificado y convertido.

Para implementar el proyecto y asociar el flujo de trabajo

  1. En Visual Studio, presione F5 para ejecutar e implementar el proyecto de flujo de trabajo convertido.

  2. Haga clic en Tareas en la barra de inicio rápido para mostrar la lista Tareas.

  3. Haga clic en Elementos en la cinta de opciones de Herramientas de lista y, a continuación, haga clic en el botón Nuevo elemento.

  4. En el cuadro de diálogo Tareas - Nuevo elemento, escriba Nueva tarea en el cuadro Título y, a continuación, haga clic en Guardar.

  5. Muestre la página Configuración de lista haciendo clic en Lista en el botón de la cinta de opciones Herramientas de lista y haciendo clic a continuación en Configuración de lista.

  6. Haga clic en el vínculo Configuración de flujo de trabajo en la sección Permisos y administración.

    Aparecerá la página Agregar un flujo de trabajo.

  7. En la lista Flujo de trabajo, seleccione WorkflowImportProject1 - Prueba Flujo trabajo SPD.

  8. En el cuadro Nombre, escriba Prueba Flujo trabajo SPD y, a continuación, haga clic en Aceptar.

  9. Haga clic en Tareas en la barra de inicio rápido.

  10. Haga clic en la flecha de lista desplegable situada junto a Nueva tarea y seleccione Flujos de trabajo.

  11. Haga clic en el vínculo Prueba Flujo trabajo SPD en la sección Iniciar un nuevo flujo de trabajo y, a continuación, haga clic en Inicio para iniciar el flujo de trabajo.

    Nota

    También puede asociar automáticamente un flujo de trabajo a una lista ejecutando el asistente para la configuración del flujo de trabajo y estableciendo el flujo de trabajo en asociar automáticamente.

    Observe que el flujo de trabajo realiza dos acciones: su nombre aparece en la columna Asignado a de la tarea y aparece un anuncio en la lista Anuncios.

Vea también

Conceptos

Importar elementos de un sitio de SharePoint existente

Otros recursos

Desarrollar soluciones de SharePoint

Crear controles reutilizables para elementos web o páginas de aplicación