Controle de Vencimento de Licenças com Sharepoint

Apresentação do controle de vencimento de licenças e outros requisitos através de listas do SharePoint e automações do Power Automate

Controle de Vencimento de Licenças, Autorizações e Certificados

               Uma demanda muito comum para os profissionais de Saúde, Segurança e Meio Ambiente é manter em dia Certificados e Licenças, tais como Licenças Ambientais, Autos de Vistoria de Corpo de Bombeiros e Alvarás entre outros tipos de documentos.

               É uma tarefa que pode se revelar desafiadora, pois demanda atenção e muitas vezes acaba passando desapercebida. Como os prazos geralmente são longos, podem sair do escopo de vigilância do profissional de SMS.

               Existem pelo menos duas formas tradicionais de gerenciar estes vencimentos: planilha eletrônica e sistemas especializados.

Gerenciamento por Planilha Eletrônica

A primeira é através de planilhas eletrônicas, que podem se parecer com esta:

TipoTítuloNúmeroEmissãoValidadeStatus
LicençaLO Planta XPTO55517/03/201928/04/2022Vencimento Próximo
AlvaráAlvará Prefeitura345617/03/202230/03/2026Válido
AVCBPlanta XPTO778828/02/202227/02/2023Válido

               Feita a planilha, ela deve ser periodicamente consultada e mantida atualizada e, conforme necessário e com antecedência suficiente, o profissional de SMS pode cumprir as etapas necessárias à renovação dos documentos listados.

               É uma forma muito comum de gerenciamento, que pode ser facilmente adaptada às características da empresa e necessidades de controle. É rápido e fácil criar uma coluna para cada variável que se deseja controlar. Sua eficácia depende de se mantê-la sempre sob vigilância. Algo que acaba não acontecendo caso o profissional em questão tenha outras demandas mais urgentes em sua rotina. No dia a dia movimentado de um profissional de SMS típico, quase tudo é mais urgente do que manter licenças e autorizações. Como forma de aumentar a eficácia dessa prática, podem ser usados lembretes na agenda eletrônica do Outlook ou delegar especificamente a algum membro da equipe.

               O uso de planilhas eletrônicas apresenta riscos. Caso ela seja armazenada no computador de alguém ou em área de acesso individual, seu controle fica restrito a uma pessoa que, quando não está disponível, não pode exercer controle e tomar as medidas necessárias. Quando a planilha fica em área de acesso geral de um departamento, é relativamente comum serem criadas cópias da planilha e perde-se o controle de qual a planilha correta, pois os dados começam a divergir.

Uso de Sistemas Especializados

               Empresas com mais recursos podem usar sistemas especializados para controle de requisitos legais ou até mesmo sistemas mais completos que controlam diversos dados da gestão de Saúde, Segurança e Meio Ambiente. É a solução ideal, porém costuma ser cara e complexa. Além do custo destes sistemas, sua operação pode ser bem difícil, requerendo muito treinamento e adaptação da forma de trabalho da empresa ao sistema. Essa adaptação forçada costuma causar insatisfação e pode gerar trabalho extra aos profissionais envolvidos.

Uso do Sharepoint

               Uma alternativa intermediária pode ser obtida com o uso da ferramenta Lista do Sharepoint e um pouco de automação com o Power Automate.

               Primeiramente, é necessário criar a lista, que pode ser feita a partir de uma planilha eletrônica já existente. Usando a planilha já apresentada como modelo, após importada como uma Lista do Sharepoint ela fica assim:

Lista do SharePoint
Lista do SharePoint

               Além da coluna observações, foi adicionada a coluna ‘Responsável’, que será usada na automação do Power Automate.

               A lista por si só já é bem prática e superior à planilha eletrônica. Algumas das vantagens da lista em relação à planilha são:

  • Repositório de dados único: não é possível (ou necessário) criar cópias da lista;
  • Dados exportáveis: caso seja necessária uma planilha para conferência de dados ou enviar para alguém de fora da organização, é possível exportá-la diretamente do Sharepoint
  • Anexos: Possibilidade de anexar arquivos do documento sob controle
  • Controle de Acesso: A lista só é acessível às pessoas da organização, podendo ser definido o tipo de acesso como somente leitura ou edição. Indo um passo além, é possível definir acessos de forma individualizada, em que determinados usuário somente veem registros específicos.

