Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao validar XML NFSe Provedor Abaco Manaus


  • Este tópico foi criado há 2263 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde,

Estou com um problema aqui em Manaus na emissão de notas de serviço. Desde ontem o sistema mudou de ginfes para abrasf (Abaco). Baixei o ACBR pra versão mais atualizada mas estou com uma enorme dificuldade na validação do XML. O sistema sempre dá o erro abaixo:

 

'SERIAL=462946501471252597,CNPJ=,URI=#12426400001 Documento invalido! Documento nao pode ser validado, verifique assinatura e se o arquivo nao sofreu alteracao Nao foi possivel validar o schema XSD e a assinatura do arquivo'

 

É como se estivesse alterando o conteúdo do mesmo depois da assinatura.

Segundo o manual aqui pra Manaus, temos que assinar o RPS e o Lote, então no arquivo Abaco.ini coloco abaixo:

[Assinar]
RPS=1
Lote=1

Porém ele só coloca na tag <Reference URI> o id do RPS. O do lote fica em branco. Ele só preenche o URI do Lote se no início do arquivo Abaco.ini colocar:

[Geral]
Identificador=Id <= Id com I maiúsculo

Só que se colocar assim ele dá erro diferente, dizendo que o XML está incorreto.

Estou com esse problema grave aqui em Manaus, visto que o sistema já virou e na empresa preciso faturar 2000 notas fiscais até segunda-feira.

Conto com vossa ajuda.

Obrigado

ErroNFSe.PNG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Felipe,

Favor anexar o XML de envio do lote para que possamos analisar.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

obrigado por responder o post. Anexei os XMLs de envio e retorno e também o Abaco.ini, caso precise.

Fico no seu aguardo e mais uma vez obrigado por interceder. Estou correndo da sala pra cozinha pra tentar resolver esse problema. Deve ser uma coisa simples, que ainda não consegui identificar.

Grato

Abaco.ini

1-rec.xml

1-env-lot.xml

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

só pra complementar, a prefeitura me enviou um arquivo de exemplo. Tem outra coisa que gostaria de perguntar. Eles falaram que no id do Lote e do RPS, tenho que colocar LOTE12344 e RPS1233, porém, no ACBR, quando ele vai gerar o XML, ele usa a função onlynumber. Tem como deixar com alfanumérico de forma parametrizada, ou esse é o padrão do acbr ?

Obrigado desde ja.

XML_SEM_QUEBRA_DE_LINHA.txt

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Felipe,

Favor verificar o valor da propriedade de configuração: Configuracoes.Geral.IdentarXML

Essa propriedade tem que estar com o valor False.

Por padrão essa propriedade recebe o valor False, sendo assim procure no seu fonte se não existe nenhuma linha que esteja alterado o valor dela para True.

Caso afirmativo remova essa linha e refaça os testes.

É possível sim mudar o valor do atributo id, mas vamos checar primeiro a propriedade IdentarXML.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

coloquei como false a propriedade IdentarXML, porém continuou com o mesmo erro. Fiz uma análise do que eles estão informando e abaixo coloco uns comentários, pra tentar ajudar a resolver o problema. Agradeço mais uma vez pela ajuda. Estou correndo pra tentar sanar essa questão com meu cliente.

O arquivo Reference.jpg quem me enviou foi a Prefeitura aqui de Manaus. No id do Lote está LOTE12344 e no id do Rps está RPS1234. Eles estão também na tag <Reference URI>. Vi no código do ACBR que ele, dependendo do provedor, ele vai com os alfanuméricos ou apenas com a parte inteira. Identifiquei isso com o provedor NFSeBrasil. Nele o RPS vai como informado nas propriedades do XML. E outro ponto, que não consegui localizar é o porque na <Reference URI> do Lote, não sai a informação. Lá fica em branco. No caso do RPS e Lote com os Alfas, poderia ter um CASE a mais, para considerar o Ábaco ? Ou isto impactaria em outros ? Sobre o id do Lote no URI aí não consegui ver mesmo.

