Prompt: Automação para Download de XML de NFS-e no Portal Nacional

TL;DR:
O texto detalha um prompt para automatizar o acesso ao Portal Nacional da NFS-e, realizando login com CNPJ e senha, filtrando notas fiscais por período, baixando os arquivos XML e gerando um relatório JSON com os dados principais de cada nota. Destaca a necessidade de lidar com elementos dinâmicos da página, simular interações humanas e cuidar da segurança das credenciais. Além disso, sugere melhorias como controle de delays, validação de elementos e tratamento de exceções para maior robustez da automação.

Takeaways:

  • A automação deve acessar o portal, realizar login, aplicar filtros e baixar os XMLs das NFS-e emitidas, salvando os arquivos com nomenclatura padronizada.
  • O relatório final deve listar campos essenciais das notas fiscais, incluindo caminho do arquivo baixado.
  • É crucial lidar com elementos dinâmicos em JavaScript, simulando cliques e aguardando carregamentos para evitar bloqueios.
  • Cuidados de segurança incluem não armazenar CNPJ e senha e monitorar a validade da sessão para evitar expiração.
  • Melhorias sugeridas envolvem especificação de delays, validação robusta dos elementos, exemplos de saída JSON e tratamento de exceções para assegurar maior confiabilidade.

<generated_prompt>

  <goal>

    Acessar o Portal Nacional da NFS-e usando CNPJ e senha informados
manualmente, navegar até a página de notas fiscais emitidas, filtrar por
mês e ano, e realizar o download dos arquivos XML de todas as NFS-e
emitidas no período especificado.

  </goal>


  <return_format>

    Execute cada etapa da automação em sequência. A cada nota fiscal
localizada, baixe o arquivo XML correspondente e salve no disco com o nome
padronizado: "nfse_{numeroNota}_{dataEmissao}.xml".

    Ao final, retorne um relatório em JSON com os seguintes campos por nota:

      - numero_nf

      - data_emissao

      - nome_tomador

      - cnpj_tomador

      - valor_total

      - situacao

      - caminho_arquivo_xml

  </return_format>


  <warnings>

    - O portal utiliza componentes dinâmicos em JavaScript, então a
automação precisa aguardar carregamento da página e elementos DOM antes de
interagir.

    - O botão de "Download XML" não possui URL direta e exige clique
simulado em menu dropdown.

    - Evite bloqueios ou timeouts simulando o comportamento humano (com
delays entre ações).

    - CNPJ e senha não devem ser armazenados ou registrados em log.

    - O portal pode expirar a sessão rapidamente. Monitore a validade da
sessão.

  </warnings>


  <context_dump>

    Portal Nacional da NFS-e: https://www.nfse.gov.br/EmissorNacional/Login


    Exemplo de CNPJ: 07.301.671/0001-31

    Fluxo esperado:

    1. Acesse https://www.nfse.gov.br/EmissorNacional/Login

    2. Preencha o formulário com CNPJ e senha fornecidos no momento da
execução.

    3. Clique em "Entrar".

    4. Após login, aguarde redirecionamento para
https://www.nfse.gov.br/EmissorNacional

    5. Navegue para: https://www.nfse.gov.br/EmissorNacional/Notas/Emitidas

    6. Aplique o filtro de data para o mês e ano fornecidos (por exemplo:
julho/2025).

    7. Para cada NFS-e listada:

       a. Clique nos três pontos à direita.

       b. Clique em "Download XML".

       c. Aguarde o arquivo ser baixado.

       d. Capture os dados da nota na linha (número, valor, data, tomador
etc).

    8. Continue até que todas as notas do período tenham sido processadas.

    9. Gere um relatório final com os metadados e caminhos dos XMLs
baixados.

  </context_dump>

</generated_prompt>

<generated_prompt>

  <goal>

    Acessar o Portal Nacional da NFS-e usando CNPJ e senha informados
manualmente, navegar até a página de notas fiscais emitidas, filtrar por
mês e ano, e realizar o download dos arquivos XML de todas as NFS-e
emitidas no período especificado.

  </goal>


  <return_format>

    Execute cada etapa da automação em sequência. A cada nota fiscal
localizada, baixe o arquivo XML correspondente e salve no disco com o nome
padronizado: "nfse_{numeroNota}_{dataEmissao}.xml".

    Ao final, retorne um relatório em JSON com os seguintes campos por nota:

      - numero_nf

      - data_emissao

      - nome_tomador

      - cnpj_tomador

      - valor_total

      - situacao

      - caminho_arquivo_xml

  </return_format>


  <warnings>

    - O portal utiliza componentes dinâmicos em JavaScript, então a
automação precisa aguardar carregamento da página e elementos DOM antes de
interagir.

    - O botão de "Download XML" não possui URL direta e exige clique
simulado em menu dropdown.

    - Evite bloqueios ou timeouts simulando o comportamento humano (com
delays entre ações).

    - CNPJ e senha não devem ser armazenados ou registrados em log.

    - O portal pode expirar a sessão rapidamente. Monitore a validade da
sessão.

  </warnings>


  <context_dump>

    Portal Nacional da NFS-e: https://www.nfse.gov.br/EmissorNacional/Login


    Exemplo de CNPJ: 07.301.671/0001-31

    Fluxo esperado:

    1. Acesse https://www.nfse.gov.br/EmissorNacional/Login

    2. Preencha o formulário com CNPJ e senha fornecidos no momento da
