Sua primeira automaçãoEtapa 3 de 8

Início rápido: seu primeiro script

Um script é um arquivo com uma função main. O Waiso chama o main, passa os valores do cartão Entradas e mostra o que ele retornar. Nesta lição você escreve o daily-report — ele resume três notas — e roda pelo editor.

6 min de leituraAntes: Crie um projetoAbrir no Waiso
O que você vai aprender
  • Criar um script e escolher a linguagem
  • Escrever o main com uma entrada que tem valor padrão
  • Rodar e mudar a entrada sem mexer no código

Como um script roda

O editor tem três partes que importam hoje: o código no meio, o cartão Entradas ao lado e o painel abaixo do código com Saída, Logs e Problemas. O Waiso lê os parâmetros do main enquanto você digita e transforma cada um num campo do cartão Entradas, com o tipo da anotação ou do valor padrão.

docs-demoCódigohello.pySalvarPublicar
Entradas
Configure os dados desta execução.
VisualJSON
namestringopcionalworld
hello.py
1def main(name: str = "world"):2    print(f"saying hello to {name}")3    return {"message": f"Hello, {name}!"}
Python 3.15LSP
SaídaLogs1SucessoLimparRodar Ctrl ↵
{
  "message": "Hello, world!"
}
O editor: código no meio, o cartão Entradas com um campo por parâmetro do main e Rodar no topo.

Clicar em Rodar envia o código do editor e os valores das entradas para um worker. Ele roda exatamente o que você vê — salvo ou não — então dá para testar uma mudança antes de guardá-la.

Escreva e rode o daily-report

  1. Crie o script

    No projeto daily-report, abra Code, clique em + Novo e escolha Script. Digite daily-report em Nome do script, escolha TypeScript (ou qualquer linguagem abaixo) e clique em Criar script. O editor abre com um exemplo Hello, World.

  2. Troque o código inicial

    Cole o código abaixo da sua linguagem. Enquanto você digita, o cartão Entradas ganha um campo passing com 80 — o padrão do código.

  3. Rode

    Clique em Rodar (ou Ctrl+Enter). O painel mostra a execução indo de na fila a rodando a concluída, e depois o resultado em Saída. Clique em Salvar (Ctrl+S) para guardar o código.

daily-report.ts
export async function main(passing: number = 80) {
  const scores = [85, 92, 78]
  const total = scores.length
  const average = scores.reduce((sum, s) => sum + s, 0) / total
  const passed = scores.filter((s) => s >= passing).length
  console.log(`${total} scores, ${passed} passed`)
  return { total, average, passed }
}
Saída esperadaSucessoSaída de uma execução com passing = 80
{
  "total": 3,
  "average": 85,
  "passed": 2
}

O ponto de entrada em cada linguagem

LinguagemPonto de entradaEntradasResultado
Pythondef main(...)Parâmetros com type hints e padrõesreturn de qualquer valor que vire JSON
TypeScript / JavaScriptexport async function main(...)Parâmetros com tipos (TS) ou padrõesreturn de qualquer valor que vire JSON
C / C++int main(int argc, char *argv[])Comentários // @param nome tipo = padrão, lidos com waiso_arg_* / waiso::arg*waiso_set_result(json) / waiso::setResult(json)

Mude a entrada, não o código

Digite 90 no campo passing e rode de novo: passed cai para 1. É esse mesmo campo que um agendamento, um passo de flow ou uma chamada de API preenchem depois — os parâmetros do main são o contrato público do script. Mais sobre tipos, listas e datas em Entradas do script.

Quando não roda

  • Ele lança um erro. A Saída vira um bloco de erro com a mensagem e os frames do seu código; clique num frame para ir à linha. Veja Erros de script.
  • Rodar está desativado. Falta uma entrada obrigatória — todo parâmetro sem padrão precisa ser preenchido antes.
  • Fica na fila. Nenhum worker está online para o projeto; confira Workers.
3 / 8