Mas tenho fé e certeza que o apoio de vocês será essencial nestas questões.

Estou a disposição pra enviar qualquer arquivo, print ou informação que possa contribuir com a solução desta questão.

Obrigado

Reference.jpg

LimpandoNroRPS.PNG

NFSeBrasil.PNG

Erro.PNG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Felipe,

Favor atualizar os fontes.

Fiz uma alteração a fim de deixar o valor do atributo id tanto do RPS quando do Lote igual do exemplo disponibilizado pelo provedor.

Fiz também uma alteração visando incluir o valor do id do Lote no atributo URI da assinatura do Lote.

Não sei se com essas alterações o problema será sanado.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

acho que falta pouco. A questão de permitir alfanumérico no número do RPS está ok, muito obrigado. Vi no código que você adicionou o Abaco num CASE lá. Agora está dando um erro, antes de gerar os arquivos para envio (env e rec). "A string literal was expected....." <= Isto na hora de Assinar o Lote. Printei o local onde dá o erro no arquivo ACBRDFeXsMsXMLCapicom, que é onde coloca o SelectionNamespaces. Eu tentei informar o Numero do Lote "Lote1" tanto nas tags internas NotasFiscais.NumeroLote:= sId + '1'; e NotasFiscais.Add.NFSe.NumeroLote := sId + '1';, porém o erro persiste. Tentei até na função Envia('LOTE1') colocar com número e em branco, mas dá o mesmo erro.

Agora deve ser algum detalhe pequeno de configuração eu acho.

Fico no seu aguardo.

Muito obrigado Italo.

Saudações

LocaldoErrov2.png

NroLotev2.PNG

1318010437942600015956000000000000000-rps.xml

Errov2.PNG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Felipe,

Informe o lote somente numerico, por exemplo 1 e deixa o componente acrescentar o literal "LOTE" como prefixo.

Da forma que você fez o ID do lote ficou LOTELOTE1, notou?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Felipe,

Vou tentar simular o erro, assim que eu tiver uma solução lhe aviso.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Felipe,

Para que o componente fosse capaz de gerar o XML, assinar, enviar e obter um retorno foi necessário desfazer algumas coisas, tais como:

Não assinar o RPS, não incluir no atributo URI da assinatura do lote o valor do atributo id e manter o NameSpace no tag <EnviarLoteRpsEnvio>.

Com isso obtive a seguinte resposta do Web Service:

<MensagemRetorno>
 <Codigo>1</Codigo>
 <Mensagem>XML Inválido - ORA-19030: Method invalid for non-schema based XML Documents.</Mensagem>
 <Correcao/>
</MensagemRetorno>

Pesquisando sobre o erro ORA-19030 encontrei o seguinte:

Através da mensagem ORA-19030, o banco de dados está alertando que não pode encontrar um esquema XML associado e, portanto, não pode validar o conteúdo XML de um método válido.

Chego a conclusão que ao montar o Web Service da cidade de Manaus o provedor Abaco esqueceu de configurar corretamente o local onde se encontra o Schema.

Vou enviar para o repositório os fontes que antes funcionava perfeitamente o provedor Abaco para as outras cidades.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Felipe,

Favor atualizar os fontes, fazer um novo teste, o lote será gerado assinado, validado e enviado.

O Web Service vai retornar com o erro apresentado na postagem anterior.

Ai você entra em contato com o provedor e informa o erro que esta ocorrendo e o significado do mesmo pesquisado na Internet.

http://www.liberidu.com/blog/2014/11/14/howto-validate-xml-content-against-an-xml-schema/

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Italo,

obrigado mais uma vez pelo retorno.

Só duas dúvidas:

1- Ele vai assinar só o Lote ? Porque eles pedem pra assinar o RPS também. Posso deixar apenas para assinar o RPS que o sistema irá automaticamente assinar o lote? É isso ?

2- Você diz que preciso entrar em contato com o provedor. Nesse caso é com a Ábaco ? http://www.abaco.com.br/TNX/faleconosco.php# ??

