Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLibNFSe - acBrNFSe.emitir - Erro de Validação: }Prestador': This element is not expected. Expected is


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

Recommended Posts

  • Membros Pro
Postado

Boa noite, estou tentando emitir NFSe para Prefeitura de Marica/RJ, ao tentar emitir recebo o retorno:

X800 - Erro de Validação: --> 1871 - Element '{http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd}Prestador': This element is not expected. Expected is ( {http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd}Cnpj ).

Alguma dica?

Em anexo arquivos usados.ACBrLib.iniemitir-numerorps-1.ini11-rps.xml

  • Membros Pro
Postado (editado)

Mais você viu que no ini está com todos os dados? A lib está gerando o XML sem CNPJ?

O arquivo ini está com todos os dados necessários, até porque quando não está tendo um retorno da lib. Pelo que eu entendi do erro o XML está sendo gerado pela lib diferente do que deveria ser.

Alguma dica?

Editado por fredsmartfull
Erro de digitação
  • Consultores
Postado

Bom dia!

O erro X800 é gerado pelo componente. Ele está indicando um erro de schema, mostrando que o elemento <Prestador> não era esperado e sim o CNPJ.

No entanto, está situação está estranha, visto que o XML foi gerado corretamente.

Por favor, configure o LogNivel para Paranoico, refaça o teste e disponibilize o Log para análise.

Outra observação é que por estar usando certificado A1, você também pode testar usando OpenSSL.

Citar

SSLCryptLib = 1

SSLHttpLib = 3

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado

Estava na versão 24 da lib, atualizei para versão 34, e o erro mudou:

Erro de Validação:  --> 1845 - Element '{http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd}EnviarLoteRpsSincronoEnvio': No matching gloACBrLib.inibal declaration available for the validation root.

Segue o log paranoico e todos os arquivos gerados.11-rps.xml

ACBrLibNFSe-20230727.log emitir-numerorps-1.ini

6 horas atrás, Diego Foliene disse:

Bom dia!

O erro X800 é gerado pelo componente. Ele está indicando um erro de schema, mostrando que o elemento <Prestador> não era esperado e sim o CNPJ.

No entanto, está situação está estranha, visto que o XML foi gerado corretamente.

Por favor, configure o LogNivel para Paranoico, refaça o teste e disponibilize o Log para análise.

Outra observação é que por estar usando certificado A1, você também pode testar usando OpenSSL.

Fiz o mesmo teste usando sua dica e o retorno foi o mesmo da minha resposta acACBrLibNFSe-20230727.logima,emitir-numerorps-1.ini mais segue os aruivos.

ACBrLib.ini 11-rps.xml

  • Membros Pro
Postado

Outra coisa que eu reparei e que no manual do site da prefeitura o xml de exemplo que tem no PDF começa com:

<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
<LoteRps>

e o xml gerado pelo acbr começa com 

Rps xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
    <InfDeclaracaoPrestacaoServico>

Olhando o schema baixado em: http://svn.code.sf.net/p/acbr/code/trunk2/Exemplos/ACBrDFe/ACBrNFSe/Schemas/DBSeller/

Não achei a referencia a  <InfDeclaracaoPrestacaoServico> mais achei a <EnviarLoteRpsEnvio que esta no manual da prefeitura.

Eu acho que o componente ta gerando o xml errado.

Alguma dica?

 

 

Segue o manual da prefeitura:

1654521496d286332e03069ab42c90af791d059a1d.pdf

  • Consultores
Postado
7 minutos atrás, fredsmartfull disse:

Outra coisa que eu reparei e que no manual do site da prefeitura o xml de exemplo que tem no PDF começa com:

<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
<LoteRps>

e o xml gerado pelo acbr começa com 

Rps xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
    <InfDeclaracaoPrestacaoServico>

Olhando o schema baixado em: http://svn.code.sf.net/p/acbr/code/trunk2/Exemplos/ACBrDFe/ACBrNFSe/Schemas/DBSeller/

