You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Este vídeo demonstra como executar scripts Python utilizando Power Automate.
Em um exemplo simples, podemos verificar seu funcionamento1:
A tentativa de executar um arquivo com scripts não está acontecendo. A primeira tentativa feita foi a de rodar um script criado pelo governo de Goias.
import pandas as pd
from pathlib import Path
#import ipdb; ipdb.set_trace(context=10)
# Carregar a planilha
files_path = Path.cwd()
df = pd.read_excel(f'{files_path}/Filtro_PAD_04_Folha_05_2024.xlsx')
# Agrupar por Nome_do_Servidor e CPF e calcular a soma dos valores
grouped = df.groupby(['Nome_do_Servidor', 'CPF'])['Valor_de_GDVV_a_Receber'].sum()
# Para cada grupo, atualizar a linha com o menor valor original
for (nome, cpf), soma in grouped.items():
indices = df[(df['Nome_do_Servidor'] == nome) & (df['CPF'] == cpf)].index
menor_valor = df.loc[indices, 'Valor_de_GDVV_a_Receber'].min()
df.loc[indices, 'Valor_de_GDVV_a_Receber'] = soma
# Excluir as linhas duplicadas
df.drop_duplicates(subset=['Nome_do_Servidor', 'CPF'], keep='first', inplace=True)
# Salvar a planilha atualizada
df.to_excel(f'{files_path}/planilha_atualizada_2.xlsx', index=False)
O arquivo executa perfeitamente via python <nome_arquivo.py> mas apresenta erros durante execução via Automate.
As tentativas envolveram cadastro do ambiente virtual que deveria ser utilizado2:
Ao tentar executar exec(open('C:/Users/m7522667/Documents/code/teste_goias/programa.py').read()) tivemos o erro3:
Traceback (most recent call last):
File "<string>", line 1, in <module>
LookupError: unknown encoding: cp1252
Cadastrei a variável de ambiente PYTHONIOENCODING = UTF-8, mas o erro continua:
Estou desconfiado que a versão do Python que o Automate utiliza atualmente (3.4) pode ser um dos causadores do problema2 já que "localmente" rodamos a versão 3.12.
Footnotes
Interessante notar que não devemos utilizar return como nos códigos Javascript (executados dentro de funções) e sim print() statements. ↩
Rodei somente from pandas import pd para ver o que aconteceria e recebi o erro: File "C:\Users\m7522667\Documents\code\teste_goias\venv\Lib\site-packages\pandas\__init__.py", line 1 from __future__ import annotations.... Como ele achou o arquivo C:\Users\m7522667\Documents\code\teste_goias\venv\Lib\site-packages\pandas\__init__.py suspeito que o erro é decorrente da versão pandas instalada, incompatível com a versão Python 3.4. ↩↩2
Execução deste código funcionou perfeitamente via console Python (python -i). ↩
The text was updated successfully, but these errors were encountered:
Como provavelmente a fonte do problema é a versão utilizada pelo Power Automate, pensei em criar um arquivo executável a partir do script em questão. A solução é bem simples e o video How to turn your Python file (.py) into an .exe (Tutorial 2021) mostra como é possível.
Basta intalar o pacote pyinstaller via pip install pyinstaller e rodar pyinstaller programa.py --onefile. O executável criado ficará na pasta dist.
Depois basta chamar a ação "Executar aplicativo" no Power Automate passando o caminho do executável.
@YanVieira1905, a descoberta em questão mostra que a chamada da API SEI conforme havia pensado não dará certo. A melhor saída, então, será montarmos a API em uma máquina virtual. Vou estruturar melhor o raciocínio para conversarmos.
Este vídeo demonstra como executar scripts Python utilizando Power Automate.
Em um exemplo simples, podemos verificar seu funcionamento1:
A tentativa de executar um arquivo com scripts não está acontecendo. A primeira tentativa feita foi a de rodar um script criado pelo governo de Goias.
O arquivo executa perfeitamente via
python <nome_arquivo.py>
mas apresenta erros durante execução via Automate.As tentativas envolveram cadastro do ambiente virtual que deveria ser utilizado2:
Ao tentar executar
exec(open('C:/Users/m7522667/Documents/code/teste_goias/programa.py').read())
tivemos o erro3:Cadastrei a variável de ambiente
PYTHONIOENCODING
=UTF-8
, mas o erro continua:Estou desconfiado que a versão do Python que o Automate utiliza atualmente (3.4) pode ser um dos causadores do problema2 já que "localmente" rodamos a versão 3.12.
Footnotes
Interessante notar que não devemos utilizar
return
como nos códigos Javascript (executados dentro de funções) e simprint()
statements. ↩Rodei somente
from pandas import pd
para ver o que aconteceria e recebi o erro:File "C:\Users\m7522667\Documents\code\teste_goias\venv\Lib\site-packages\pandas\__init__.py", line 1 from __future__ import annotations...
. Como ele achou o arquivoC:\Users\m7522667\Documents\code\teste_goias\venv\Lib\site-packages\pandas\__init__.py
suspeito que o erro é decorrente da versão pandas instalada, incompatível com a versão Python 3.4. ↩ ↩2Execução deste código funcionou perfeitamente via console Python (
python -i
). ↩The text was updated successfully, but these errors were encountered: