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 2012, como los flujos de trabajo secuenciales y de equipo de estado, 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 permite importar flujos de trabajo reutilizables creados en SharePoint Designer 2010 y convertirlos a los flujos de trabajo para el uso en 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:
Ediciones compatibles de Microsoft Windows y SharePoint.Para obtener más información, vea Requisitos para desarrollar soluciones de SharePoint.
Visual Studio.
Microsoft Office SharePoint Designer 2010.
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
En SharePoint Designer 2010, en la barra de menú, elija Archivo, Nuevo sitio Web en blanco.
En el cuadro de diálogo Nuevo sitio Web en blanco, vaya a un sitio de SharePoint donde desea crear el flujo de trabajo, o utilice el valor de http://SystemName/y después elija el botón Aceptar.
Aparece la Página principal.
En la sección Subsitios, elija el botón Nueva.
En el cuadro de diálogo Nueva, elija Plantillas de SharePoint de la lista del panel izquierdo, y elija Sitio del equipo de la lista del panel derecho.
En el cuadro Especifique la ubicación del sitio Web, reemplace la palabra subsitio en la dirección URL por SPD1, y elija el botón 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).
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
En la sección Subsitios, elija el sitio SPD1 para modificarlo.
En la cinta de opciones, elija el botón Flujo de trabajo reutilizable.
Aparecerá el asistente para crear flujos de trabajo reutilizables.
En el cuadro Nombre, escriba el flujo de trabajo de tarea SPD.
En la lista Tipo de contenido, elija Tarea, y elija el botón Aceptar.
El flujo de trabajo se abre en el diseñador de flujos de trabajo de SharePoint Designer.
En el diseñador de flujo de trabajo, elija el paso 1 y, a continuación, en la cinta de opciones, elija el botón Condición.
En la lista de condiciones, elija Si el campo del elemento actual es igual a valor.
Este paso agrega una condición que se denomina Si el campo es valor.
En la condición Si el campo es valor, elija el vínculo campo.
En la lista de valores, elija Título.
En la condición Si el campo es valor, elija el vínculo value.
En el cuadro, escriba Nueva tarea.
La instrucción condicional ahora es Si el título de elemento actual es Nueva tarea.
Elija la línea bajo la instrucción condicional y, a continuación, en la cinta de opciones, elija el botón Acción.
En la lista de acciones, elija Establezca el campo de elemento actual.
En acción Establezca el campo en el valor, elija el vínculo campo y, a continuación, en la lista, elija Asignada a.
En acción Establezca el campo en el valor, elija el vínculo value y, a continuación, en la lista de usuarios existentes y grupos, elija Usuario que creó el elemento.
Elija el botón Add, y elija el botón 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.
Importante |
---|
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
En la parte superior de SharePoint Designer, elija el botón Guardar para guardar el progreso, y elija el botón publicar para implementar el flujo de trabajo en el sitio de SharePoint SPD1.
En el panel de navegación, elija el objeto Flujos de trabajo.
En Flujo de trabajo reutilizable, elija Flujo de trabajo de tarea SPD.
En la cinta de opciones, elija el botón Guardar como plantilla para guardar el flujo de trabajo como un archivo .wsp.
Abra el sitio de SharePoint SPD1 en un explorador para ver el archivo .wsp en SharePoint.
En la barra de inicio rápido, elija el vínculo Bibliotecas.
En la sección Bibliotecas de documentos, elija el vínculo Activos del sitio.
El archivo Flujo de trabajo de tarea SPD aparece con otros activos del sitio.
En la lista de archivos, elija el nombre de dicho archivo
En el cuadro de diálogo Descarga de archivos, elija el botón Guardar para guardar el archivo .wsp en el sistema local.
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
En Visual Studio, en la barra de menú, elija Archivo, Nueva, proyecto.
En el cuadro de diálogo nuevo proyecto, expanda el nodo SharePoint en Visual c# o Visual Basic y, a continuación el nodo 2010.
En el panel Plantillas, elija la plantilla Importar flujo de trabajo reutilizable de SharePoint 2010, deje el nombre del proyecto como WorkflowImportProject1, y elija el botón Aceptar.
Aparece el Asistente para la personalización de SharePoint.
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.
En la sección Cuál es el nivel de confianza de esta solución de SharePoint?, elija el botón de opción implementar como solución de granja de servidores, y elija el botón siguiente.
Para obtener más información sobre soluciones de granja y soluciones en espacio aislado, vea Consideraciones sobre las soluciones en espacio aislado.
En la página Especifique el nuevo origen del proyecto, vaya a la ubicación del sistema donde guardó el archivo .wsp previamente, abra el archivo, y después elija el botón siguiente.
[!NOTA]
Elija el botón finalizar para importar 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.
En el cuadro Seleccione los elementos que desea importar, elija el flujo de trabajo Flujo de trabajo de tarea SPD, y elija 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 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).
En Explorador de soluciones, elimine la carpeta Otros archivos importados.
En el archivo Elements.xml, elimine InstantiationURL="_layouts/IniErkflIP.sspx".
En Explorador de soluciones, elija WorkflowImportProject1 y, a continuación, en la barra de menús, elija proyecto, Establecer como proyecto de inicio para establecer WorkflowImportProject1 como elemento de inicio.
De este modo, se mostrará la lista inmediatamente cuando se depure el proyecto.
Dado que la plantilla Importar flujo de trabajo reutilizable de SharePoint 2010 no importa los valores de propiedad de asociación del flujo de trabajo importado, es necesario escribirlos.Para hacerlo:
En Explorador de soluciones, elija el nodo SPD_Workflow_TestFT.
Elija el botón de puntos suspensivos () situado junto a una de las propiedades de la lista, como la propiedad Lista de destino.
Rellene los valores que faltan en el Asistente para la personalización de SharePoint, y después elija el botón finalizar.
Elija el archivo .xoml y, a continuación, en la barra de menú, elija Vista, Diseñador para ver el flujo de trabajo importado en el diseñador de flujo de trabajo.
En el nodo Windows workflow v3.0Cuadro de herramientas, realice uno de los pasos siguientes:
Abrir el menú contextual de la actividad código y, a continuación copiar.En el diseñador de flujo de trabajo, abra el menú contextual para la línea bajo la actividad SequenceActivity1 y, a continuación Pegar.
Arrastre la actividad códigoCuadro de herramientas al diseñador de flujo de trabajo, y conéctela a la línea 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.
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 para CodeActivity1, establezca el valor de la propiedad ExecuteCode a codeActivity_ExecuteCode.
Agregue lo siguiente bajo las instrucciones Imports o using existentes:
Imports Microsoft.SharePoint Imports System
using Microsoft.SharePoint; using System;
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
En Visual Studio, elija la tecla F5 para ejecutar e implementar el proyecto de flujo de trabajo convertido.
En la barra de inicio rápido, elija el vínculo Tareas para mostrar la lista de Tareas.
En la pestaña Enumera las herramientas, elija el botón elementos, y elija el botón Nuevo elemento.
El cuadro de diálogo Tareas - nuevo elemento abra.
En el cuadro Título, escriba nueva tarea, y elija el botón Guardar.
En la pestaña Enumera las herramientas, elija el botón list, y elija el botón Configuración de la lista.
La página Configuración de la lista aparece.
En la sección Permisos y administración, elija el vínculo Valores de flujo de trabajo.
La página Valores de flujo de trabajo.
Elija el vínculo Agregue un flujo de trabajo.
En la lista Flujo de trabajo, elija WorkflowImportProject1 - prueba de flujo de trabajo SPD.
En el cuadro Nombre, escriba prueba flujo trabajo SPD, y elija el botón Aceptar.
En la barra de inicio rápido, elija la lista Tareas.
Elija la flecha situada junto a Nueva tarea y, a continuación, en la lista, elija Flujos de trabajo.
En la sección Inicie un nuevo flujo de trabajo, elija el vínculo para Prueba del flujo de trabajo SPD, y elija el botón 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