INTRODUÇÃO
Post anterior: Do Caos ao Prompt T4E04: Desenvolvimento do App AG2P – Evento "Iniciou tarefa do negócio"
Evento “Terminou tarefa do negócio”
Link da conversa com o Gemini, na qual foi apresentado um Prompt contendo os itens Objetivo, Contexto, Ferramentas e Especificações, para geração do código para implementar o evento
"Terminou tarefa do negócio": https://g.co/gemini/share/36a9733b3196
Comando ao Gemini para solicitar a implementação do evento
Objetivo
Escreva o código em Google Apps Script, para automatizar o
evento "Terminou tarefa do negócio", que pertence ao fluxo de
trabalho descrito no item Contexto, que segue abaixo.
Contexto
O contexto é de um fluxo de trabalho que serve para coletar
e registrar dados para acompanhamento do progresso diário de um processo
pessoal repetitivo, que apresenta os resultados no Relatório de Desvio de Meta
(RDM) com um gráfico Burndown.
Os dados coletados diariamente, formarão um histórico para
calcular o indicador de produtividade e emitir, mensalmente, o gráfico
de Controle da Produtividade e o de Pareto.
O processo pessoal começa quando a pessoa decide iniciar a jornada de trabalho e abre o app (que será construído), para acessar o GRUPO DE PROCESSOS DO SERVIÇO (GPS).
O primeiro evento do dia, após o início do app, é
"Abriu RDM", que muda o estado do app de “Após início” para "RDM
inicializada".
A partir do estado "RDM inicializada", o diálogo será entre a pessoa e a aba RDM, da planilha GPS, que permanece em determinado estado até receber um evento, que causa e execução de uma ação e a mudança para o próximo estado.
Esse ciclo se repete, até que a pessoa decida encerrar a jornada.
O processo pessoal termina quando a pessoa decide encerrar a jornada de trabalho e fecha o app.
A estrutura do diálogo entre o usuário e o app pode ser
explicada assim: “A pessoa iniciou o evento [Evento], para executar a ação
[Ação], detalhada em [Passos], acessando os dados [Planilha Google] de acordo
com as regras [Regras].
Ferramentas
As ferramentas usadas para automação deste processo pessoal
devem ser todas do Google Workspace.
Especificações
Segue abaixo o post da temporada 3 desta série, que contém as especificações do evento "Terminou tarefa do negócio", que faz parte deste comando:
As especificações do evento foram feitas com Finite State Machine (FSM), de tal forma que cada evento pode ser automatizado e testado de forma independente.
Resposta do Gemini com o código e a explicação
Explicação do Código:
terminouTarefaDoNegocio()
: A função principal que será executada quando o evento for disparado.- Definição de Nomes: As variáveis
nomePlanilhaGps
,abaRdmNome
, eabaGpsNome
armazenam os nomes da planilha e das abas para facilitar a referência. - Obtenção de Planilha e Abas: O código obtém a planilha ativa e as abas "RDM" e "GPS" usando
SpreadsheetApp.getActiveSpreadsheet()
egetSheetByName()
. - Verificação do Estado (Pré-condição - R36):
- Lê o valor da célula "T1" na aba "RDM", que contém o estado do app.
- Se o estado não for "RDM Ativa", o script registra um log e encerra a execução, pois a pré-condição não foi atendida.
- Registro do Tamanho da Tarefa (Ação - R05):
- Identificação da Última Tarefa: O código percorre a coluna "F" (Data Hora Fim) da aba "GPS" de baixo para cima para encontrar a última linha preenchida, assumindo que essa é a tarefa mais recentemente concluída.
- Extração de Dados: Obtém a fase da tarefa (coluna "B"), o tamanho em pontos (coluna "C") e a data e hora de fim (coluna "F") para a última tarefa concluída.
- Cálculo da Hora Cheia: Extrai a hora da
dataHoraFimTarefa
e adiciona 1 para obter a hora cheia (arredondamento para cima). - Determinação da Coluna RDM: Utiliza uma estrutura
switch
para determinar a coluna correspondente à fase da tarefa na aba "RDM" (intervalo D5:H14). Você precisará adaptar oscase
dentro doswitch
para corresponder exatamente aos códigos de fase que você utiliza e a qual coluna eles correspondem na sua aba "RDM". O exemplo assume que as fases "S01.1", "S01.2", etc., mapeiam para as colunas D, E, etc., respectivamente. - Determinação da Linha RDM: Calcula a linha na aba "RDM" com base na
horaCheia
. O exemplo assume que as linhas 5 a 14 correspondem às horas 0 a 9. Você precisará ajustar este cálculo com base na estrutura real do seu intervalo D5:H14 na aba "RDM". - Registro do Tamanho: Usa
abaRdm.getRange(linhaRdm, colunaRdm).setValue(tamanhoTarefa)
para escrever o tamanho da tarefa na célula correta da aba "RDM". - Log de Registro: Registra uma mensagem informando onde o tamanho da tarefa foi registrado.
- Manutenção do Estado (Ação - R36):
- Define explicitamente o valor da célula "T1" na aba "RDM" como "RDM Ativa", garantindo que o estado seja mantido após a execução do evento.
- Registra um log informando que o estado foi mantido.
- Log de Conclusão: Registra uma mensagem indicando que o evento "Terminou tarefa do negócio" foi concluído.
Como Usar:
- Abra sua planilha GPS no Google Sheets.
- Vá em "Extensões" > "Apps Script".
- Cole o código acima no editor de script.
- Salve o script (dê um nome significativo, como "AutomacaoRDM").
- Edite a seção de determinação da coluna RDM (o
switch
statement) e a determinação da linha RDM para corresponder à estrutura exata da sua aba "RDM". Certifique-se de que os códigos de fase nocase
correspondem aos seus dados na coluna "B" da aba "GPS" e que as colunas D a H da aba "RDM" representam as fases corretamente. Ajuste também o cálculo da linha com base em como as horas estão organizadas no intervalo D5:H14. - Para automatizar a execução deste script quando o evento "Terminou tarefa do negócio" acontecer (isso dependerá de como você está construindo seu "app"):
- Se o "app" for uma interface construída no Google Sheets: Você pode criar um botão ou usar um evento de mudança na planilha para disparar a função
terminouTarefaDoNegocio()
. - Se o "app" for externo ao Google Sheets: Você precisará usar a API do Google Apps Script (como
google.script.run
se for um web app do Apps Script) para chamar a funçãoterminouTarefaDoNegocio()
quando o evento ocorrer no seu app.
- Se o "app" for uma interface construída no Google Sheets: Você pode criar um botão ou usar um evento de mudança na planilha para disparar a função
Observações Importantes:
- Estrutura da Aba RDM: O código assume uma estrutura específica para a aba "RDM" (intervalo D5:H14 para registrar o tamanho das tarefas por hora e fase). Você precisará adaptar o código se a sua estrutura for diferente.
- Mapeamento de Fases: O mapeamento entre as fases da aba "GPS" e as colunas da aba "RDM" é crucial. Certifique-se de que o
switch
statement esteja configurado corretamente. - Organização das Horas na Aba RDM: O cálculo da linha na aba "RDM" depende de como as horas estão organizadas no intervalo D5:H14. Ajuste o cálculo (
4 + horaCheia
) conforme necessário. - Disparo do Evento: Este script apenas implementa a lógica para o evento "Terminou tarefa do negócio". A forma como esse evento é "disparado" (por interação do usuário no seu "app") precisará ser implementada separadamente, dependendo da natureza do seu "app".
- Tratamento de Erros: O código inclui alguns logs para ajudar na depuração, mas você pode adicionar tratamento de erros mais robusto, como verificar se os dados extraídos da aba "GPS" são válidos antes de tentar gravá-los na aba "RDM".
CONCLUSÃO
Neste episódio 5, da temporada 4 da série "Do Caos ao Prompt", foi apresentada a implementação do Evento "Terminou tarefa do negócio", realizada pelo Chatbot de IA Gemini 2.0 Flash.
As especificações do evento foram feitas em Finite State Machine (FSM).
Diferentemente dos episódios anteriores, fiz apenas um comando para obter o resultado esperado, que é o código Google Apps Script.
A diferença foi a adição destes itens no comando:
- Objetivo: definição da linguagem Google Apps Script, para automação
- Contexto: descrição do fluxo de trabalho a ser automatizado
- Ferramentas: definição da automação com ferramentas do Google Workspace
Próximo post: Do Caos ao Prompt T4E06: Desenvolvimento do App AG2P –
Evento "Ocorreu um incidente"
Nenhum comentário:
Postar um comentário