Automação com Power Automate

               O uso do SharePoint como repositório de dados permite com alguma facilidade o uso de automações do Power Automate para:

  • Verificar periodicamente quais certificados estão vencidos ou próximos ao seu vencimento
  • Enviar e-mails aos responsáveis pela renovação.

               Essas duas ações automáticas facilitam o trabalho dos profissionais de SMS responsáveis por manter licenças, que podem dedicar seu tempo às atividades de promoção de ambientes de trabalho seguros tão mais gratificantes e necessárias.

Implementação da automação

               Como forma de contribuir com profissionais que se interessem em usar automações para ajudar a controlar seus certificados, licenças e alvarás, explicaremos passo a passo como implementá-la, mostrando como se parece dentro do Power Automate.

               As etapas necessárias são explicadas uma a uma:

  1. Criação da Lista do Sharepoint: Após acessar o Aplicativo Lists do Microsoft 365 (online), deve ser criada uma lista, podendo ser criada “em branco” ou a partir da importação de uma planilha Excel. Em ambos os casos, é necessário tomar cuidado com o tipo de dados de cada coluna, especialmente as colunas de data que serão usadas para controle de emissão e vencimento dos documentos sob controle
  2. Automação com Power Automate: Deve ser acessado o Aplicativo Power Automate e, a partir de sua Página Inicial, escolher “Meus Fluxos”a partir do menu à esquerda e então usar a opção Novo Fluxo – Fluxo da nuvem instantâneo a partir do Menu superior. O fluxo criado deverá se parecer com esse:
Fluxo Geral
Fluxo Geral
Detalhamento da etapa ‘Aplicar a cada’

Detalhamento de cada etapa

               Cada etapa é apresentada e tem seu modo de funcionamento apresentado. Alguns detalhes sobre como criar cada etapa, ordená-las e renomeá-las é omitido de propósito para reduzir o tamanho do artigo e porque usar o Power Automate exige algum conhecimento prévio ou algum estudo.

Recurrence

Recorrência
Recorrência

               A parametrização acima estabelece que esse fluxo será acionado automaticamente todos os domingos a partir de 20/03/2022 às 2h45min.

Inicializar ‘Dias Antes’

Inicializar Dias Antes
Inicializar Dias Antes

               Aqui é estabelecido o prazo de antecedência para avaliar a aproximação do vencimento. Nesse caso, as avaliações são parametrizadas para serem feitas com sessenta dias.

Obter Itens Vencimento

Obter Itens Pendentes
Obter Itens Pendentes

               Essa é a parte da automação que verifica a lista do SharePoint e filtra aquelas cujo prazo de vencimento é maior do que sessenta dias a partir de hoje. Na forma de escrever do Power Automate, a consulta de filtro fica:

'formatdatetime(addDays(utcNow(),variables('Dias_Antes')),'yyyy-MM-dd')' ge DueDate

Onde:

  • ge é o operador matemático de comparação “maior ou igual a” (greater or equal than);
  • DueDate é o nome da coluna da lista do SharePoint que contém a data de vencimento;

Condição – Nenhuma Licença Vencida

Condição Nenhuma Licença Vencida
Condição Nenhuma Licença Vencida

               A condição verifica se a quantidade de elementos do conjunto estabelecido na etapa anterior é igual a zero. Em caso positivo, o fluxo para, não há nada a ser feito. A condição é escrita como:

length(outputs('Obter_itens_Vencimento')?['body/value'])

Selecionar Responsáveis com pendências

Selecionar responsáveis com pendências
Selecionar responsáveis com pendências

               Caso o fluxo tenha seguido, são selecionados e-mail e nome da coluna Responsável que é do tipo Pessoas ou Grupos.

Inicializar variável myarray

Inicializar variável myarray
Inicializar variável myarray

               Aqui é usado um truque matemático para capturar somente os nomes dos responsáveis com pendências. Isso é feito aplicando a função união de conjuntos “union” à seleção da etapa anterior com ela mesma:

