¡Buenos días a todos! Hoy me gustaría compartir un pequeño ejemplo de automatización del proceso de creación de solicitudes para la salida de nuevos empleados utilizando productos de Microsoft SharePoint, PowerApps, Power Automate y Teams. Para implementar este proceso no será necesario comprar planes de usuario individuales de PowerApps y Power Automate, será suficiente con una suscripción de Office365 E1/E3/E5. En el sitio de SharePoint crearemos listas y columnas, PowerApps ayudará a crear el formulario, y Power Automate brindará posibilidades para configurar la lógica de los procesos de negocio. Conectaremos el proceso final al equipo de MS Teams. No perdamos tiempo y veamos qué sale de esto.

En la primera etapa creamos las listas y los requisitos. Necesitaremos las listas:
- Solicitudes para la salida de empleados
- Departamentos
- RRHH por departamentos
- Administradores
Cada lista jugará su papel en adelante, y veremos cuál es exactamente. Creamos los requisitos y configuramos el menú de navegación:

PowerApps
Ahora, hagamos un formulario para la lista 'Solicitudes para la salida del empleado' utilizando PowerApps. En su versión final, se verá así:

En el campo 'Empleado' se selecciona de la lista de usuarios de Office 365, 'Fecha de salida' se elige del calendario, 'Departamento' se indica del directorio de departamentos, y 'RRHH' se selecciona del directorio 'RRHH por departamentos':

Pero es necesario hacer que la lista de RRHH, disponibles para elegir, se filtre según el departamento indicado en el formulario. Utilizaremos una fórmula para filtrar los datos en PowerApps. Para la propiedad 'Items' del campo 'RRHH' escribimos:

Además, en el formulario se pueden hacer pequeñas configuraciones de valor predeterminado para el campo Estado. Para la propiedad 'Default' del campo 'Estado' escribimos:

Si se abre el formulario de creación de un elemento, se grabará el valor 'Nuevo' en el campo 'Estado', de lo contrario, en el campo de estado del formulario se sustituirá el valor de la columna de SharePoint para el elemento actual.
Uno de los problemas de PowerApps es la dificultad para obtener datos de los grupos de SharePoint. Como resultado, no es fácil configurar la visibilidad/accesibilidad de los campos u objetos en el formulario si se desea vincular a la inclusión del usuario en un grupo de SharePoint. Sin embargo, se puede hacer una maniobra alternativa. Para ello, hemos creado previamente una lista de Administradores:

En esta lista hay un campo llamado «Empleado» con el tipo «Usuario o grupo», que se muestra solo en el formulario, y un campo «Nombre» donde se escribe el nombre del empleado seleccionado, que se visualiza únicamente en la vista de la lista. Ahora, en PowerApps, vamos a hacer un pequeño truco. Por ejemplo, se puede ajustar la disponibilidad de cualquier campo basado en la condición de que el usuario actual esté en la lista de Administradores. Encontramos la propiedad «Display Mode» del campo «Fecha de salida» y escribimos:

Según esta fórmula, si hay al menos un empleado en la lista de Administradores cuyo inicio de sesión coincida con el inicio de sesión del usuario actual, entonces el campo estará disponible para edición; de lo contrario, estará solo en vista. Para mayor seguridad, convertimos el inicio de sesión a minúsculas, ya que pueden darse varias situaciones.
Puede que hayas notado que en el encabezado del formulario hay un botón llamado «Acciones sobre la solicitud»:

Este botón llevará a otra pantalla, donde, para mayor comodidad, se reúnen todas las posibles acciones sobre la solicitud:

Al hacer clic en cada botón se abre una ventana adicional de acciones, por ejemplo, si se elige la acción «Cancelar solicitud», se abrirá una ventana adicional con la opción de ingresar un comentario:

Al hacer clic en el botón «Confirmar», el estado de la solicitud cambia, y esto se puede hacer incluso sin iniciar el flujo de Power Automate. Utilizaremos la función «Patch» para la propiedad «OnSelect» del botón:

Con la función Patch actualizamos el elemento en la lista de solicitudes, filtrándolo por el identificador del elemento actual. Cambiamos el valor del campo «Estado» y regresamos a la pantalla principal. Para los demás botones de acciones, la lógica es similar.
Sigue configurando el flujo de aprobación. Lo haremos de la manera más simple posible.
Power Automate
Nuestro flujo de aprobación se activará automáticamente al crear una solicitud. Durante su ejecución, se cambiará el estado de la solicitud, se recibirá la información del jefe del departamento y se enviará una notificación por correo electrónico al jefe sobre la nueva solicitud. Para determinar al jefe, tenemos un directorio llamado «Departamentos»:

Creamos un flujo de Power Automate:

Durante la ejecución de este flujo, el jefe del departamento recibe una notificación por correo electrónico sobre la creación de una nueva solicitud y puede seguir el enlace para tomar una decisión, haciendo clic en el botón:

Hacer clic en el botón «Aprobar» o «Rechazar» también inicia un flujo de Power Automate que cambia el estado de la solicitud y envía una notificación por correo electrónico al especialista de HR:

El proceso está listo.
Teams
Y el toque final: organizar la colaboración en este proceso. Para ello, conectamos el proceso con el equipo de MS Teams:

Ahora, todos los miembros del equipo de MS Teams tienen acceso al proceso de incorporación de nuevos empleados en una pestaña separada.
Por supuesto, en la lógica del flujo se puede prever una aprobación en múltiples etapas, además de que existe la posibilidad de usar el componente Approvals para asignar tareas en Power Automate. También se pueden configurar informes y crear notificaciones que se enviarán al chatbot de Microsoft Teams. Pero eso será tratado en próximos artículos. ¡Gracias por su atención y que tengan un buen día!
Fuente: habr.com