Não achei a referencia a  <InfDeclaracaoPrestacaoServico> mais achei a <EnviarLoteRpsEnvio que esta no manual da prefeitura.

Eu acho que o componente ta gerando o xml errado.

Alguma dica?

 

 

Segue o manual da prefeitura:

1654521496d286332e03069ab42c90af791d059a1d.pdf 224.17 kB · 0 downloads

O arquivo que você está olhando é o XML do RPS.

Você deve conferir no arquivo de envelope.

Configure a opção SalvarWS e a opção PathSalvar e refaça o teste, ele vai gerar para você no PathSalvar um arquivo com estrutura semelhante a do manual.

Como está a estrutura do seu PathSchemas (D:\Projetos\SmartFull\Java\SmartAcbrLibRest\PathSchemas\) ?

Pode compartilhar um print desta pasta?

Seu ACBrLib.ini não tem informação do emitente fora CNPJ e Inscrição municipal, é possível preencher o resto e realizar um teste?

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado

1 - Mudei o opção SalvarWS para 1, mas não grava nada na pasta PathSalvar.

image.png.20fade5a6f85a8956f692f472266e1ac.png

2 - Essa é a estrutura da pasta PathSchemas, todos os outros padrões estão funcionando normalmente, menos o  DBSeller.

3 - Conferi que no ACBrLib.ini os campos Emitente.CNPJ e Emitente.InscMun estão preenchidos sim.

Será que estou fazendo de errado? Tem varias outras prefeituras e padrões emitindo normalmente nessa mesma estrutura.

 

Segue os arquivos.

ACBrLibNFSe-20230727.log 11-rps.xml ACBrLib.ini emitir-numerorps-1.ini

  • Membros Pro
Postado

Eu posso passar o certificado do cliente para vocês testarem ai, porque já não sei mais o que fazer, ta na ultima versão, os INI estão sendo gerados corretamente, mais nesse padrão não funciona, todos os outros funcionam sem problema.

Agradeço imensamente a ajuda.

  • Consultores
Postado

Usando seu arquivo INI programa exemplo em C# não obtive erros de validação de schema, ao enviar, mas acusou TimeOut.

Se entendi certo, você utiliza Java. Se possível, por favor, faça um teste usando o programa exemplo disponibilizado.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Consultores
Postado

Se possível, me envie também, por favor, um print de como está o diretório que contem a dll(ACBrNFSe32.dll ou ACBrNFSe64.dll)

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado
1 hora atrás, Diego Foliene disse:

Usando seu arquivo INI programa exemplo em C# não obtive erros de validação de schema, ao enviar, mas acusou TimeOut.

Se entendi certo, você utiliza Java. Se possível, por favor, faça um teste usando o programa exemplo disponibilizado.

Consegue me mandar a sua pasta PathSchemas\DBSeller que vou usou?

57 minutos atrás, Diego Foliene disse:

Se possível, me envie também, por favor, um print de como está o diretório que contem a dll(ACBrNFSe32.dll ou ACBrNFSe64.dll)

image.thumb.png.f12a3c0944132a032820f117eaa1a917.png

Quero reforçar q

Quero reforçar a informação que eu emito NFSe desse mesmo projeto para vários outros padrões e prefeituras, estou com problemas somente no DBSeller.

  • Consultores
Postado
Agora, fredsmartfull disse:

Consegue me mandar a sua pasta PathSchemas\DBSeller que vou usou?

Segue e anexo.

Por favor, disponibilize um print da sua estrutura de diretórios.

Se estiver usando Java, as classes que disponibilizamos buscam em estrutura semelhante.

 