execução.

    3. Clique em "Entrar".

    4. Após login, aguarde redirecionamento para
https://www.nfse.gov.br/EmissorNacional

    5. Navegue para: https://www.nfse.gov.br/EmissorNacional/Notas/Emitidas

    6. Aplique o filtro de data para o mês e ano fornecidos (por exemplo:
julho/2025).

    7. Para cada NFS-e listada:

       a. Clique nos três pontos à direita.

       b. Clique em "Download XML".

       c. Aguarde o arquivo ser baixado.

       d. Capture os dados da nota na linha (número, valor, data, tomador
etc).

    8. Continue até que todas as notas do período tenham sido processadas.

    9. Gere um relatório final com os metadados e caminhos dos XMLs
baixados.

  </context_dump>

</generated_prompt>

Análise Estrutural

O prompt apresentado é composto por quatro seções principais:

  • goal: Define o objetivo geral da automação, detalhando o processo que deverá ser realizado, desde o acesso ao portal até o download dos arquivos XML.
  • return_format: Especifica o formato e a ordem de execução das etapas da automação, estabelecendo como os arquivos devem ser nomeados e quais campos devem constar no relatório final em JSON.
  • warnings: Lista avisos e restrições importantes para a implementação da automação, como a necessidade de aguardar o carregamento dos elementos dinâmicos do portal, a simulação de cliques e o cuidado com dados sensíveis, como CNPJ e senha.
  • context_dump: Fornece informações contextuais adicionais, incluindo URLs, exemplos e um fluxo detalhado passo a passo do procedimento esperado. Essa seção serve como referência para validar cada etapa do processo.

Objetividade e Clareza

A clareza do prompt é evidenciada pela definição precisa dos objetivos e das etapas necessárias para atingir o resultado esperado:

  • Alinhamento entre objetivo e resultado:
    O “goal” especifica de forma direta o que se espera da automação, enquanto o “return_format” detalha o resultado final com a padronização necessária para o nome dos arquivos e a estrutura do relatório JSON.
  • Coerência interna:
    Cada seção do prompt complementa a outra. Os avisos reforçam os cuidados a serem tomados durante o processo, garantindo que as particularidades do ambiente dinâmico (como o carregamento de JavaScript) sejam consideradas.

Boas Práticas de Engenharia de Prompts

O prompt analisado aplica diversas boas práticas, que podem servir de referência em projetos similares:

  • Estrutura Modular:
    A separação em seções (goal, return_format, warnings e context_dump) permite uma leitura clara e facilita alterações ou manutenções futuras.
  • Orientações Detalhadas:
    A inclusão de um fluxo passo a passo no context_dump ajuda a evitar ambiguidades e garante que todas as etapas necessárias sejam contempladas.
  • Controle Preciso do Output:
    A padronização da nomenclatura dos arquivos XML e a definição detalhada dos campos do relatório JSON asseguram que o resultado final seja consistente e de fácil manipulação.
  • Atenção à Segurança:
    Os warnings enfatizam cuidados relevantes, como a não armazenagem de dados sensíveis e a necessidade de monitorar a sessão, evidenciando uma abordagem de segurança desde a concepção do prompt.

Riscos e Melhorias Sugeridas

Apesar da qualidade geral do prompt, alguns pontos podem ser aprimorados para aumentar a robustez da automação:

  • Especificação de Delays e Condições de Carregamento:
    Inclua instruções mais detalhadas sobre como e por quanto tempo aguardar o carregamento dos componentes. Por exemplo, definir um tempo máximo de espera ou uma condição que verifique a presença de um elemento crítico na página.
  • Validação de Elementos Dinâmicos:
    Recomende o uso de seletores únicos (como IDs ou classes) para identificar elementos importantes, reduzindo a chance de erro caso a interface do portal seja alterada.
  • Gestão Proativa de Sessão:
    Sugira a implementação de mecanismos para monitorar a validade da sessão e realizar ações de reautenticação ou aviso ao usuário, caso a sessão expire repentinamente.
  • Exemplo de Saída JSON:
    Adicionar um modelo exemplificativo do relatório pode ajudar os desenvolvedores a entenderem melhor o formato esperado e a realizar testes com base em um output padrão.
  • Tratamento de Exceções:
    Incluir diretrizes para a gestão de erros durante a navegação e o download dos arquivos, como o tratamento de timeouts ou a falta de resposta dos elementos dinâmicos.

Conclusão

A análise do prompt revela uma estrutura bem elaborada, com orientações claras e objetivas para a automação do download dos arquivos XML do Portal Nacional da NFS-e. A separação das seções, a definição detalhada do fluxo e a padronização do output demonstram a aplicação de boas práticas de engenharia de prompts. Apesar de alguns pontos que podem ser refinados, como a especificação de delays e a validação robusta de elementos dinâmicos, o prompt se mostra como uma base sólida para a implementação da automação.

Recomenda-se a adoção das melhorias sugeridas para aumentar a resiliência e a segurança do processo, garantindo que a automação se mantenha eficaz mesmo diante de variações na interface ou nas condições de carregamento. Este prompt, com ajustes pontuais, pode servir como um excelente ponto de partida para projetos de automação similares em outros contextos.

Inscrever-se
Notificar de
guest

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

0 Comentários
mais recentes
mais antigos Mais votado
Feedbacks embutidos
Ver todos os comentários