union(body(‘Selecionar_Responsáveis_com_pendências’),body(‘Selecionar_Responsáveis_com_pendências’))

Aplicar a cada responsável com pendência

Aplicar a cada responsável com pendência
Aplicar a cada responsável com pendência

               A cada item do conjunto composto por responsáveis com pendências são aplicadas as ações de obter os requisitos pendentes para o responsável em questão e que estejam pendentes. É usada a consulta de filtro, onde CurrentOwner é a coluna “Responsável”.

(CurrentOwner/EMail eq '@{items('Aplicar_a_cada_responsável_com_pendência')?['Resp']}') and ('@{formatdatetime(addDays(utcNow(), variables('Dias_Antes')), 'yyyy-MM-dd')}' ge DueDate)
Compor Tabela
Compor Tabela

               São selecionadas e formatadas as colunas que se deseja comunicar ao responsável. É necessário formatar as colunas de data para torná-las mais compreensíveis aos usuários:

  • Data Emissão: formatDateTime(item()?[‘PurchaseDate’],’dd/MM/yyyy’)
  • Data Validade: formatDateTime(item()?[‘DueDate’],’dd/MM/yyyy’)

               Com os dados selecionados, é criada uma tabela HTML, que é formatada na etapa seguinte com a operação “Compor estilo css”, em que é aplicado o seguinte template de estilo css à saída da etapa anterior:

<style>
table {
  border: 1px solid #1C6EA4;
  background-color: #EEEEEE;
  width: 100%;
  text-align: left;
  border-collapse: collapse;
}
table td, table th {
  border: 1px solid #AAAAAA;
  padding: 3px 2px;
}
table tbody td {
  font-size: 13px;
}
table thead {
  background: #1C6EA4;
  border-bottom: 2px solid #444444;
}
table thead th {
  font-size: 15px;
  font-weight: bold;
  color: #FFFFFF;
  border-left: 2px solid #D0E4F5;
}
table thead th:first-child {
  border-left: none;
}
</style>
@{body('Criar_Tabela_HTML')}
Enviar e-mail
Bloco de automação para enviar e-mail

               Finalmente, é solicitado o envio de um e-mail a cada responsável, com uma tabela de suas pendências de renovação. O bloco de automação para envio de e-mails permite usar variáveis e saídas das etapas anteriores para customizar a mensagem para cada usuário. Importante notar que no exemplo, o campo “Para” está em branco. Em casos reais, deve ter pelo menos um destinatário, que pode ser fixo ou obtido de etapas anteriores do fluxo.

               O e-mail recebido pelo responsável tem texto semelhante ao exibido abaixo:

Caro SILVA Fulano (XPTO),

Seguem as licenças pendentes sob sua responsabilidade:

IDTipoNúmeroData EmissãoData ValidadeStatusResponsável
1AVCB33317/03/202028/03/2021VencidoSILVA Fulano (XPTO)
2Licença55517/03/202228/04/2022Próximo ao VencimentoSILVA Fulano (XPTO)


Verifique-as no Controle de Vencimento de Licenças e planeje sua atualização.

Obrigado.

Conclusão

               A adoção de listas do SharePoint em substituição às planilhas eletrônicas costuma receber alguma resistência por parte dos próprios profissionais de Saúde e Segurança, que perdem um pouco da flexibilidade das planilhas em um primeiro momento, mas a troca certamente compensa pela maior confiabilidade e segurança dos dados.

               Quanto ao Power Automate, sua curva de aprendizado é razoavelmente suave e seu conceito de montagem de fluxos em blocos lógicos é prático. Uma vez que se entende o conceito básico, fica fácil replicar fluxos.

               O uso de listas do SharePoint conjugadas a automações do Power Automate é uma solução muito interessante para se fazer controle de documentos com vencimento. Seu uso é muito superior a planilhas eletrônicas em termo de segurança e confiabilidade Seu custo tende a ser baixo, dado que boa parte das organizações já usam SharePoint como parte de suas assinaturas do Microsoft 365 e o Power Automate costuma estar disponível, embora subutilizado nas organizações.

Compartilhe seu amor
Imagem padrão
Leonidas Brasileiro
Artigos: 77