image.png

  • ACBrNFSe32.dll -> esta é a dll da Lib propriamente dita.
  • ACBrNFSeXServicos.ini -> este é um arquivo de dependência.
  • Schemas -> Essa pasta e seus arquivos também é uma dependência.
  • libcrypto-1_1.dll -> Esta é uma dll de dependência, que no meu caso por estar compilando em x86 eu peguei de ..\dep\OpenSSL\x86
  • libexslt.dll -> Esta é uma dll de dependência que por estar compilando em x86, peguei de ..\dep\LibXML2\x86
  • libiconv.dll -> Esta é uma dll de dependência que por estar compilando em x86, peguei de ..\dep\LibXML2\x86
  • libssl-1_1.dll -> Esta é uma dll de dependência, que no meu caso por estar compilando em x86 eu peguei de ..\dep\OpenSSL\x86
  • libxml2.dll -> Esta é uma dll de dependência que por estar compilando em x86, peguei de ..\dep\LibXML2\x86
  • lbxslt.dll -> Esta é uma dll de dependência que por estar compilando em x86, peguei de ..\dep\LibXML2\x86

 

DBSeller.zip

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Consultores
Postado

Meu objetivo é verificar se as dlls de dependência(OpenSSL e LibXML2) foram distribuídas corretamente.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado
1 minuto atrás, Diego Foliene disse:

Meu objetivo é verificar se as dlls de dependência(OpenSSL e LibXML2) foram distribuídas corretamente.

Se eles estivessem erradas os outros padrões funcionariam?

é so uma duvida mesmo.

  • Consultores
Postado
1 hora atrás, fredsmartfull disse:

Se eles estivessem erradas os outros padrões funcionariam?

é so uma duvida mesmo.

Infelizmente, não há um padrão estabelecido para os provedores.

Alguns deles, por exemplo, não requerem que seja assinado o XML. Já outros é necessário.

Então se usar um provedor que não precisa assinar o XML, não vai usar a LibXML2 e por isso não vai ter problema se deixar de distribuir ela.

Mas se for emitir para um provedor que precisa assinar, então vai ter problemas se não distribuir a LibXML2 corretamente.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado
6 minutos atrás, Diego Foliene disse:

Infelizmente, não há um padrão estabelecido para os provedores.

Alguns deles, por exemplo, não requerem que seja assinado o XML. Já outros é necessário.

Agora esta comunicação com a prefeitura, era a pasta PathSchemas\DBSeller, usando a que voce me enviou parrou os erros de validação, eu normalmente pego esses schemas com a prefeitura mais quando eles não entendem nem o que é um schema ai eu pego em: http://svn.code.sf.net/p/acbr/code/trunk2/Exemplos/ACBrDFe/ACBrNFSe/Schemas/DBSeller/, me aconselha pegar em algum outro lugar?

Emitindo aqui recebi esse retorno:
X999 - Erro de Conexão: SOAP-ENV:Server - Function 'RecepcionarLoteRpsSincrono' doesn't exist

Normalmente eu uso modoEnvio = 0, que seria o automático, para todos os outros padrões eu deixei no automático, eu preciso criar aqui um tratamento para esse prefeitura e enviar o modo 1 = LoteAssincrono ou isso e ajustado ai na DLL?

  • Curtir 1
  • Consultores
Postado
35 minutos atrás, fredsmartfull disse:

eu normalmente pego esses schemas com a prefeitura mais quando eles não entendem nem o que é um schema ai eu pego em: http://svn.code.sf.net/p/acbr/code/trunk2/Exemplos/ACBrDFe/ACBrNFSe/Schemas/DBSeller/, me aconselha pegar em algum outro lugar?

Você pode pegar daqui: https://svn.code.sf.net/p/acbr/code/trunk2/Exemplos/ACBrDFe/Schemas/NFSe

Mas eles também são distribuídos junto da Dll na pasta dep.

36 minutos atrás, fredsmartfull disse:

Normalmente eu uso modoEnvio = 0, que seria o automático, para todos os outros padrões eu deixei no automático, eu preciso criar aqui um tratamento para esse prefeitura e enviar o modo 1 = LoteAssincrono ou isso e ajustado ai na DLL?

Pode usar o 0 (meAutomatico), fazendo dessa forma a Dll decide qual é o método de envio a ser executado de acordo com o provedor.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado
1 hora atrás, Diego Foliene disse:

Pode usar o 0 (meAutomatico), fazendo dessa forma a Dll decide qual é o método de envio a ser executado de acordo com o provedor.

Quando eu uso 0 (Automático), eu recebo o seguinte retorno: 

X999 - Erro de Conexão: SOAP-ENV:Server - Function 'RecepcionarLoteRpsSincrono' doesn't exist

Estou usando a versão 1.0.0.34.

  • Consultores
Postado
44 minutos atrás, fredsmartfull disse:

Quando eu uso 0 (Automático), eu recebo o seguinte retorno: 

X999 - Erro de Conexão: SOAP-ENV:Server - Function 'RecepcionarLoteRpsSincrono' doesn't exist

Estou usando a versão 1.0.0.34.

Ainda está configurado para gerar o envelope de envio e resposta(SalvarWS e PathSalvar) ?

Foi gerado? Se sim, no arquivo consta esse "RecepcionarLoteRpsSincrono" ?

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
Postado
44 minutos atrás, Diego Foliene disse:

Ainda está configurado para gerar o envelope de envio e resposta(SalvarWS e PathSalvar) ?

Foi gerado? Se sim, no arquivo consta esse "RecepcionarLoteRpsSincrono" ?

Esta sim com o RecepcionarLoteRpsSincrono, segue os arquivos gerados.

8-env-lot-sinc.xml 8-env-lot-sinc-soap.xml 8-lista-nfse-sinc-soap.xml 81-rps.xml ACBrLibNFSe-20230731.log ACBrLib.ini emitir-numerorps-8.ini

  • Consultores
Postado

Bom dia!

Fiz um teste com a Lib e com o componente nativo e recebi o mesmo retorno que você.

Se importarmos o WSDL do web service, consta o RecepcionarLoteRPSSincrono na lista de serviços disponíveis, por isso a lib escolhe ele.

image.png

No entanto, conforme foi explicado pelo @Italo Giurizzato Junior e pelo resultado de nossos testes, parece que esse serviço não foi disponibilizado para esta cidade.

Dito isso, se você fizer questão de usar o método automático, sugiro que faça um teste importanto o WSDL no SoapUI.

Substitua o corpo da requisição pelo conteúdo do 8-env-lot-sinc-soap.xml.

Se o resultado for o mesmo, precisaria entrar em contato com o provedor para questionar o por quê de ele devolver este retorno.

Caso contrário, seria usar o método específico assíncrono para esta cidade mesmo.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

  • Membros Pro
  • Solution
Postado
1 hora atrás, Diego Foliene disse:

Bom dia!

Fiz um teste com a Lib e com o componente nativo e recebi o mesmo retorno que você.

Se importarmos o WSDL do web service, consta o RecepcionarLoteRPSSincrono na lista de serviços disponíveis, por isso a lib escolhe ele.

image.png

No entanto, conforme foi explicado pelo @Italo Giurizzato Junior e pelo resultado de nossos testes, parece que esse serviço não foi disponibilizado para esta cidade.

Dito isso, se você fizer questão de usar o método automático, sugiro que faça um teste importanto o WSDL no SoapUI.

Substitua o corpo da requisição pelo conteúdo do 8-env-lot-sinc-soap.xml.

Se o resultado for o mesmo, precisaria entrar em contato com o provedor para questionar o por quê de ele devolver este retorno.

Caso contrário, seria usar o método específico assíncrono para esta cidade mesmo.

Tudo bem não faço nenhum questão de usar o automático, perguntei porque você disse acima que poderia usar o 0, já fiz um if e isso já está resolvido.

 

Muito obrigado pela ajuda.

  • Curtir 1
  • Este tópico foi criado há 479 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.