INTRODUÇÃO
Post anterior: Do Caos ao Prompt T4E12: Desenvolvimento do App AG2P - Evento "Avaliou a capacidade do processo"
Este Post é o episódio 13 da temporada 4 da série "Do Caos ao Prompt", que apresenta o desenvolvimento do Agente de Gestão de Processo Pessoal (AG2P), tendo como foco o evento "Fechou RDM".
Evento “Fechou RDM”
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
"Fechou RDM": https://g.co/gemini/share/f701ca6c3aa5
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 "Fechou RDM", 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 eventoFechouRDM() { ... }
: Define a função que será executada quando o evento "Fechou RDM" for disparado. -
const nomePlanilha = "GPS";
,const abaGPSNome = "GPS";
,const abaRDMNome = "RDM";
: Define constantes para os nomes da planilha e das abas, facilitando a manutenção do código. -
const colunaEstadoRDM = 20;
: Define a coluna onde o estado da RDM é armazenado (coluna T, que é a 20ª). -
const planilha = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(abaGPSNome);
: Obtém uma referência à planilha ativa pelo nome especificado. -
if (!planilha) { ... }
: Verifica se a aba "GPS" foi encontrada na planilha. Se não, registra um log e encerra a função. -
const abaRDM = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(abaRDMNome);
: Obtém uma referência à aba "RDM". -
if (!abaRDM) { ... }
: Verifica se a aba "RDM" foi encontrada. Se não, registra um log e encerra a função. -
const estadoAtualRDM_abaRDM = abaRDM.getRange("T1").getValue();
: Importante: Esta linha assume que o estado da RDM na aba "RDM" está localizado na célulaT1
. Você precisará ajustar essa lógica para identificar corretamente a célula que contém o estado da RDM na sua aba "RDM". Pode ser necessário percorrer linhas ou usar outra lógica de identificação. -
if (estadoAtualRDM_abaRDM === "RDM Antes do fim") { ... }
: Verifica se o estado atual da RDM (obtido da aba "RDM") é igual a "RDM Antes do fim", conforme a regra R46. -
abaRDM.getRange("T1").setValue("RDM Fechada");
: Se a condição for verdadeira, esta linha atualiza o valor da célula de estado da RDM (novamente, assumindo que sejaT1
) para "RDM Fechada", cumprindo a ação "Encerrar jornada" e a regra R46. -
Logger.log(...)
: Registra mensagens no log de execução do Google Apps Script para acompanhar o fluxo e eventuais problemas. -
else { ... }
: Se o estado atual não for "RDM Antes do fim", um log é registrado informando que a ação não pôde ser executada. -
// Após a execução, o app fica esperando outro evento.
: Este é um comportamento passivo do Google Apps Script. Após a execução da função, ele aguardará o próximo evento que for configurado para acionar outro script ou a mesma função novamente.
Como usar este código:
- Abra sua planilha "GPS" no Google Sheets.
- Vá em "Ferramentas" > "Editor de script".
- Cole o código na janela do editor de script.
- Modifique a linha
const estadoAtualRDM_abaRDM = abaRDM.getRange("T1").getValue();
e a linhaabaRDM.getRange("T1").setValue("RDM Fechada");
para corresponder à célula correta onde o estado da RDM é armazenado na sua aba "RDM". - Salve o script (dê um nome a ele, por exemplo,
AutomacaoRDM
).
Como acionar este evento:
Para que este script seja executado quando o evento "Fechou RDM" acontecer, você precisará de uma maneira de dispará-lo. Algumas opções comuns em Google Sheets incluem:
- Botão na planilha: Insira um botão na sua planilha "GPS" e atribua este script a ele. Quando o usuário clicar no botão, a função
eventoFechouRDM()
será executada. - Menu personalizado: Crie um menu personalizado na sua planilha que contenha uma opção para "Fechar RDM" e atribua este script a essa opção.
- Evento de formulário (se aplicável): Se a interação "Fechou RDM" estiver ligada a um envio de formulário, você pode usar um acionador "Ao enviar formulário" para executar este script.
- Acionadores baseados em tempo: Embora menos provável para este tipo de evento, você pode configurar um acionador para executar o script em um horário específico ou com uma frequência definida.
Recomendações:
- Localização do Estado da RDM: Certifique-se de identificar com precisão onde o estado da RDM ("RDM Antes do fim") é armazenado na sua aba "RDM". O código fornecido assume a célula
T1
, mas isso pode não ser correto. - Tratamento de Erros: Para um script mais robusto, você pode adicionar mais tratamento de erros, como verificar se as células de estado realmente existem e o que fazer se o valor encontrado for inesperado.
- Interface do Usuário: Para uma melhor experiência do usuário, considere criar uma interface mais intuitiva (como um diálogo personalizado no Google Sheets ou um aplicativo HTML Service) para disparar os eventos em vez de depender diretamente de botões ou menus na planilha.
Lembre-se de adaptar o código para a estrutura exata da sua planilha "GPS" e da aba "RDM".
CONCLUSÃO
Neste episódio 13, da temporada 4 da série "Do Caos ao Prompt", foi apresentada a implementação do Evento "Fechou RDM", 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 T5E01: Teste do App AG2P - Evento "Abriu RDM"
Nenhum comentário:
Postar um comentário