INTRODUÇÃO
Post anterior: Do Caos ao Prompt T4E09: Desenvolvimento do App AG2P – Evento "Liberou RDM"
Este Post é o episódio 10 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 "Selecionou totais para produtividade".
Evento “Selecionou totais para produtividade”
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
"Selecionou totais para produtividade": https://g.co/gemini/share/e85ae46b8fe2
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 "Selecionou totais para produtividade", 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:
@OnlyCurrentDoc
: Esta anotação garante que o script só pode acessar o arquivo do Google Sheets ao qual está vinculado.onSelecionouTotaisParaProdutividade()
: Esta é a função que será executada quando o evento "Selecionou totais para produtividade" for disparado. Em um cenário real, você precisará vincular essa função a um botão, item de menu personalizado ou outro gatilho na sua interface do app.- Verificação do Estado da RDM (R39):
- O script primeiro obtém a planilha ativa e tenta acessar a aba chamada "RDM".
- Importante: Assume-se que o estado da RDM está armazenado em alguma célula da aba "RDM" (no exemplo, a célula "A1"). Você precisará adaptar essa parte do código para corresponder à forma como o estado é realmente gerenciado no seu sistema.
- Se o estado atual não for "RDM Antes do fim", uma mensagem de alerta é exibida e a função é interrompida.
- Ação "Atualizar aba XmR P":
- Apresentação de Opções (R12 e R13): Um diálogo de prompt é exibido ao usuário com as três opções para formatação da coluna A, conforme especificado na regra R13.
- Cópia da Coluna Q (GPS para XmR P): A coluna "Q" (INDICADOR DE PRODUTIVIDADE) da aba "GPS" é copiada para a coluna "B" da aba "XmR P".
- Formatação da Coluna A (XmR P) (R13):
- O script identifica as colunas "Grupo de Processos do Serviço" (B) e "Data Hora Fim" (F) na aba "GPS".
- Ele filtra os dados da aba "GPS" para incluir apenas as linhas onde a coluna "Tamanho em Pontos" (C) é maior que zero.
- Com base na opção escolhida pelo usuário, a coluna "A" da aba "XmR P" é preenchida com os dados formatados. A função
Utilities.formatDate()
é usada para formatar a data e hora.
- Geração do Gráfico XmR P: Um gráfico de linha simples é criado com base nos dados da aba "XmR P" e inserido na mesma aba. Você pode precisar ajustar o tipo de gráfico (
Charts.ChartType.LINE
), o intervalo de dados (addRange
), e outras opções de acordo com a natureza do seu gráfico XmR P. - Atualização do Estado da Aba RDM (R39): O estado da RDM (na célula "A1" da aba "RDM" no exemplo) é mantido como "RDM Antes do fim".
- Espera por Outro Evento: Após a execução da função, o script termina e o app aguarda o próximo evento disparado pelo usuário.
Como Usar:
-
Abra o seu Google Sheets (a planilha GPS).
-
Vá em "Ferramentas" > "Editor de script".
-
Cole o código acima no editor.
-
Adapte o código:
- Modifique os nomes das abas (
"RDM"
,"GPS"
,"XmR P"
) se forem diferentes na sua planilha. - Crucial: Ajuste a forma como o estado da RDM é armazenado e acessado (
estadoRDMCelula
e as linhas relacionadas).
- Modifique os nomes das abas (
-
Crie um gatilho (opcional, para teste): Para testar a função, você pode criar um menu personalizado ou um botão na sua planilha que execute a função
onSelecionouTotaisParaProdutividade()
.- Para criar um menu, adicione a seguinte função ao seu script:
JavaScriptfunction onOpen() { SpreadsheetApp.getUi() .createMenu('Automação RDM') .addItem('Selecionar Totais para Produtividade', 'onSelecionouTotaisParaProdutividade') .addToUi(); }
- Salve o script e recarregue a planilha. Um menu chamado "Automação RDM" aparecerá, com a opção de executar a função.
Observações Importantes:
- Gerenciamento de Estado: A forma como o estado da RDM é gerenciado é crucial. No exemplo, assumi que está em uma célula. Em um app mais complexo, você pode usar propriedades do usuário, um serviço de armazenamento de dados ou outra abordagem.
- Interface do Usuário: Este script implementa a lógica de back-end. Para um app completo, você precisará criar uma interface de usuário (usando HTML Service no Google Apps Script ou o próprio Google Sheets com botões e caixas de diálogo) para que o usuário possa interagir e disparar o evento "Selecionou totais para produtividade".
- Tratamento de Erros: O script inclui alguns alertas básicos para erros (abas não encontradas, estado incorreto). Em um ambiente de produção, você precisará implementar um tratamento de erros mais robusto.
- Gráfico XmR P: O tipo e as configurações do gráfico XmR P podem ser mais complexos do que um simples gráfico de linha. Você precisará ajustar as opções do
Charts.ChartType
e outras configurações do gráfico para atender aos seus requisitos específicos. - Regra R12: A regra R12 menciona que a planilha GPS deve estar em uma pasta padrão. Embora o script não implemente explicitamente essa regra, é importante garantir que a planilha esteja acessível ao script quando ele for executado.
Lembre-se de adaptar o código para corresponder à estrutura real da sua planilha e à forma como você pretende interagir com o seu app.
CONCLUSÃO
Neste episódio 10, da temporada 4 da série "Do Caos ao Prompt", foi apresentada a implementação do Evento "Selecionou totais para produtividade", 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 T4E11: Desenvolvimento do App AG2P -
Evento "Selecionou incidentes por origem"
Nenhum comentário:
Postar um comentário