Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste cenário, está a gerir um projeto. Utiliza uma folha de cálculo do Excel para controlar os status dos seus funcionários todos os meses. Muitas vezes, tem de lembrar as pessoas para preencherem os respetivos status, pelo que decidiu automatizar esse processo de lembrete.
Irá criar um fluxo do Power Automate para enviar mensagens a pessoas com campos status em falta e aplicar as respetivas respostas à folha de cálculo. Para tal, irá desenvolver um par de scripts para processar o trabalho com o livro. O primeiro script obtém uma lista de pessoas com estados em branco e o segundo script adiciona uma cadeia de status à linha certa. Também irá utilizar os Cartões Ajustáveis do Teams para que os funcionários introduzam os respetivos status diretamente a partir da notificação.
Competências de scripting abrangidas
- Criar fluxos no Power Automate
- Transmitir dados para scripts
- Devolver dados de scripts
- Cartões Ajustáveis do Teams
- Tabelas
Pré-requisitos
Este cenário utiliza o Power Automate e o Microsoft Teams.
Instruções de configuração
Transferir o livro
Transfira o livro de exemplo para o seu OneDrive.
Abra a pasta de trabalho no Excel.
Criar os scripts
Em primeiro lugar, precisamos de um script para obter todos os funcionários com status relatórios em falta na folha de cálculo. No separador Automatizar , selecione Novo Script>Criar no Editor de Código. Cole o seguinte script no editor.
/** * This script looks for missing status reports in a project management table. * * @returns An array of Employee objects (containing their names and emails). */ function main(workbook: ExcelScript.Workbook): Employee[] { // Get the first worksheet and the first table on that worksheet. let sheet = workbook.getFirstWorksheet() let table = sheet.getTables()[0]; // Give the column indices names matching their expected content. const NAME_INDEX = 0; const EMAIL_INDEX = 1; const STATUS_REPORT_INDEX = 2; // Get the data for the whole table. let bodyRangeValues = table.getRangeBetweenHeaderAndTotal().getValues(); // Create the array of Employee objects to return. let people: Employee[] = []; // Loop through the table and check each row for completion. for (let i = 0; i < bodyRangeValues.length; i++) { let row = bodyRangeValues[i]; if (row[STATUS_REPORT_INDEX] === "") { // Save the email to return. people.push({ name: row[NAME_INDEX].toString(), email: row[EMAIL_INDEX].toString() }); } } // Log the array to verify we're getting the right rows. console.log(people); // Return the array of Employees. return people; } /** * An interface representing an employee. * An array of Employees will be returned from the script * for the Power Automate flow. */ interface Employee { name: string; email: string; }Guarde o script com o nome Obter Pessoas.
Em seguida, precisamos de um segundo script para processar o status cartões de relatório e colocar as novas informações na folha de cálculo. No painel de tarefas Editor de Código, selecione Novo Script>Criar no Editor de Código. Cole o seguinte script no editor.
/** * This script applies the results of a Teams Adaptive Card about * a status update to a project management table. * * @param senderEmail - The email address of the employee updating their status. * @param statusReportResponse - The employee's status report. */ function main(workbook: ExcelScript.Workbook, senderEmail: string, statusReportResponse: string) { // Get the first worksheet and the first table in that worksheet. let sheet = workbook.getFirstWorksheet(); let table = sheet.getTables()[0]; // Give the column indices names matching their expected content. const NAME_INDEX = 0; const EMAIL_INDEX = 1; const STATUS_REPORT_INDEX = 2; // Get the range and data for the whole table. let bodyRange = table.getRangeBetweenHeaderAndTotal(); let tableRowCount = bodyRange.getRowCount(); let bodyRangeValues = bodyRange.getValues(); // Create a flag to denote success. let statusAdded = false; // Loop through the table and check each row for a matching email address. for (let i = 0; i < tableRowCount && !statusAdded; i++) { let row = bodyRangeValues[i]; // Check if the row's email address matches. if (row[EMAIL_INDEX] === senderEmail) { // Add the Teams Adaptive Card response to the table. bodyRange.getCell(i, STATUS_REPORT_INDEX).setValues([ [statusReportResponse] ]); statusAdded = true; } } // If successful, log the status update. if (statusAdded) { console.log( `Successfully added status report for ${senderEmail} containing: ${statusReportResponse}` ); } }Guarde o script com o nome Guardar Estado.
Criar o fluxo do Power Automate
Abra o separador Criar do Power Automate.
Dica
Se ainda não criou um fluxo, marcar o nosso tutorial Começar a utilizar scripts com o Power Automate para aprender as noções básicas.
Criar um novo fluxo de cloud instantânea.
Selecione Acionar manualmente um fluxo a partir das opções e selecione Criar.
O fluxo tem de chamar o script Obter Pessoas para obter todos os funcionários com campos de status vazios. No construtor de fluxos, selecione o + botão e Adicionar uma ação. Selecione a ação Executar script do conector do Excel Online (Empresas). Indique as seguintes entradas para o passo de fluxo:
- Localização: OneDrive for Business
- Biblioteca de Documentos: OneDrive
- Ficheiro: task-reminders.xlsx (Escolhido através do browser de ficheiros)
- Script: Obter Pessoas
Em seguida, o fluxo tem de processar cada Funcionário na matriz devolvida pelo script. Adicione a card adaptável do conector do Microsoft Teamse aguarde por uma ação de resposta.
O envio de um Cartão Ajustável requer que o JSON do card seja fornecido como a Mensagem. Pode utilizar a Designer cartão ajustável para criar cartões personalizados. Para este exemplo, utilize o seguinte JSON.
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "TextBlock", "size": "Medium", "weight": "Bolder", "text": "Update your Status Report" }, { "type": "Image", "altText": "", "url": "https://i.imgur.com/f5RcuF3.png" }, { "type": "TextBlock", "text": "This is a reminder to update your status report for this month's review. You can do so right here in this card, or by adding it directly to the spreadsheet.", "wrap": true }, { "type": "Input.Text", "placeholder": "My status report for this month is...", "id": "response", "isMultiline": true } ], "actions": [ { "type": "Action.Submit", "title": "Submit", "id": "submit" } ] }Para o campo Destinatário , adicione e-mails a partir do conteúdo dinâmico (a seleção terá o logótipo do Excel junto ao mesmo). Adicionar e-mail faz com que o passo do fluxo esteja rodeado por um para cada bloco. Isto significa que a matriz será iterada pelo Power Automate.
Preencha os restantes campos da seguinte forma:
- Publicar como: Bot de fluxo
- Publicar em: Conversar com o bot do Flow
- Mensagem de atualização: Obrigado por submeter o seu relatório de status. A resposta foi adicionada com êxito à folha de cálculo.
No bloco Para cada, seguindo a card Pós-adaptável e aguarde por uma ação de resposta, adicione uma nova ação. Selecione a ação Executar script do conector do Excel Online (Empresas). Indique as seguintes entradas para o passo de fluxo:
- Localização: OneDrive for Business
- Biblioteca de Documentos: OneDrive
- Ficheiro: task-reminders.xlsx (Escolhido através do browser de ficheiros)
- Script: Guardar Estado
- senderEmail: e-mail (conteúdo dinâmico do Excel)
- statusReportResponse: resposta (conteúdo dinâmico do Teams)
Guarde o fluxo. O estruturador de fluxo deve ter um aspeto semelhante à imagem seguinte.
Executar o fluxo
Para testar o fluxo, certifique-se de que todas as linhas de tabela com status em branco utilizam um endereço de e-mail associado a uma conta do Teams (provavelmente deve utilizar o seu próprio endereço de e-mail durante os testes). Utilize o botão Testar na página do editor de fluxos ou execute o fluxo através do separador Os meus fluxos . Certifique-se de que permite o acesso quando lhe for pedido.
Deverá receber um Cartão Ajustável do Power Automate através do Teams. Depois de preencher o campo status na card, o fluxo continuará e atualizará a folha de cálculo com o status que fornecer.
Antes de executar o fluxo
Receber o Cartão Ajustável
Depois de executar o fluxo