Solucionar Problemas de Scripts do Office em execução no Power Automate

O Power Automate executa scripts em seu nome em sessões independentes do Excel. Isso causa algumas alterações comportamentais que podem criar problemas com determinados scripts ou cenários. Também há limitações e comportamentos da plataforma Power Automate que os escritores de scripts devem conhecer. Não deixe de ler os artigos Solucionar problemas de Scripts do Office e limites e requisitos de plataforma com Scripts do Office, pois muitas dessas informações também se aplicam a scripts em fluxos.

Dica

Se você está apenas começando a usar os Scripts do Office com o Power Automate, comece com Executar Scripts do Office com o Power Automate para saber mais sobre as plataformas.

Importante

Para usar os Scripts do Office no Power Automate, você deve ter uma licença comercial do Microsoft 365. As licenças do Office 365 Enterprise E1 e do Office 365 F3 podem usar Scripts com o Power Automate, mas não têm integrações com o Power Automate diretamente no Excel.

Evite referências relativas

O Power Automate executa seu script na pasta de trabalho escolhida do Excel em seu nome. A pasta de trabalho pode ser fechada quando isso acontece. Qualquer API que dependa do estado atual do usuário, como Workbook.getActiveWorksheet, pode se comportar de forma diferente no Power Automate. Isso ocorre porque as APIs são baseadas em uma posição relativa da exibição ou do cursor do usuário e essa referência não existe em um fluxo do Power Automate.

Algumas APIs de referência relativas geram erros no Power Automate. Outros têm um comportamento padrão que implica o estado de um usuário. Ao criar seus scripts, certifique-se de usar referências absolutas para planilhas e intervalos. Isso torna o fluxo do Power Automate consistente, mesmo que as planilhas sejam reorganizadas.

Métodos de script que falham em fluxos do Power Automate

Os métodos a seguir geram um erro e falham quando chamados de um script em um fluxo do Power Automate.

Classe Método
Gráfico activate
Range select
Pasta de trabalho getActiveCell
Pasta de trabalho getActiveChart
Pasta de trabalho getActiveSlicer
Pasta de trabalho getSelectedRange
Pasta de trabalho getSelectedRanges

Métodos de script com um comportamento padrão em fluxos do Power Automate

Os métodos a seguir usam um comportamento padrão, em vez do estado atual de qualquer usuário.

Classe Método Comportamento do Power Automate
Pasta de trabalho getActiveWorksheet Retorna a primeira planilha na pasta de trabalho ou a planilha ativada atualmente pelo Worksheet.activate método.
Planilha activate Marca a planilha como a planilha ativa para fins de Workbook.getActiveWorksheet.

A atualização não tem suporte total no Power Automate

Os scripts do Office não podem atualizar a maioria dos dados quando executados no Power Automate. A maioria dos métodos de atualização, como PivotTable.refresh, não faz nada quando chamado em um fluxo. Workbook.refreshAllDataConnections só é atualizado quando o PowerBI é a fonte. Além disso, o Power Automate não dispara uma atualização de dados para fórmulas que usam links de pasta de trabalho.

Métodos de script que não fazem nada nos fluxos do Power Automate

Os métodos a seguir não fazem nada em um script quando chamados por meio do Power Automate. Eles ainda retornam com sucesso e não geram erros.

Classe Método
PivotTable refresh
Pasta de trabalho refreshAllPivotTables
Planilha refreshAllPivotTables

Métodos de script com um comportamento diferente no Power Automate

Os métodos a seguir agem de forma diferente nos fluxos do Power Automate do que quando executados pelo Excel.

Classe Método Comportamento do Power Automate
Pasta de trabalho refreshAllDataConnections Atualiza apenas fontes do PowerBI. Para outras fontes, o método retorna com êxito, mas não faz nada.

Selecione pastas de trabalho com o controle do navegador de arquivos

Ao criar a etapa Executar script de um fluxo do Power Automate, você precisa selecionar qual pasta de trabalho faz parte do fluxo. Use o navegador de arquivos para selecionar a pasta de trabalho, em vez de digitar manualmente o nome da pasta de trabalho.

A ação Executar script do Power Automate mostrando a opção Mostrar Seletor de Navegador de Arquivos.

Para obter mais contexto sobre a limitação do Power Automate e uma discussão sobre possíveis soluções alternativas para a seleção dinâmica de pastas de trabalho, consulte este tópico na Comunidade do Microsoft Power Automate.

Passar matrizes inteiras como parâmetros de script

O Power Automate permite que os usuários passem matrizes para conectores como uma variável ou como elementos únicos na matriz. O padrão é passar elementos únicos, o que cria a matriz no fluxo. Para scripts ou outros conectores que usam matrizes inteiras como argumentos, você precisa selecionar o botão Alternar para inserir matriz inteira para passar a matriz como um objeto completo. Este botão está no canto superior direito de cada campo de entrada de parâmetro da matriz.

O botão para alternar para inserir uma matriz inteira em uma caixa de entrada de campo de controle.

Diferenças de fuso horário

Os arquivos do Excel não têm uma localização ou fuso horário inerente. Toda vez que um usuário abre a pasta de trabalho, sua sessão usa o fuso horário local do usuário para cálculos de data. O Power Automate sempre usa UTC.

Se o script usar datas ou horas, pode haver diferenças comportamentais quando o script é testado localmente versus quando é executado por meio do Power Automate. O Power Automate permite converter, formatar e ajustar horas. Consulte Trabalhar com Datas e Horas dentro de seus fluxos para obter instruções sobre como usar essas funções no Power Automate e Passar dados de e para scripts no Power Automate para saber como fornecer essas informações de tempo para o script.

Os campos de parâmetro de script ou a saída retornada não aparecem no Power Automate

Há dois motivos pelos quais os parâmetros ou dados retornados de um script não são refletidos com precisão no construtor de fluxo do Power Automate.

A assinatura de um script é armazenada com o conector do Excel Business (Online) quando ele é criado. Remova o conector antigo e crie um novo para obter os parâmetros mais recentes e retornar valores para a ação Executar script .

Algumas APIs Web não estão disponíveis com fluxos do Power Automate

Algumas APIs Web, como TextEncoder e Crypto, podem não estar disponíveis ao executar Scripts do Office em fluxos do Power Automa. Consulte APIs Web do MDN para obter uma lista completa de APIs da Web.

O Power Automate retorna o erro *API* is not defined, em que *API* especifica uma biblioteca como TextEncoder, ao executar um script que usa uma API sem suporte.

Confira também