Agregar un flujo de trabajo a un complemento de SharePoint hospedado en SharePoint

Este es el sexto artículo de una serie sobre los conceptos básicos de desarrollo de complementos de SharePoint hospedados en SharePoint. Primero debe familiarizarse con Complementos de SharePoint y con los anteriores artículos de esta serie, los cuales puede encontrar en Introducción a la creación de complementos de SharePoint hospedados en SharePoint | Pasos siguientes.

Nota:

Se recomienda usar Microsoft Power Automate para las aplicaciones y la automatización de procesos. Comenzando desde Visual Studio 2022, las plantillas de flujo de trabajo se han quitado de los proyectos de complementos de SharePoint. Para obtener más información, consulte Guía: Migración de los flujos de trabajo clásicos a los flujos de Power Automate en SharePoint

Sugerencia

Si ha estado trabajando en esta serie sobre complementos hospedados por SharePoint, hay una solución de Visual Studio que puede usar para continuar con este tema. También puede descargar el repositorio que encontrará en SharePoint_SP-hosted_Add-Ins_Tutorials y abrir el archivo BeforeWorkflow.sln.

En este artículo, agregará un flujo de trabajo al complemento de SharePoint “Orientación para empleados”, que avisa al departamento de Recursos Humanos (RR. HH.) cuando hay un nuevo empleado listo para rellenar el papeleo de RR. HH.

Agregar un flujo de trabajo a un complemento

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Agregar>Nuevo elemento. Asigne a la carpeta el nombre Flujos de trabajo.

  2. Haga clic con el botón secundario en la nueva carpeta y seleccione Agregar>Nuevo objeto. Se abrirá el cuadro de diálogo Agregar nuevo elemento en el nodo Office/SharePoint.

  3. Seleccione Flujo de trabajo y asígnele el nombre HR_Intake. Cuando se le solicite que seleccione el tipo de flujo de trabajo, elija Flujo de trabajo de listay después seleccione Siguiente.

  4. En la página siguiente del asistente, habilite la opción Sí, asociarlo… y, después, establezca los valores siguientes en los controles desplegables:

    • La biblioteca o lista con la que asociará el flujo de trabajo: Nuevos empleados en Seattle.
    • La lista de historial: <create new>
    • La lista de tareas: <create new>
  5. Seleccione Siguiente.

  6. En la última página del asistente, habilite solo la opción para comenzar automáticamente el flujo de trabajo cuando se cambie un elemento.

  7. Seleccione Finalizar.

    Office Developer Tools para Visual Studio realizará las siguientes acciones:

    • Creará un flujo de trabajo HR_Intake en la carpeta Workflow, con un archivo Workflow.xaml secundario que está abierto en el Diseñador de flujo de trabajo.
    • Creará una instancia de lista WorkflowTaskList donde se crearán y actualizarán las tareas que formen parte del flujo de trabajo.
    • Creará una instancia de lista WorkflowHistoryList, que es un registro de los distintos pasos de cada ejecución del flujo de trabajo.

Diseño del flujo de trabajo

El flujo de trabajo envía un correo electrónico para notificarle a un empleado nuevo ha terminado el Paseo por el edificio de la orientación y está listo para rellenar el papeleo de RR. HH. Cualquier cambio en un elemento existente en la lista de Nuevos empleados en Seattle modifica el flujo de trabajo, pero el flujo de trabajo de nada a menos que el campo Fase de orientación esté establecido a Papeleo de RR. HH. Se envía un correo electrónico a una persona de Recursos Humanos y se le da la tarea de incluir al empleado en la WorkflowTaskList.

Nota:

En varias ocasiones al diseñar el flujo de trabajo, aparecerá un símbolo de rombo azul con un signo de exclamación en él ( Una forma de rombo azul pequeña con un signo de exclamación blanco en él. ) aparecerá en uno o varios elementos del diseñador de flujo de trabajo. Estos informes de errores temporales. (Mantenga el cursor sobre el símbolo para ver un breve mensaje o busque en la lista de errores de Visual Studio para obtener más información). Estos son los efectos secundarios de la falta de contenido del flujo de trabajo. Todos deberían desaparecer cuando haya terminado este procedimiento.

  1. Abra el panel Cuadro de herramientas en Visual Studio, expanda el nodo SP - Lista y, después, arrastre LookupSPListItem hasta la Secuencia en el Diseñador.

  2. Seleccione LookupSPListItem para que sus propiedades se muestren en el panel Propiedades de Visual Studio. Establezca las siguientes propiedades en estos valores:

    • ItemID: (elemento actual)
    • ListID: (lista actual)
    • DisplayName: LookupCurrentNewEmployee

    El panel Propiedades debería tener ahora este aspecto:

    Figura 1. Panel Propiedades de LookupSPListItem

    Panel Propiedades de la actividad de flujo de trabajo del elemento de lista de búsqueda con las propiedades DisplayName, ListID e ItemID establecidas

  3. Seleccione cualquier parte fuera del panel para guardar los cambios. Ahora, la superficie del Diseñador tendrá este aspecto.

    Figura 2. Secuencia en el diseñador de flujos de trabajo

    El Diseñador de flujo de trabajo con un cuadro Secuencia y, en su interior, una actividad llamada

  4. Seleccione el vínculo Obtener propiedades de la actividad LookupCurrentNewEmployee (cuyo nombre ha cambiado) en el diseñador. Esto agrega una actividad GetDynamicValueProperties a la secuencia.

  5. Seleccione el texto Definir... en la actividad GetDynamicValueProperties . Aparecerá el cuadro de diálogo Propiedades.

  6. Establezca Tipo de entidad en Elemento de lista delist_instance_name, donde list_instance_name es Nuevos empleados en Seattle.

  7. En la columna Ruta, seleccione la celda superior y seleccione Fase orientación en el menú desplegable.

  8. Seleccione la celda debajo de ella, y después, seleccione Empleado de la lista desplegable.

  9. Seleccione Rellenar variables. Se crean variables denominadas OrientationStage y Title y se asigna cada uno de los valores de los campos correspondientes en el elemento actual de la lista Nuevos empleados de Seattle. El cuadro de diálogo Propiedades será similar al siguiente:

  10. Seleccione Aceptar. Ahora, la superficie del Diseñador será similar a la siguiente:

    Figura 4. Diseñador de flujos de trabajo

    El Diseñador de flujo de trabajo con dos actividades: “Búsqueda de elementos de lista” y “Obtener valores dinámicos”.

  11. Abra el panel Cuadro de herramientas en Visual Studio, expanda el nodo Flujo de control y arrastre Si hasta la parte inferior de la secuencia, debajo de GetDynamicValueProperties.

  12. En el cuadro Condición de Si, escriba OrientationStage=="Papeleo de RR. HH.".

  13. Abra el panel Cuadro de herramientas en Visual Studio, expanda el nodo SP - Utilidades y arrastre Correo electrónico hasta el cuadro Entonces de la actividad Si.

  14. Seleccione la actividad Correo. En el panel Propiedades, establezca los valores de las propiedades Cuerpo, Asunto y Para. En cada caso, elija el botón de llamada . . . para la propiedad y use el Editor de expresiones que se abre para establecer el valor de la propiedad como en la tabla siguiente. Estas son las expresiones de cadena de C#, así que use comillas tal como se muestra. Title aquí es una variable asignada anteriormente al campo Título del elemento de lista (que contiene el nombre del empleado).

    • Cuerpo:Title + " is waiting in the lobby to fill out benefits and employment forms."
    • Asunto:Title + " is ready for HR paperwork"
    • Para:new System.Collections.ObjectModel.Collection<string>() {"your_O365_email"}

    Sustituya el marcador de posición, your_O365_email, con la identidad que usa para iniciar sesión en su cuenta de desarrollador de Office 365, como *alias*@*O365domain*.sharepoint.com. Se trata una cadena de C# por lo que tiene que estar entre comillas.

  15. Abra el panel Cuadro de herramientas en Visual Studio, expanda el nodo Runtime y arrastre TerminateWorkflow hasta el cuadro Si no de la actividad Si.

  16. Seleccione la actividad TerminateWorkflow y, en el panel Propiedades, establezca la Razón para lo siguiente, incluidas las comillas: "Not at HR paperwork stage.". El diseñador tendrá ahora este aspecto:

    Figura 5. El Diseñador de flujos de trabajo cuando el flujo de trabajo está completado

    El diseñador de flujo de trabajo con actividades para

Ejecutar y probar el complemento

  1. Use la tecla F5 para implementar y ejecutar el complemento. Visual Studio instala temporalmente el complemento en el sitio de SharePoint de prueba y ejecuta el complemento inmediatamente. La consola Host del servicio de prueba del Administrador de flujos de trabajo también se abre.

  2. Cuando se abra la página predeterminada del complemento, abra uno de los elementos para su edición y establezca el valor de Fase de orientación en Papeleo RR. HH.

    En la consola Host del servicio de prueba, aparece una indicación de que se ha iniciado el flujo de trabajo. Poco después, hay una indicación de que ha completado el flujo de trabajo. A continuación puede ver un ejemplo:

    Figura 6. Consola del host del servicio de prueba

    La ventana del Host del servicio de pruebas de flujo de trabajo con una línea que indica que se ha iniciado el flujo de trabajo, seguida de una línea que indica que ha finalizado. El GUID de la instancia de flujo de trabajo está al principio de cada línea.

    Nota:

    Si la consola Host de servicio de prueba no se abre, es posible que deba habilitar el depurador de flujos de trabajo. Haga clic con el botón derecho en el nombre del proyecto en el Explorador de soluciones y seleccione Propiedades. Abra la pestaña de SharePoint en el panel Propiedades y elija la casilla de verificación Habilitar flujo de trabajo de depuración.

  3. Vaya a la bandeja de entrada del correo electrónico (Outlook) de su cuenta de desarrollador de Office 365. Hay un correo electrónico con el asunto "Empleado está listo para el papeleo de RR. HH." donde Empleado es el nombre del empleado cuyo elemento ha editado. El cuerpo del correo electrónico dice "El empleado está esperando en el vestíbulo para rellenar los beneficios y formularios de empleo". A continuación se muestra un ejemplo:

    Figura 7. Correo electrónico enviado por flujo de trabajo

    Un mensaje de correo electrónico en Outlook desde el flujo de trabajo con el asunto

    Sugerencia

    Si el flujo de trabajo comienza pero no llega a completarse y no se envía el correo electrónico, pruebe a terminar la sesión de depuración y use F5 unas cuantas veces más antes de concluir que existe algún error en el código. A veces, el problema está en SharePoint Online. Si todavía tiene problemas, pruebe a agregar un tipo de contenido llamado ListFieldsContentType, si es que no lo hay ya, a la sección ContentTypes del archivo schema.xml. A continuación verá un ejemplo del marcado:

    <ContentType ID="0x0100781dd48170b94fdc9706313c82b3d04c" Name="ListFieldsContentType" Hidden="TRUE"></ContentType>

    Copie toda la sección FieldRefs del tipo de contenido NewEmployee en este nuevo tipo de contenido. Guarde el proyecto, retírese y vuelva a probar con F5.

  4. Para finalizar la sesión de depuración, cierre la ventana del explorador o detenga la depuración en Visual Studio. Cada vez que seleccione F5, Visual Studio retirará la versión anterior del complemento e instalará la más reciente.

  5. Trabajará con este complemento y con la solución de Visual Studio en otros artículos. Es recomendable que vuelva a retirar el complemento cuando deje de trabajar con él por un tiempo. Haga clic con el botón derecho en el proyecto en el Explorador de soluciones y seleccione Retirar.

Pasos siguientes

En el siguiente artículo de esta serie, agregará una página y un estilo personalizados a un complemento de SharePoint hospedado en SharePoint.