As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Código
As ações de código no Quick Automate permitem que você implemente uma lógica personalizada usando blocos de código Python, indo além do que as ações de automação padrão suportam. Eles são adequados para cálculos e transformações de dados complexos e são executados em um ambiente Python restrito para manter a segurança.
Dois tipos de ações de código:
Expressões de linha única: operações rápidas de uma linha que modificam variáveis sem retornar valores
Blocos de código personalizados: funções Multi-line Python para lógica complexa com parâmetros e valores de retorno
Quando usar ações de código:
Use blocos de código quando precisar:
Execute transformações de dados complexas que não estão disponíveis em ações padrão
Implemente cálculos ou lógica de negócios personalizados
Processar ou manipular estruturas de dados (listas, dicionários, JSON)
Trabalhe com datas, horários e fusos horários de maneiras personalizadas
Analise ou formate cadeias de caracteres com padrões complexos
Otimize o desempenho da automação consolidando várias ações em um bloco de código
Quando não usar ações de código:
Evite blocos de código quando:
Já existe uma ação de automação padrão para seu caso de uso
A operação é simples o suficiente para ações integradas
Você precisa interagir com APIs externas (em vez disso, use a integração da API REST)
Você precisa acessar sistemas de arquivos ou bancos de dados (usar integrações apropriadas)
Como acessar as ações do código:
Os blocos de código estão disponíveis por meio de várias interfaces:
Painel de ações (recomendado):
Abra sua automação no criador de automação
Clique no Painel de ações no lado direito
Localize “Bloco de código personalizado” na seção Ações de código
Arraste e solte o bloco de código em seu fluxo de trabalho de automação
Crie com o Assistant:
Disponível durante a geração do plano, quando o assistente determina que o código personalizado é necessário
O assistente sugere automaticamente blocos de código para operações complexas
Você pode solicitar blocos de código descrevendo suas necessidades lógicas personalizadas
Ações disponíveis:
Expressões de linha única
As expressões de linha única executam instruções Python de uma linha que realizam operações sem retornar um valor. Eles são ideais para modificações rápidas em variáveis existentes, como anexar listas, atualizar dicionários ou realizar cálculos simples que modificam o estado.
Propriedades:
Expressão (obrigatória): a expressão Python a ser executada (por exemplo, “my_list.append ('new item')”)
Exemplos:
Anexando à lista
my_list.append("1") my_list.append(new_item)Removendo itens da lista
task_list.remove(completed_task)
Bloco de código personalizado
Os blocos de código personalizados são funções Python de várias linhas que executam lógica complexa, aceitam parâmetros e retornam valores. Eles são a opção alternativa quando ações de automação padrão e expressões de linha única não são suficientes para suas necessidades.
Propriedades:
Título da função (obrigatório): identificador de nome para o bloco de código (por exemplo, "Calculate_Total“)
Função (obrigatório): bloco de código Python que contém sua lógica personalizada.
Etapa 1: Definir parâmetros
Clique no botão “Editar” para abrir o editor de código
No painel Parâmetros, clique em “Adicionar” para criar novos parâmetros
Insira nomes de parâmetros que correspondam às suas variáveis de automação
Os parâmetros estão disponíveis como argumentos de função
Etapa 2: escreva seu código Python
Valor de retorno (opcional): nome da variável para armazenar a saída da função
Siga a estrutura de blocos de código necessária (veja abaixo)
Implemente sua lógica personalizada dentro da função
Use somente bibliotecas aprovadas e funções integradas
Inclua uma declaração de retorno se você precisar gerar dados
Estrutura do bloco de código
Todos os blocos de código devem seguir esse formato específico:
@code_block() def your_function_name(parameter1, parameter2, parameter3): ------------------------------------------------------------------------------------- """ Optional: Add a docstring describing what your function does """ # Your custom logic here result = parameter1 + parameter2 + parameter3 return result
Built-in Funções e importações do Python
Todas as funções incorporadas padrão do Python estão disponíveis sem importações (len, str, int, etc.)
Bibliotecas padrão aprovadas (segurança restrita)
Os blocos de código SÓ podem importar essas bibliotecas padrão:
base64- Base 64 encoding/decodingdatetime- Operações de data e horajson- Análise e geração de JSONmath- Funções matemáticasre- Expressões regulareszoneinfo- Tratamento de fuso horário
nota
Não é possível importar bibliotecas padrão diferentes das listadas acima.
Não é possível instalar ou importar bibliotecas de terceiros.
pip installnão é suportado em blocos de código.
Limitações
Ambiente Python restrito com acesso limitado à biblioteca. O ambiente de execução é baseado em RestrictedPython, um subconjunto do Python 3.10.
Os blocos de código não podem invocar outros blocos de código ou ações
Práticas recomendadas
Mantenha os blocos de código simples e focados
Use nomes de funções descritivos
Sempre prefira ações pré-criadas quando disponíveis
Teste seus blocos de código minuciosamente, pois as opções de depuração focadas são limitadas)
Exemplo de casos de uso do
Operações matemáticas (Calcular propriedades do círculo - raio como parâmetro)
def function (radius): return { "radius": radius, "diameter": 2 * radius, "circumference": round(2 * math.pi * radius, 2), "area": round(math.pi * radius ** 2, 2) }Obtendo a atualidade date/time
def function (): now = datetime.datetime.now() return { "current_date": now.strftime("%Y-%m-%d"), "current_time": now.strftime("%H:%M:%S"), "formatted": now.strftime("%B %d, %Y at %I:%M %p"), "iso_format": now.isoformat(), "timestamp": now.timestamp() }Calculando diferenças de datas - Data de início e data de término como parâmetros
def function _(start_date_str, end_date_str): # Parse date strings (format: YYYY-MM-DD)_ start = datetime.datetime.strptime(start_date_str, "%Y-%m-%d") end = datetime.datetime.strptime(end_date_str, "%Y-%m-%d") _# Calculate difference_ difference = end - start return { "days": difference.days, "weeks": difference.days // 7, "start": start_date_str, "end": end_date_str }Correspondência de padrões e manipulação de texto usando expressões regulares (validação de endereços de e-mail, números de telefone etc.)
def function (email, phone, zip_code): email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' phone_pattern = r'^\d{3}-\d{3}-\d{4}$' zip_pattern = r'^\d{5}(-\d{4})?$' return { "email_valid": bool(re.match(email_pattern, email)), "phone_valid": bool(re.match(phone_pattern, phone)), "zip_valid": bool(re.match(zip_pattern, zip_code)) }Operações de lista (filtrar e transformar lista)
def function (numbers, threshold): # Filter numbers above threshold and calculate statistics filtered = [n for n in numbers if n > threshold] if filtered: return { "filtered_numbers": filtered, "count": len(filtered), "sum": sum(filtered), "average": sum(filtered) / len(filtered), "min": min(filtered), "max": max(filtered) } else: return { "filtered_numbers": [], "count": 0, "message": "No numbers above threshold" }