Ir para conteúdo
  • Cadastre-se

dev botao

Problemas no método Validar (XML document must have a top level element"


Ver Solução Respondido por rcdfb,
  • Este tópico foi criado há 1864 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia.

Após atualização dos fontes do ACBR, quando tento realizar o método Valida ocorre uma exceção retornando "XML document must have a top level element". O erro ocorre para para todos os documentos fiscais que crio, NF-e, CT-e, MDF-e e CF-e.

Porem este erro só ocorre no cliente, na maquina de desenvolvimento não ocorre.

Alguém pode me ajudar com este caso?

Agradeço desde já.

 

Postado

Boa tarde, obrigado pelo retorno.

O ambiente é o mesmo em diversos clientes, com o certificados devidamente instalados e de diversos tipos, a unica coisa que mudou foi a compilação do executável mesmo.

Desconfio das dlls, quais delas dever ser levadas a maquina do cliente e que que locais?

Por hora, retirei o método valida do sistema e deixei somente o Gerar e Enviar e com isso funcionou NF-e e CT-e, porem o mesmo erro esta ocorrendo no momento da emissão da carta de correção e neste não uso o método valida, só que a msg agora vem em português "O documento XML deve ter um elemento de nível superior"

Se tiver mais alguma dica agradeço muito.

Postado

Pessoal, se alguém puder me ajudar, realmente já tentei de tudo, inclusive já utilizei outro pc para compilação e o resultado é o mesmo!

Basicamente retirei o método validar, e resolvi as emissões, porem no momento de enviar a carta de correção da NF-e o mesmo erro persiste no comando enviar mesmo!

"XML document must have a top level element"

  • Moderadores
Postado
1 minuto atrás, rcdfb disse:

Pessoal, se alguém puder me ajudar, realmente já tentei de tudo, inclusive já utilizei outro pc para compilação e o resultado é o mesmo!

Basicamente retirei o método validar, e resolvi as emissões, porem no momento de enviar a carta de correção da NF-e o mesmo erro persiste no comando enviar mesmo!

"XML document must have a top level element"

é um problema local seu!

se fosse geral todos estariam relatando problemas não concorda?

pegue o demo e repasse um passo a passo como gerar o problema e também seu ambiente.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Pessoal, se alguém puder me ajudar, realmente já tentei de tudo, inclusive já utilizei outro pc para compilação e o resultado é o mesmo!

Basicamente retirei o método validar, e resolvi as emissões, porem no momento de enviar a carta de correção da NF-e o mesmo erro persiste no comando enviar mesmo!

"XML document must have a top level element"

1 minuto atrás, Juliomar Marchetti disse:

é um problema local seu!

se fosse geral todos estariam relatando problemas não concorda?

pegue o demo e repasse um passo a passo como gerar o problema e também seu ambiente.

Juliomar.

Sei que o problema é local meu, não estou falando que é no componente, mas mesmo assim imaginei que vocês conhecedores dos fontes poderiam ter alguma dica.

A questão de cadeia de certificados esta eliminada.

Dlls, copiei todas para a pasta system ou syswow64.

Imaginei algum tipo de conflito entre outros componentes, mas o fato de funcionar na maquina de desenvolvimento onde o instalador do ACBR atuou e na maquina no cliente não, me leva a crer que falta algo a ser encaminhado.

As dlls que devem ser enviadas são todas da pasta DLLs da raiz do repositório?

 

Postado
2 minutos atrás, André Ferreira de Moraes disse:

Com o demo na máquina do cliente você consegue reproduzir o problema?

Esta tentativa eu ainda não fiz, vou tentar agora e retorno a vcs.

Obrigado desde já.

Postado
18 horas atrás, rcdfb disse:

Esta tentativa eu ainda não fiz, vou tentar agora e retorno a vcs.

Obrigado desde já.

André,bom dia

Consegui fazer o teste com o demo no cliente e o evento foi enviado normalmente.

Sei que o caso é bem estranho, e não tem um erro direto no componente, mas ainda assim é um erro que esta ocorrendo e pode assolar outros usuários.

Revisando o problema:

- Depois da atualização dos fontes, o método valida retorna o erro, retirei ele, e o sistema continuou funcionando bem.

- O erro só ocorre no método EnviarEvento, ou seja estou sem cancelamento de NF-e e Cartas de Correção.

- Já revisei todo o sistema, copiei dlls, revisei bem o demo, e nada.

- Uma curiosidade, o erro só acontece no cliente, na maquina de desenvolvimento vai de boa (Dai a grande dificuldade de depurar o problema)

- Tentei todas as combinações dos parâmetro do certificado e nada, (No SSL funciona bem)

Estou quase apelando para realizar um reverte no repositório para resolver meu problema, mas isso me levaria a ter problemas a curto prazo por ficar fora de atualizações e correções.

A avaliação que gostaria de vocês é a relação do metodo Valida e EnviarEvento, o que eles tem em comum, acho que isso pode ajudar no diagnostico, como uso muitas bibliotecas imagino que possa haver algum conflito entre elas e talvez isso esteja pegando, mas o fato de funcionar na maquina de desenvolvimento que me mata.

Agradeço desde já qualquer ajuda.

 

 

Postado

Prezados.

Após inúmeros teste com o showmessage, encontrei onde o erro ocorre no sistema rodando no cliente.

É na unit ACBrDFeXsMsXml.pas no método Validar no comando Schema.add(WideString(FpDFeSSL.NameSpaceURI), ArqSchema).

Porque motivo o meu executável não funcionaria corretamente e o demo sim? Lembrando que na maquina de desenvolvimento funciona tudo perfeitamente.

Abs.

  • Solution
Postado
1 hora atrás, André Ferreira de Moraes disse:

A pasta schema do seu aplicativo no cliente está atualizada?

Já verifiquei isso tmb, e este tudo ok, tanto que o demo rodando na mesma pasta e rodou de boa.

Estou trabalhando em limpezas de uses em meu sistema, ele é um ERP bem grande, e uso de tudo nele, talvez esteja tendo conflitos em declarações de TXMLDocument versão 1, 2,3, ect...

Achando a solução posto aqui! Qualquer outra dica será muitíssimo bem vinda.

  • 4 meses depois ...
Postado

Boa tarde!

Alguém resolveu esse problema?

Estou com a mesma situação em cliente. Na nossa base de testes no ambiente de homologação funciona corretamente e no ambiente de produção do cliente, não!.

Solicitei para o cliente atualizar os Schemas.

No meu caso, o evento é de Manifestação do Destinatário - Confirmação da Operação.

Obrigada!

Postado

Não consegui resolver até hoje!

Para mim o erro ocorre realmente no ACBrDFeXsMsXml.pas, na linha onde os schemas são carregados, parece que o versão do DOM carregado não é a esperado ou algo do tipo, estou rodando todos as rotinas em meus sistema sem rodar a validação.

Estou tendo sérios problemas, pois sem validação fico sem saber algum erros que ocorrem na emissão, saída paliativa é tratar o máximo de campos via sistema e validar via site nos últimos casos..

É lamentavel isso, mas tenho esta e outras questões que ocorrem nas atualizações do componente gerando certa instabilidade em meus sistemas.

Postado

Juliomar, concordo plenamente.

Porem isso não muda o problema, e para o meu projeto a unica coisa que aconteceu foi a atualização do componente.

Imaginei que o registro de alguma dll poderia ter efeito, visto que em minha maquina de desenvolvimento tudo funciona perfeito, somente no cliente o erro ocorre, onde executado a instalação do acbr tudo ocorre normalmente.

Neste ponto que talvez, o pessoal que desenvolveu a solução poderia dar alguma dica, entende?

Não sei se com o SAC esta solução poderia ocorrer, o que vc me recomenda?

 

Postado

Sei que parece uma boa dica, mas já revisei tudo e não tive resultados.

Já vi o fonte do instalador do acbr para observar quais dll são copiadas e pra onde, e ainda assim nada.

Em suma, continuo na mesma...

Esta unit ACBrDFeXsMsXml.pas na linha 258 Schema.add(WideString(FpDFeSSL.NameSpaceURI), ArqSchema);  é nela que o erro ocorre, descobri isso fazendo depuração via showmessage executando o aplicativo na máquina do cliente.

E o mais loco, se compilo o demo, o mesmo roda no cliente, é um problemas bem fora da curva mesmo.

  • 5 meses depois ...
Postado

Bom dia,

Alguem chegou a alguma solução?

É como o amigo falou, com o Demo do ACBr funciona perfeito. Porem no ERP não! A diferença que o erro ocorre no meu PC que uso para desenvolver, ou seja, todas as Dlls estão ok.

Postado

Bom dia.

Consegui resolver depois que ocorreu algumas atualizações no fonte e mudando a ordem da validação e assinatura.

Eu sempre validava antes de assinar, com a inversão disso passou a funcionar.

             ACBrNFe.NotasFiscais.GerarNFe;
             ACBrNFe.NotasFiscais.Assinar;
             ACBrNFe.NotasFiscais.Validar;

Executando na ordem acima com o fonte atualizado passou a funcionar normal.

 

Abs.

  • 9 meses depois ...
Postado

Bom dia!

Post antigo, mas novamente apos atualização dos últimos dias do component, onde diversos refactor foram feitos, o mesmo erro volta a acontecer!

 

  • Administradores
Postado

Bom dia.

Mesmo aplicando as sugestões dos posts nao resolveu?

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Bom dia!

Post antigo, mas novamente apos atualização dos últimos dias do component, onde diversos refactor foram feitos, o mesmo erro volta a acontecer!

 

Pois é, a dia inclusive foi minha mesmo, na voltou o erro.

Estou realizando algumas experiencias e mudar o SSLXmlSignLib, poi o problema esta no uso do xsMsXml.

  • Curtir 1
  • 10 meses depois ...
  • Membros Pro
Postado

A quem possa interessar, é bom verificar se os arquivos de schemas não estão danificados.

No meu caso um arquivo de validação (e210220_v1.00.xsd) estava nulo e ocasionava o erro citado no momento de realizar o "desconhecimento de operação".

Substitui por um arquivo íntegro e funcionou normalmente.

  • Curtir 2
  • Este tópico foi criado há 1864 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...