Seguidores

sábado, 26 de abril de 2025

Do Caos ao Prompt T4E06: Desenvolvimento do App AG2P – Evento "Ocorreu um incidente"

INTRODUÇÃO

Post anterior: Do Caos ao Prompt T4E05: Desenvolvimento do App AG2P – Evento "Terminou tarefa do negócio"

    Este Post é o episódio 6 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 "Ocorreu um incidente".


    Evento “Ocorreu um incidente”

    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
    "Ocorreu um incidente": https://g.co/gemini/share/cc7b890fee26

    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 "Ocorreu um incidente", que faz parte deste comando:

    Do Caos ao Prompt T3E07: Estrutura do Agente AG2P - Diálogo 5 Evento "Ocorreu um incidente" dispara Ação "Registrar incidente"

    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


    /**
     * Automatiza o evento "Ocorreu um incidente" no fluxo de trabalho do RDM.
     *
     * Este script é acionado quando o evento "Ocorreu um incidente" é disparado
     * e registra as informações correspondentes na aba "GPS" da planilha.
     *
     * Pré-condições:
     * - A aba da planilha ativa deve ser a aba "RDM".
     * - A célula T1 da aba "RDM" deve conter o texto "RDM Ativa".
     *
     * Ações executadas:
     * - Mantém o estado da aba "RDM" como "RDM Ativa" (célula T1).
     * - Solicita ao usuário que registre o incidente nas colunas I e J da aba "GPS".
     *
     * Regras aplicadas: R06, R31, R44, R48, R50.
     */
    function ocorreuUmIncidente() {
      // Obtém a planilha ativa e as abas relevantes.
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var rdmAba = ss.getActiveSheet();
      var gpsAba = ss.getSheetByName("GPS");

      // Verifica se a aba ativa é a "RDM".
      if (rdmAba.getName() !== "RDM") {
        SpreadsheetApp.getUi().alert('A aba ativa deve ser "RDM" para registrar um incidente.');
        return;
      }

      // Verifica se o estado da RDM é "RDM Ativa".
      var estadoRDM = rdmAba.getRange("T1").getValue();
      if (estadoRDM !== "RDM Ativa") {
        SpreadsheetApp.getUi().alert('O estado da RDM deve ser "RDM Ativa" para registrar um incidente.');
        return;
      }

      // Mantém o estado da RDM como "RDM Ativa" (R44).
      rdmAba.getRange("T1").setValue("RDM Ativa");

      // Solicita ao usuário que registre o incidente nas colunas I e J da aba "GPS" (R48, R50).
      SpreadsheetApp.getUi().alert(
        'Por favor, registre o incidente nas colunas I (NOK - PONTOS PROBLEMÁTICOS E AÇÕES CORRETIVAS) e J (NOK - CAUSA PROVÁVEL) da aba "GPS".'
      );

      // As regras R06 e R31 dependem do momento do registro e devem ser aplicadas
      // no momento em que o usuário insere os dados na aba "GPS". Não há uma
      // ação automática direta para aplicar essas regras neste script, pois
      // ele apenas direciona o usuário a inserir os dados. A validação dessas
      // regras pode ser feita através de Data Validation na própria planilha "GPS"
      // ou por outro script que seja executado após a inserção dos dados.

      // Após a execução, o app aguarda o próximo evento.
      Logger.log('Evento "Ocorreu um incidente" processado. Aguardando próximo evento.');
    }

    Explicação do Código:

    1. ocorreuUmIncidente(): Esta é a função principal que será executada quando o evento "Ocorreu um incidente" for disparado.
    2. SpreadsheetApp.getActiveSpreadsheet(): Obtém uma referência à planilha ativa.
    3. ss.getActiveSheet(): Obtém uma referência à aba atualmente ativa.
    4. ss.getSheetByName("GPS"): Obtém uma referência à aba chamada "GPS".
    5. Verificação da Aba Ativa: O código verifica se a aba ativa é a "RDM". Se não for, exibe um alerta e interrompe a execução.
    6. Verificação do Estado da RDM: O código lê o valor da célula "T1" na aba "RDM" para verificar se o estado é "RDM Ativa". Se não for, exibe um alerta e interrompe a execução.
    7. Mantém o Estado da RDM: A célula "T1" na aba "RDM" é explicitamente definida como "RDM Ativa", garantindo a aplicação da regra R44.
    8. Solicitação ao Usuário: Um alerta é exibido ao usuário, instruindo-o a registrar os detalhes do incidente nas colunas "I" e "J" da aba "GPS". Isso atende às regras R48 e R50, pois direciona a ação imediata e a importância de dados completos e precisos.
    9. Regras R06 e R31: A implementação direta das regras R06 e R31 neste script é um pouco complexa, pois elas dependem do momento exato em que o incidente ocorreu em relação aos horários de início e fim registrados na planilha RDM. Uma abordagem mais eficaz para essas regras seria:
      • Data Validation na Aba "GPS": Configurar regras de validação de dados nas colunas de hora da ocorrência do incidente na aba "GPS", que consultem os horários de início e fim da aba "RDM".
      • Script Adicional (Opcional): Criar um script separado que seja executado após a inserção dos dados na aba "GPS" para verificar e ajustar os horários do incidente de acordo com as regras R06 e R31.
    10. Logger.log(): Registra uma mensagem no log de execução indicando que o evento foi processado.

    Como Usar:

    1. Abra sua planilha do Google Sheets.
    2. Vá em "Ferramentas" > "Editor de script".
    3. Copie e cole o código acima no editor.
    4. Salve o script (dê um nome significativo, como AutomacaoRDM).
    5. Para que este script seja executado quando o evento "Ocorreu um incidente" acontecer, você precisará vincular este script a um gatilho. A forma como o gatilho será implementado dependerá de como o evento "Ocorreu um incidente" é disparado no seu "app" (que ainda será construído). Algumas possibilidades incluem:
      • Um botão na interface do seu "app" que chama uma função do Google Apps Script.
      • Um evento específico na planilha (embora para este cenário, um gatilho baseado em tempo ou em edição talvez não seja o mais adequado para representar um "incidente" disparado pelo usuário).

    Lembre-se de que este script pressupõe que a aba ativa no momento em que o evento é disparado seja a aba "RDM" e que a célula "T1" contenha o estado correto. A integração completa dependerá da construção do seu "app" e de como ele interage com a planilha.

    CONCLUSÃO

    Neste episódio 6, da temporada 4 da série "Do Caos ao Prompt", foi apresentada a implementação do Evento "Ocorreu um incidente", 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 T4E07: Desenvolvimento do App AG2P – Evento "Decidiu encerrar a jornada"

    Veja a lista de Episódios da Temporada 4 da Série "Do Caos ao Prompt", no final do Episódio T4E01.



    Nenhum comentário:

    Postar um comentário

    Entendendo a Metáfora "Home Office é Moto Boy"

    UCEM L-pI.219 (199) Revisão VI - Caso de uso da IA para estudar

      Lição 219  Eu não sou um corpo. Eu sou livre.  Pois ainda sou como Deus me criou. Lição anterior Escolher outra lição Próxima lição Texto ...