Tutorial: Importación de un flujo de trabajo reutilizable de SharePoint Designer

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, se componen de instrucciones XML en lugar de código. SharePoint Designer 2010 presenta flujos de trabajo reutilizables, que son flujos de trabajo portátiles y declarativos que pueden usar listas distintas en sitios de SharePoint.

Los flujos de trabajo creados en Visual Studio 2012, como flujos de trabajo de máquina de estados y secuenciales, se denominan flujos de trabajo de código. Los flujos de trabajo de código lo integran archivos XML y módulos de código en los que los usuarios pueden personalizar el comportamiento del flujo de trabajo.

Visual Studio permite importar flujos de trabajo reutilizables creados en SharePoint Designer 2010 y convertirlos en flujos de trabajo de código para su uso en los sitios de SharePoint.

En este tutorial se muestran las siguientes tareas:

  • Crear un flujo de trabajo sencillo 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.

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

    Nota:

    Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. 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 Personalizar el IDE.

Requisitos previos

Necesitará los componentes siguientes para completar este tutorial:

  • Ediciones compatibles de Microsoft Windows y SharePoint.

  • Visual Studio.

  • Microsoft Office SharePoint Designer 2010.

Creación de subsitios de SharePoint de destino

En primer lugar, cree dos subsitios de SharePoint: uno para hospedar los flujos de trabajo reutilizables de SharePoint Designer y el otro para hospedar los flujos de trabajo convertidos.

Creación de subsitios de SharePoint

  1. En SharePoint Designer 2010, en la barra de menús, elija Archivo>Nuevo sitio web en blanco.

  2. En el cuadro de diálogo Nuevo sitio web en blanco, vaya a un sitio de SharePoint donde quiera crear el flujo de trabajo o use el valor de http://SystemName/ y, después, elija el botón Aceptar.

    Aparece la página principal.

  3. En la sección Subsitios, elija el botón Nuevo.

  4. En el cuadro de diálogo Nuevo, elija Plantillas de SharePoint en la lista del panel izquierdo y Sitio del equipo en la lista del panel derecho.

  5. En el cuadro Specify the location of the Web site (Especificar la ubicación del sitio web), reemplace la palabra subsite en la dirección URL por SPD1y, después, elija el botón Aceptar.

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

  6. Repita los pasos del 3 al 5 para crear el segundo subsitio, esta vez reemplazando la palabra subsite en la dirección URL por SPD2.

Creación de un flujo de trabajo reutilizable de SharePoint Designer

Dado que SharePoint no incluye ningún flujo de trabajo reutilizable que pueda usar para este ejemplo, creará uno. En este flujo de trabajo sencillo, cuando un usuario escribe una tarea nueva en la Lista de tareas que tiene un título específico, la tarea se asigna a ese usuario.

Creación de un flujo de trabajo reutilizable de SharePoint Designer

  1. En la sección Subsitios, elija el sitio SPD1 para modificarlo.

  2. En la cinta de opciones, elija el botón Flujo de trabajo reutilizable.

    Aparece el Asistente para crear flujos de trabajo reutilizables.

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

  4. En la lista Tipo de contenido, elija Tarea y luego el botón Aceptar.

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

  5. En el diseñador de flujo de trabajo, elija el Paso 1 y, después, en la cinta de opciones, elija el botón Condición.

  6. En la lista de condiciones, elija Si el campo de elemento actual es igual al valor.

    Este paso agrega una condición denominada Si el campo es igual al valor.

  7. En la condición Si el campo es igual al valor, elija el vínculo de campo.

  8. En la lista de valores, elija Título.

  9. En la condición Si el campo es igual al valor, elija el vínculo de valor.

  10. En el cuadro, escriba Nueva tarea.

    La instrucción condition ahora lee If Current Item:Title equals New task.

  11. Elija la línea en la instrucción de condición y, después, en la cinta de opciones, elija el botón Acción.

  12. En la lista de acciones, elija Establecer campo en elemento actual.

  13. En la acción Set field to value (Establecer campo en valor), elija el vínculo campo y, después, en la lista, elija Asignado a.

  14. En la acción Set field to value (Establecer campo en valor), elija el vínculo valor y, después, en la lista de usuarios y grupos existentes, elija User who created the item (Usuario que creó el elemento).

  15. Elija el botón Agregar y después el botón Aceptar.

    La instrucción action ahora lee Set Assigned To Current Item:CreatedBy.

Almacenamiento e implementación del 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.

Importante

Si recibe un error en tiempo de ejecución que realiza el procedimiento siguiente, debe realizar el procedimiento en un sistema que tenga acceso al sitio de SharePoint.

Almacenamiento e implementación del flujo de trabajo reutilizable

  1. En la parte superior de SharePoint Designer, elija el botón Guardar para guardar el progreso y, después, el botón Publicar para implementar el flujo de trabajo en el sitio de SharePoint SPD1.

  2. En el panel Navegación, elija el objeto Flujos de trabajo.

  3. En Flujo de trabajo reutilizable, elija SPD Task Workflow (Flujo de trabajo de la tarea SPD).

  4. En la cinta de opciones, elija el botón 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. En la barra Inicio rápido, elija el vínculo Bibliotecas.

  7. En la sección Bibliotecas de documentos, elija el vínculo Activos del sitio.

    El archivo Flujo de trabajo de la tarea SPD se muestra con otros activos del sitio.

  8. En la lista de archivos, elija el nombre de ese archivo.

  9. En el cuadro de diálogo Descarga de archivos, elija el botón Guardar para guardar el archivo .wsp en el sistema local.

Importación del archivo .wsp en Visual Studio