Obrigado. No aguardo

Saudações

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Felipe,

A principio o provedor Ábaco devemos assinar somente o Lote, mas se você alterar o arquivo Abaco.ini é possível fazer ele assinar o RPS e o Lote.

Você pode fazer esse teste para ver se o erro muda.

De posse dos retornos do provedor, entrar em contato com eles para questionar sobre o erro ORA-19030.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

nessa atualização tive algumas inconsistências, tanto se colocar pra assinar somente o lote, somente o RPS, os dois juntos ou sem assinatura. Printei a tela dos erros de cada simulação.

Ainda não consegui nem alcançar o erro ORA.

Fico grato pelo seu apoio até o momento e tenho certeza que iremos conseguir sanar isso. Muito obrigado.

No aguardo dos seus comentários.

Saudações

ErroSemColocarRPSeLote.PNG

ErroColocandoLoteeRPS.PNG

ErroColocandoSoRPS.PNG

ErroColocandoSoLote.PNG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Felipe,

Até onde sei no caso do provedor Ábaco só devemos assinar o Lote.

Você esta usando o programa exemplo para realizar os testes?

Você tem certeza que todos os fontes de todas as pastas estão atualizados?

O programa esta se utilizando dos arquivos INI que estão na pasta ArqINI?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa noite Italo,

sim. Fiz a remoção do ACBR e na instalação removi todos os arquivos anteriores. Apontei pra pasta do ArqIni também corretamente.

Só que quando eu mando assinar apenas o lote, dá o erro de uma das imagens que mandei: Não localizada declaração do elemento EnviarLoteRpsEnvio.

No aguardo

Saudações

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Felipe,

Parece que o pessoal do Ábaco resolveram o problema do ORA-19030 agora para mim também esta aparecendo o erro informando que: Não localizada declaração do elemento EnviarLoteRpsEnvio, mas veja bem essa mensagem de erro já é um retorno do provedor.

Ela se encontra no arquivo de retorno do envio, salvo com o nome: *-rec.xml

Sendo assim o componente esta gerando o XML, assinando, validando e enviando com sucesso para o provedor, este por sua vez esta rejeitando o XML do recebido.

Acontece que segundo o Schema existe o elemento EnviarLoteRpsEnvio e dentro deste temos os grupos: LoteRps e Signature, veja:

    <xsd:element name="EnviarLoteRpsEnvio">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="LoteRps" type="tcLoteRps"/>
                <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

Favor entrar em contato com o provedor e questiona-los sobre esse erro.
 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

Hoje estive com a Ábaco na Sede da Prefeitura aqui de Manaus e finalmente conseguimos resolver a emissão do RPS + NFSe. Estou apenas com uma dificuldade com relação ao retorno do envio do RPS. Anteriormente, no Ginfes, após o envio, as propriedades NomeArq, NFSE.Numero, NFSE.CodigoVerificacao, etc, estavam todas preenchidas com as informações da nota fiscal referente. Agora no Ábaco, ele envia normalmente, mas não alimenta as propriedades de retorno. É como se fosse um envio assíncrono, sem aguardar o processamento do RPS/Lote, não tendo dessa forma o retorno rápido da numeração da nota, para impressão da nota.

Eu preciso mudar algum comando ? Ou acionar algum outro comando para obter os dados da nota (XML, Número, etc) ? Para poder salvar o XML, Imprimir, etc.

Obrigado e no aguardo.

Felipe

sXML := ACBrNFSe1.NotasFiscais.Items[0].NomeArq;

ACBrNFSe1.NotasFiscais.Items[0].ImprimirPDF;

ACBrNFSe1.NotasFiscais.Items[0].GravarXML(ExtractFileName(sXML),ACBrNFSe1.Configuracoes.Arquivos.PathSalvar);

 ACBrNFSe1.NotasFiscais.Items[0].NFSe.Numero;
 

Link para o comentário
Compartilhar em outros sites

×
×
  • 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.