Compartir vía


Tutorial: Creación y depuración de una solución de flujo de trabajo de SharePoint

En este tutorial se muestra cómo crear una plantilla de flujo de trabajo secuencial básica. El flujo de trabajo comprueba una propiedad de una biblioteca de documentos compartida para determinar si se ha revisado un documento. Si se ha revisado el documento, el flujo de trabajo finaliza.

En este tutorial se muestran las tareas siguientes:

  • Creación de un proyecto de flujo de trabajo secuencial de definición de lista de SharePoint en Visual Studio.

  • Creación de actividades de flujo de trabajo.

  • Control de eventos de actividad de flujo de trabajo.

Nota

Aunque en este tutorial se usa un proyecto de flujo de trabajo secuencial, el proceso es idéntico para un proyecto de flujo de trabajo de máquina de estado.

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

Requisitos previos

Necesitará los componentes siguientes para completar este tutorial:

  • Ediciones compatibles de Microsoft Windows y SharePoint.

  • Visual Studio.

Agregar propiedades a la biblioteca de documentos compartidos de SharePoint

Para realizar un seguimiento del estado de revisión de los documentos de la biblioteca de documentos compartidos, crearemos tres nuevas propiedades para documentos compartidos en nuestro sitio de SharePoint: Status, Assignee y Review Comments. Definimos estas propiedades en la biblioteca de Documentos compartidos.

Para agregar propiedades a la biblioteca de documentos compartidos de SharePoint

  1. Abra un sitio de SharePoint, como http://<nombre del sistema>/SitePages/Home.aspx, en un explorador web.

  2. En la barra Inicio rápido, elija SharedDocuments.

  3. Elija Biblioteca en la cinta Herramientas de biblioteca y, a continuación, elija el botón Crear columna en la cinta de opciones para crear una columna.

  4. Asigne a la columna el nombre Estado del documento, establezca su tipo en Opción (menú entre el que elegir), especifique las tres opciones siguientes y, a continuación, elija el botón Aceptar:

    • Se necesita revisión

    • Revisión completa

    • Cambios solicitados

  5. Cree dos columnas más y asígneles el nombre Persona asignada y Revisar comentarios. Establezca el tipo de columna Persona asignada como una sola línea de texto y el tipo de columna Revisar comentarios como varias líneas de texto.

Permitir la edición de documentos sin necesidad de extraerlos del repositorio

Es más fácil probar la plantilla de flujo de trabajo cuando se pueden editar los documentos sin tener que revisarlos. En el siguiente procedimiento, configurará el sitio de SharePoint para habilitarlo.

Permitir la edición de documentos sin comprobarlos

  1. En la barra Inicio rápido, elija el vínculo Documentos compartidos.

  2. En la cinta Herramientas de biblioteca, elija la pestaña Biblioteca y, a continuación, seleccione el botón Configuración de la biblioteca para mostrar la página Configuración de la biblioteca de documentos.

  3. En la sección Configuración general, elija el vínculo Configuración de control de versiones para mostrar la página Configuración de control de versiones.

  4. Compruebe que la configuración ajuste para Requerir que los documentos se restauren antes de poder editarlos es No. Si no es así, cámbielo a No y, a continuación, elija el botón Aceptar.

  5. Cierre el explorador.

Creación de un proyecto de flujo de trabajo secuencial de SharePoint

Un flujo de trabajo secuencial es un conjunto de pasos que se ejecuta en orden hasta que finaliza la última actividad. En este procedimiento, creamos un flujo de trabajo secuencial que se aplicará a nuestra lista de documentos compartidos. El asistente para flujos de trabajo le permite asociar el flujo de trabajo a la definición del sitio o a la definición de lista y le permite determinar cuándo se iniciará el flujo de trabajo.

