Bom dia a todos! Hoje, gostaria de compartilhar um pequeno exemplo de automação do processo de criação de solicitações de desligamento de novos funcionários usando os produtos Microsoft SharePoint, PowerApps, Power Automate e Teams. Para implementar esse processo, não será necessário adquirir planos de usuário separados do PowerApps e Power Automate; basta ter uma assinatura do Office365 E1/E3/E5. No site do SharePoint, criaremos listas e colunas, o PowerApps ajudará a criar o formulário, e o Power Automate fornecerá as ferramentas para configurar a lógica dos processos de negócios. Vamos conectar o processo final à equipe do MS Teams. Não vamos perder tempo e ver como isso se desenrola.

Na primeira etapa, criamos listas e atributos. Precisamos das seguintes listas:
- Solicitações de desligamento de funcionários
- Departamentos
- RH por departamentos
- Administradores
Cada lista desempenhará um papel e veremos qual exatamente. Criamos os atributos e configuramos o menu de navegação:

PowerApps
Agora, vamos criar um formulário para a lista "Solicitações de desligamento de funcionários" usando o PowerApps. Ele ficará assim:

No campo "Funcionário", seleciona-se da lista de usuários do Office 365, "Data de desligamento" é escolhida no calendário, "Departamento" é selecionado do diretório de departamentos, e "RH" é escolhido do diretório "RH por departamentos":

Mas é necessário filtrar a lista de RH disponíveis para seleção com base no departamento indicado no formulário. Usaremos uma fórmula para filtrar dados no PowerApps. Para a propriedade "Items" do campo "RH", escrevemos:

Além disso, no formulário, é possível fazer pequenas configurações para o valor padrão do campo Status. Para a propriedade "Default" do campo "Status", escrevemos:

Se o formulário de criação do item for aberto, o campo "Status" receberá o valor "Novo"; caso contrário, o campo status do formulário será preenchido com o valor da coluna do SharePoint para o item atual.
Um dos problemas do PowerApps é a dificuldade de obter dados de grupos do SharePoint. Isso torna difícil configurar a visibilidade/acessibilidade dos campos ou objetos no formulário, caso você queira vincular a participação do usuário em um grupo do SharePoint. Mas podemos contornar isso. Para isso, criamos previamente a lista de Administradores:

Nesta lista, existe um campo "Funcionário" do tipo "Usuário ou grupo", que é exibido apenas no formulário, e o campo "Nome", onde se escreve o nome do funcionário selecionado, exibido apenas na visualização da lista. Agora, vamos fazer um pequeno truque no PowerApps. Por exemplo, podemos configurar a disponibilidade de qualquer campo com base na presença do usuário atual na lista de Administradores. Encontramos a propriedade "Modo de Exibição" do campo "Data de Saída" e escrevemos:

De acordo com esta fórmula, se houver pelo menos um funcionário na lista de Administradores cujo login coincida com o login do usuário atual, o campo estará disponível para edição, caso contrário, estará disponível apenas para visualização. Para maior confiabilidade, convertemos o login para minúsculas, pois podem ocorrer várias situações.
Você pode ter notado que no título do formulário existe um botão "Ações sobre o pedido":

Este botão irá redirecionar para outra tela, onde, para conveniência, estão reunidas todas as possíveis ações sobre o pedido:

Após clicar em cada botão, uma janela adicional de ações se abre, por exemplo, se a ação "Cancelar pedido" for escolhida, uma janela adicional com a possibilidade de inserir um comentário se abrirá:

Após clicar no botão "Confirmar", o status do pedido é alterado, e isso pode ser feito mesmo sem iniciar o fluxo do Power Automate. Utilizaremos a função "Patch" para a propriedade "OnSelect" do botão:

Com a função Patch, atualizamos o item da lista de pedidos, filtrando-o pelo identificador do item atual. Alteramos o valor do campo "Status" e fazemos a transição para a tela principal. Para os outros botões de ação, a lógica é semelhante.
Resta configurar o fluxo de aprovação. Vamos fazê-lo da maneira mais simples.
Power Automate
Nosso fluxo de aprovação será iniciado automaticamente quando um pedido for criado. Durante a execução, o status do pedido será alterado, o gerente do departamento será obtido e uma notificação por e-mail sobre o novo pedido será enviada ao gerente. Para determinar o gerente, temos o diretório "Departamentos":

Criar fluxo Power Automate:

Durante a execução deste fluxo, o gerente do departamento receberá uma notificação por e-mail sobre a criação de um novo pedido e poderá clicar no link para tomar uma decisão, pressionando o botão:

O clique dos botões 'Aprovar' ou 'Recusar' também inicia um fluxo do Power Automate, que muda o status da solicitação e envia uma notificação por e-mail ao especialista de RH:

O processo está pronto.
Teams
E o toque final – organizar a colaboração com este processo. Para isso, conectamos o processo à equipe do MS Teams:

Agora, todos os membros da equipe MS Teams têm acesso ao processo de integração de novos funcionários em uma guia separada.
Claro, na lógica do fluxo, pode-se prever uma aprovação em várias etapas, além de haver a possibilidade de usar o componente Approvals para atribuir tarefas no Power Automate. Também é possível configurar relatórios e criar notificações que serão enviadas para o chatbot do Microsoft Teams. Mas falaremos sobre isso em próximos artigos. Obrigado pela atenção e tenham todos um bom dia!
Fonte: habr.com