Importe el archivo .wsp en Visual Studio mediante un proyecto Importar flujo de trabajo reutilizable. Este proyecto convierte el flujo de trabajo de uno de tipo declarativo reutilizable a uno de código. Una vez convertido el flujo de trabajo, usará código para modificar su comportamiento.

Importación de un flujo de trabajo desde un archivo .wsp y modificación del mismo

  1. En la barra de menús de Visual Studio, elija Archivo>Nuevo>Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, expanda el nodo de SharePoint en Visual C# o Visual Basic y, después, elija el nodo 2010.

  3. En el panel Plantillas, elija la plantilla Importar el flujo de trabajo reutilizable de SharePoint 2010, deje el nombre del proyecto como WorkflowImportProject1 y luego elija el botón Aceptar.

    Aparece el Asistente para personalización de SharePoint.

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

  5. En la sección ¿Cuál es el nivel de confianza de esta solución de SharePoint?, active el botón de opción Implementar como solución de granja de servidores y luego el botón Siguiente.

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

  6. En la página Especifique el nuevo origen del proyecto, vaya a la ubicación del sistema donde guardó previamente el archivo .wsp, ábralo y, después, elija el botón Siguiente.

    Nota

    Elija el botón Finalizar para importar todos los elementos disponibles en el archivo .wsp.

    Esta acción muestra una lista de flujos de trabajo reutilizables disponibles para la importación.

  7. En el cuadro Seleccione los elementos que desea importar, elija el flujo de trabajo Flujo de trabajo de la tarea SPD y luego el botón 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 del flujo de trabajo Elements.xml y el archivo de diseñador del 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, en función del lenguaje de programación del proyecto).

  8. En el Explorador de soluciones, elimine la carpeta Otros archivos importados.

  9. En el archivo Elements.xml, elimine InstantiationURL="_layouts/IniErkflIP.sspx".

  10. En el Explorador de soluciones, elija WorkflowImportProject1y, después, en la barra de menús, elija Proyecto>Establecer como proyecto de inicio para establecer WorkflowImportProject1 como elemento de inicio.

    Esta acción muestra la lista de inmediato al depurar el proyecto.

  11. Como la plantilla Importar el flujo de trabajo reutilizable de SharePoint 2010 no importa los valores de propiedad de asociación para el flujo de trabajo importado, deberá escribirlos. Para ello, siga estos pasos:

    1. En el Explorador de soluciones, elija el nodo SPD_Workflow_TestFT.

    2. Elija los puntos suspensivos (ASP.NET Mobile Designer ellipse) situado junto a una de las propiedades de lista, como la propiedad Lista de destino.

    3. Rellene los valores que faltan en el Asistente para la personalización de SharePoint y, después, elija el botón Finalizar.

  12. Elija el archivo .xoml y, después, en la barra de menús, elija Vista>Diseñador para ver el flujo de trabajo importado en el diseñador de flujos de trabajo.

  13. En el nodo Windows Workflow v3.0 del Cuadro de herramientas, realice uno de los pasos siguientes:

    • Abra el menú contextual de la actividad Código y después elija Copiar. En el diseñador de flujos de trabajo, abra el menú contextual de la línea en la actividad SequenceActivity1 y luego elija Pegar.

    • Arrastre la actividad Código del Cuadro de herramientas al diseñador de flujos de trabajo y conéctela a la línea situada debajo de la actividad SequenceActivity1.

      Esta acción agrega una actividad al diseñador de flujos de trabajo denominado CodeActivity1. En esta actividad, agregará una acción de código que crea un anuncio en la lista Anuncios cuando el usuario inicie el flujo de trabajo.

  14. Siga una de estas series de procedimientos:

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

    • En la ventana Propiedades de CodeActivity1, establezca el valor de la propiedad ExecuteCode en codeActivity_ExecuteCode.

  15. Agregue lo siguiente en las directivas using o Imports existentes:

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

    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());
        }        
    }
    

Implementación del proyecto y asociación del flujo de trabajo

Después, ejecute WorkflowImportProject1 para implementarlo en un sitio de SharePoint y, luego, asocie el flujo de trabajo a la lista Tareas para ver y probar el flujo de trabajo modificado y convertido.

Implementación del proyecto y asociación del flujo de trabajo

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

  2. En la barra Inicio rápido, elija el vínculo Tareas para mostrar la lista Tareas.

  3. En la pestaña Herramientas de lista, elija el botón Elementos y luego el botón Nuevo elemento.

    Se abre el cuadro de diálogo Tasks - New Item (Tareas: nuevo elemento).

  4. En el cuadro Título, escriba Nueva tarea y, después, elija el botón Guardar.

  5. En la pestaña Herramientas de lista, elija el botón Lista y, después, el botón Configuración de la lista.

    Aparece la página Configuración de la lista.

  6. En la sección Permisos y administración, elija el vínculo Configuración del flujo de trabajo.

    Aparece la página Configuración del flujo de trabajo.

  7. Elija el vínculo Agregar un flujo de trabajo.

  8. En la lista Flujo de trabajo, elija WorkflowImportProject1 - SPD Workflow Test (WorkflowImportProject1: prueba de flujo de trabajo de SPD).

  9. En el cuadro Nombre, escriba Prueba de flujo de trabajo de SPD y, después, elija el botón Aceptar.

  10. En la barra Inicio rápido, elija la lista Tareas.

  11. Elija la flecha situada junto a Nueva tarea y después, en la lista, elija Flujos de trabajo.

  12. En la sección Iniciar un nuevo flujo de trabajo, elija el vínculo para SPD Workflow Test (Prueba de flujo de trabajo de SPD) y, después, el botón Iniciar para iniciar el flujo de trabajo.

    Nota

    Como alternativa, 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 asociación automática.

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