Instrucciones para la creación de un proyecto de flujo de trabajo secuencial de SharePoint

  1. Inicie Visual Studio.

  2. En la barra de menús, elija Archivo>Nuevo>Proyecto para mostrar el cuadro de diálogo Nuevo proyecto.

  3. Expanda el nodo SharePoint en Visual C# o Visual Basic y, a continuación, seleccione el nodo 2010.

  4. En el panel Plantillas, seleccione la plantilla Proyecto de SharePoint 2010.

  5. En el cuadro Nombre, escriba MySharePointWorkflow y, a continuación, elija el botón Aceptar.

    Aparece el Asistente para la personalización de SharePoint.

  6. En la página Especifique el sitio y el nivel de seguridad de la depuración, seleccione el botón de opción Implementar como solución de granja de servidores y, después, el botón Finalizar para aceptar el nivel de confianza y el sitio predeterminado.

    Este paso establece el nivel de confianza de la solución como solución de granja de servidores, la única opción disponible para los proyectos de flujo de trabajo. Para más información, vea Consideraciones sobre la solución de espacio aislado.

  7. En Explorador de soluciones, elija el nodo del proyecto y, después, en la barra de menús, elija Proyecto>Agregar nuevo elemento.

  8. En Visual C# o Visual Basic, expanda el nodo SharePoint y, después, seleccione el nodo 2010.

  9. En el panel Plantillas, seleccione la plantilla Flujo de trabajo secuencial (solución de granja de servidores únicamente) y, después, el botón Agregar.

    Aparece el Asistente para la personalización de SharePoint.

  10. En la página Especifique el nombre del flujo de trabajo de depuración, acepte el nombre predeterminado (MySharePointWorkflow - Workflow1). Mantenga el valor predeterminado del tipo de plantilla de flujo de trabajo, Lista de flujo de trabajo y, a continuación, elija el botón Siguiente.

  11. En la página ¿Desea que Visual Studio asocie automáticamente el flujo de trabajo en una sesión de depuración?, elija el botón Siguiente para aceptar toda la configuración predeterminada.

    Este paso asocia automáticamente el flujo de trabajo a la biblioteca de documentos compartidos.

  12. En la página Especificar las condiciones para el inicio del flujo de trabajo, deje las opciones predeterminadas seleccionadas en la sección ¿Cómo desea que se inicie el flujo de trabajo? y elija el botón Finalizar.

    Esta página le permite especificar cuándo se inicia el flujo de trabajo. De forma predeterminada, el flujo de trabajo se inicia cuando un usuario lo inicia manualmente en SharePoint o cuando se crea un elemento al que está asociado el flujo de trabajo.

Creación de actividades de flujo de trabajo

Los flujos de trabajo contienen una o varias actividades que representan las acciones que se van a realizar. Use el diseñador de flujo de trabajo para organizar las actividades de un flujo de trabajo. En este procedimiento, agregaremos dos actividades al flujo de trabajo: HandleExternalEventActivity y OnWorkFlowItemChanged. Estas actividades supervisan el estado de revisión de los documentos en la lista Documentos compartidos

Para crear actividades de flujo de trabajo

  1. El flujo de trabajo debe mostrarse en el diseñador de flujo de trabajo. Si no es así, abra Workflow1.cs o Workflow1.vb en Explorador de soluciones.

  2. En el diseñador, elija la actividad OnWorkflowActivated1.

  3. En la ventana Propiedades, escriba onWorkflowActivated junto a la propiedad Invoked y, a continuación, elija la tecla Entrar.

    Se abre el Editor de código y se agrega un método de controlador de eventos denominado onWorkflowActivated al archivo de código Workflow1.

  4. Vuelva al diseñador de flujos de trabajo, abra el cuadro de herramientas y expanda el nodo Windows Workflow v3.0.

  5. En el nodo Windows Workflow v3.0 del Cuadro de herramientas, siga una de estas series de procedimientos:

    1. Abra el menú contextual de la actividad While y, a continuación, elija Copiar. En el diseñador de flujo de trabajo, abra el menú contextual de la línea debajo de la actividad onWorkflowActivated1 y, a continuación, elija Pegar.

    2. Arrastre la actividad While del Cuadro de herramientas al diseñador de flujo de trabajo y conecte la actividad a la línea bajo la actividad onWorkflowActivated1.

  6. Elija la actividad WhileActivity1.

  7. En la ventana Propiedades, establezca Condition en Condición de código.

  8. Expanda la propiedad Condition, escriba isWorkflowPending junto a la propiedad Condition secundaria y, a continuación, elija la tecla Entrar.

    Se abre el Editor de código y se agrega un método denominado isWorkflowPending al archivo de código Workflow1.

  9. Vuelva al diseñador de flujos de trabajo, abra el cuadro de herramientas y, a continuación, expanda el nodo Flujo de trabajo de SharePoint.

  10. En el nodo Flujo de trabajo de SharePoint del Cuadro de herramientas, realice uno de los siguientes conjuntos de pasos:

    • Abra el menú contextual de la actividad OnWorkflowItemChanged y, a continuación, elija Copiar. En el diseñador de flujo de trabajo, abra el menú contextual de la línea dentro de la actividad whileActivity1 y, a continuación, elija Pegar.

    • Arrastre la actividad OnWorkflowItemChanged del Cuadro de herramientas al diseñador de flujos de trabajo, y conecte la actividad a la línea dentro de la actividad whileActivity1.

  11. Elija la actividad onWorkflowItemChanged1.

  12. En la ventana Propiedades, establezca las propiedades como se muestra en la tabla siguiente.

    Propiedad Value
    CorrelationToken workflowToken
    Invocado onWorkflowItemChanged

Controlar eventos de actividad

Por último, compruebe el estado del documento de cada actividad. Si se ha revisado el documento, se finalizará el flujo de trabajo.

