INTRODUÇÃO
Post anterior: Do Caos ao Prompt T4E07: Desenvolvimento do App AG2P – Evento "Decidiu encerrar a jornada"
Evento “Executou tarefa em hora extra”
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
"Executou tarefa em hora extra": https://g.co/gemini/share/7cd52dcdb360
Comando ao Gemini para solicitar a implementação do evento
Objetivo, Contexto e Ferramentas
Clique aqui para ver os itens Objetivo, Contexto e Ferramentas do Comando.
Especificações
Segue abaixo o post da temporada 3 desta série, que contém as especificações do evento "Executou tarefa em hora extra", 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
Explicação do Código:
-
function executarTarefaEmHoraExtra()
: Define a função que será executada quando o evento "Executou tarefa em hora extra" for disparado. -
Definição de Nomes: Define os nomes da planilha ("GPS") e da aba RDM ("GPS"). Você precisará ajustar o
nomeAbaRDM
se a aba RDM tiver um nome diferente. -
Abertura da Planilha e Aba:
SpreadsheetApp.getActiveSpreadsheet()
: Obtém a planilha ativa.ss.getSheetByName(nomeAbaRDM)
: Obtém a aba RDM pelo nome.- Verifica se a aba foi encontrada e retorna se não existir.
-
Verificação do Estado da RDM (Regra R37):
- Importante: O código assume que o estado "RDM Ativa" está armazenado em alguma célula da planilha. As variáveis
linhaEstadoRDM
ecolunaEstadoRDM
são exemplos. Você precisará identificar a célula correta na sua planilha onde o estado da RDM é controlado e ajustar essas variáveis. - O código lê o valor da célula de estado e verifica se é igual a "RDM Ativa". Se não for, ele registra um log e encerra a função.
- Importante: O código assume que o estado "RDM Ativa" está armazenado em alguma célula da planilha. As variáveis
-
Ação "Registrar horas extras":
- Passos do Usuário (R01, R07, R08, R09): O script não pode automatizar a ação do usuário de somar os pontos ou registrar os problemas diretamente. Em vez disso, o código inclui exemplos de como o script pode LER os valores que o usuário já inseriu em células específicas da planilha. Você precisará definir as linhas e colunas corretas onde o usuário irá inserir essas informações (
linhaPontosAntes
,colunaPontosAntes
,linhaPontosDepois
,colunaPontosDepois
). - Para o registro de problemas (R09), o script demonstra como encontrar a próxima linha vazia nas colunas I e J da aba "GPS" para um possível registro automático (se você tiver uma forma de o script "saber" o problema e a causa). No entanto, com base na descrição, essa etapa parece ser manual do usuário.
- Passo do Agente AG2P (R37): O script define o valor da célula de estado da RDM de volta para "RDM Ativa", garantindo que o estado seja mantido.
- Passos do Usuário (R01, R07, R08, R09): O script não pode automatizar a ação do usuário de somar os pontos ou registrar os problemas diretamente. Em vez disso, o código inclui exemplos de como o script pode LER os valores que o usuário já inseriu em células específicas da planilha. Você precisará definir as linhas e colunas corretas onde o usuário irá inserir essas informações (
-
Verificação da Duração da Jornada (Regra R01):
- Similar à verificação do estado, o código inclui um exemplo de como ler as horas de início e fim da jornada de células específicas (
linhaInicioJornada
,colunaInicioJornada
,linhaFimJornada
,colunaFimJornada
). Você precisará ajustar essas variáveis para as células corretas na sua planilha. - O código calcula a diferença entre as horas para determinar a duração e verifica se é maior que 9 horas.
- Similar à verificação do estado, o código inclui um exemplo de como ler as horas de início e fim da jornada de células específicas (
-
Log de Conclusão: Registra um log indicando que o evento foi concluído e que o app está aguardando outro evento.
Como Usar e Adaptar:
- Abra o Editor de Script: Na sua planilha "GPS", vá em "Extensões" > "Apps Script".
- Cole o Código: Copie e cole o código na janela do editor de script.
- Ajuste as Variáveis:
- Certifique-se de que
nomeAbaRDM
esteja correto. - Identifique as células na sua planilha onde o estado "RDM Ativa" é armazenado e ajuste
linhaEstadoRDM
ecolunaEstadoRDM
. - Identifique as células onde o usuário irá inserir os pontos de tarefas antes e depois do horário da RDM e ajuste
linhaPontosAntes
,colunaPontosAntes
,linhaPontosDepois
ecolunaPontosDepois
. - Identifique as células onde as horas de início e fim da jornada são registradas e ajuste
linhaInicioJornada
,colunaInicioJornada
,linhaFimJornada
ecolunaFimJornada
. - Se você pretende automatizar o registro de problemas (o que não parece ser o caso pela descrição), ajuste
primeiraLinhaRegistro
,colunaNOKPontos
ecolunaNOKCausas
.
- Certifique-se de que
- Salve o Script: Clique no ícone de salvar (o disquete). Dê um nome ao seu script (por exemplo, "AutomacaoRDM").
Como Disparar o Evento:
Como este é um evento acionado pelo usuário ("se a pessoa disparar o evento"), você precisará de uma maneira para o usuário interagir com a planilha para que este script seja executado. Algumas opções incluem:
- Botão na Planilha: Insira um botão na aba RDM que, ao ser clicado, execute a função
executarTarefaEmHoraExtra()
. - Item de Menu Personalizado: Crie um item de menu personalizado na planilha que, ao ser selecionado, execute a função.
- Formulário: Se os dados de horas extras forem coletados por meio de um Google Forms, você pode vincular um script ao evento de envio do formulário para executar esta função.
Para criar um botão ou item de menu, você precisará usar mais código do Google Apps Script para criar a interface do usuário. Se você precisar de ajuda com isso, me diga!
CONCLUSÃO
Neste episódio 8, da temporada 4 da série "Do Caos ao Prompt", foi apresentada a implementação do Evento "Executou tarefa em hora extra", realizada pelo Chatbot de IA Gemini 2.0 Flash.
As especificações do evento foram feitas em Finite State Machine (FSM).
Próximo post: Do Caos ao Prompt T4E09: Desenvolvimento do App AG2P – Evento "Liberou RDM"
Nenhum comentário:
Postar um comentário