Para controlar eventos de actividad

  1. En Workflow1.cs o Workflow1.vb, agregue el siguiente campo a la parte superior de la clase Workflow1. Este campo se usa en una actividad para determinar si el flujo de trabajo ha finalizado.

    Boolean workflowPending = true;
    
  2. Agregue el siguiente método a la clase Workflow1. Este método comprueba el valor de la propiedad Document Status de la lista Documentos para determinar si se ha revisado el documento. Si la propiedad Document Status está establecida en Review Complete, el método checkStatus establece el campo workflowPending en false para indicar que el flujo de trabajo está listo para finalizar.

    private void checkStatus()
    {
        if ((string)workflowProperties.Item["Document Status"] == "Review Complete")
        workflowPending = false;
    }
    
  3. Agregue el código siguiente a los métodos onWorkflowActivated y onWorkflowItemChanged para llamar al método checkStatus. Cuando se inicia el flujo de trabajo, el método onWorkflowActivated llama al método checkStatus para determinar si el documento ya se ha revisado. Si no se ha revisado, el flujo de trabajo continúa. Cuando se guarda el documento, el método onWorkflowItemChanged llama de nuevo al método checkStatus para determinar si se ha revisado el documento. Aunque el campo workflowPending está establecido en true, el flujo de trabajo continúa ejecutándose.

    private void onWorkflowActivated(object sender, ExternalDataEventArgs e)
    {
        // Check the status.
        checkStatus();
    }
    
    private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e)
    {
        // Check the status.
        checkStatus();
    }
    
  4. Agregue el código siguiente al método isWorkflowPending para comprobar el estado de la propiedad workflowPending. Cada vez que se guarda el documento, la actividad whileActivity1 llama al método isWorkflowPending. Este método examina la propiedad Result del objeto ConditionalEventArgs para determinar si la actividad WhileActivity1 debe continuar o finalizar. Si la propiedad se establece en true, la actividad continúa. De lo contrario, la actividad finaliza y el flujo de trabajo finaliza.

    private void isWorkflowPending(object sender, ConditionalEventArgs e)
    {
        e.Result = workflowPending;
    }
    
  5. Guarde el proyecto.

Probar la plantilla de flujo de trabajo de SharePoint

Al iniciar el depurador, Visual Studio implementa la plantilla de flujo de trabajo en el servidor de SharePoint y asocia el flujo de trabajo a la lista Documentos compartidos. Para probar el flujo de trabajo, inicie una instancia del flujo de trabajo desde un documento de la lista Documentos compartidos.

Para probar la plantilla de flujo de trabajo de SharePoint

  1. En Workflow1.cs o Workflow1.vb, establezca un punto de interrupción junto al método onWorkflowActivated.

  2. Seleccione la tecla F5 para construir y ejecutar la solución.

    Aparece el sitio de SharePoint.

  3. En el panel de navegación de SharePoint, elija el vínculo Documentos compartidos.

  4. En la página Documentos compartidos, seleccione el enlace Documentos de la pestaña Herramientas de biblioteca y, a continuación, seleccione el botón Subir documento.

  5. En el cuadro de diálogo Cargar documento, seleccione el botón Examinar, seleccione cualquier archivo de documento, seleccione el botón Abrir y, después, el botón Aceptar.

    Esto carga el documento seleccionado en la lista de Documentos compartidos e inicia el flujo de trabajo.

  6. En Visual Studio, compruebe que el depurador se detiene en el punto de interrupción situado junto al método onWorkflowActivated.

  7. Seleccione la tecla F5 para continuar la ejecución.

  8. Puede cambiar la configuración del documento aquí, pero déjelos en los valores predeterminados por ahora eligiendo el botón Guardar.

    Esto le devuelve a la página Documentos compartidos del sitio web de SharePoint predeterminado.

  9. En la página Documentos compartidos, compruebe que el valor debajo de la columna MySharePointWorkflow - Workflow1 está establecido en En curso. Esto indica que el flujo de trabajo está en curso y que el documento está esperando revisión.

  10. En la página Documentos compartidos, elija el documento, elija la flecha que aparece y, a continuación, elija el elemento de menú Editar propiedades.

  11. Establezca Estado del documento en Revisar completado y, a continuación, elija el botón Guardar.

    Esto le devuelve a la página Documentos compartidos del sitio web de SharePoint predeterminado.

  12. En la página Documentos compartidos, compruebe que el valor debajo de la columna Estado del documento está establecido en Revisar completado. Actualice la página Documentos compartidos y compruebe que el valor situado debajo de la columna MySharePointWorkflow - Workflow1 está establecida en Completado. Esto indica que el flujo de trabajo ha finalizado y que se ha revisado el documento.

Pasos siguientes

Puede obtener más información sobre cómo crear plantillas de flujo de trabajo en estos temas: