Ir para conteúdo
  • Cadastre-se

dev botao

The processing instruction target matching “[xX][mM][lL]” is not allowed


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

Recommended Posts

Bom dia,

Estou fazendo a integração com a cidade de Sinop-MT. O provedor lá é o FISS-LEX. Já fiz toda a habilitação junto a empresa para uso do ambiente de testes.

Verifiquei que neste provedor não é possível utilizar o comando EnviarSincrono. Estou tentando o envio pelo Enviar.

Porém no momento do envio do lote recebo a seguinte mensagem de erro:

The processing instruction target matching “[xX][mM][lL]” is not allowed

Estive pesquisando a respeito e aqui mesmo no fórum um outro colega resolveu acrescentando algumas configurações no arquivo ini. Porém já verifiquei isso e está ok aqui. Atualizei os componentes pelo repositório também. Está agora na revisão 13772, mas mesmo assim o erro persiste.

Em outros fóruns alguns comentam que pode ser algum caracter ou espaço deixado antes da definição <?xml >, mas isso também já conferi e tudo gera normalmente. Meu sistema já faz emissão no ambiente da prefeitura de Maringá sem nenhum erro há mais de um ano.

Esta mensagem é retornada nesta linha:

      FPRetornoWS := FPDFeOwner.SSL.Enviar(FPEnvelopeSoap, FPURL, FPSoapAction, FPMimeType);

na procedure TDFeWebService.EnviarDados da unit ACBrDFeWebService.

Alguém no fórum já passou por este problema ou já faz emissão em Sinop? O que mais poderia causar essa mensagem?

Segue em anexo a imagem com a mensagem de retorno.

Obrigado desde já.

Abraço

Claudiney

 

 

 

Capturar.JPG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Claudiney,

Mas não é dessa forma que se envia um lote de RPS.

FPRetornoWS := FPDFeOwner.SSL.Enviar(FPEnvelopeSoap, FPURL, FPSoapAction, FPMimeType);

Favor estudar o programa exemplo.

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

Boa tarde Italo,

Desculpa pela confusão.. não estou enviando dessa forma.

A linha onde faço o envio é essa:

 

Quote

if ACBrNFSe1.Enviar(StrToInt(ACBrNFSe1.NotasFiscais.NumeroLote), false) then

A que apresentei acima é onde é gerado o retorno com erro, no momento que passo depurando. Isso está dentro do código do componente. Ali eu não mexo. Daí ele retorna a exceção para o meu sistema e apresenta a mensagem que enviei em anexo. 

Dessa mesma forma eu já envio para outros provedores. Só lá tenho esse retorno.

Abraço e obrigado.

Claudiney

 

 

 

Link para o comentário
Compartilhar em outros sites

Consegui encontrar o motivo deste erro.

No arquivo FISSLex.ini existe esta configuração:

[Recepcionar]
IncluiEncodingCab=0
IncluiEncodingDados=1

Alterei para isto:

[Recepcionar]
IncluiEncodingCab=0
IncluiEncodingDados=0

Deixou de apresentar o problema acima.

Porém caiu em um outro erro (em anexo):

Error Reading WS_RecepcionarLoteRps.ExecuteMessage: (xml gerado) 

Caso alguém tenha alguma informação sobre isso fico muito grato.

Obrigado.

Claudiney

Capturar.JPG

Link para o comentário
Compartilhar em outros sites

Oi Italo,

Quando faço a chamada e acontece esse erro são gerados dois arquivos.. um do envio do lote e outro com o retorno que tem essa falha.. Estou te encaminhando em anexo. (os arquivos com código 1)

Fazendo testes aqui percebi que se alterar no FISSLex.ini a linha Dados=0 para Dados=1 na seção XML , para que os dados sejam convertidos em string, ele envia sem acusar esse erro. Porém na consulta da situação ele informa que o CNPJ do prestador não foi emitido e retorna um número de lote diferente do enviado (7334). Acredito que dessa forma ele não esteja lendo corretamente o arquivo enviado. Essa opção não deve ser compatível com o provedor, certo? Estou te encaminhando em anexo também os arquivos retornados nessa situação para análise. (o arquivo com código 2, o arquivo com código 7334 e os arquivos de consulta e retorno da situação do lote).

Caso precise de mais alguma informação estou a disposição.

Agradeço pela ajuda.

Claudiney

 

1-env-lot.xml

1-rec.xml

2-env-lot.xml

MjAxNzA4MjRfMDAwMDAwNzMzNA==-con-sit.xml

MjAxNzA4MjRfMDAwMDAwNzMzNA==-sit.xml

Editado por Claudiney Cogo
Link para o comentário
Compartilhar em outros sites

  • Consultores

Claudiney,

O Provedor FISSLex já foi testado por outros desenvolvedores e esta funcionando 100% sem nenhuma alteração no arquivo INI do provedor.

Sendo assim, algo de errado você esta fazendo.

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

Bom dia Italo, tudo bem?

Me desculpe mais uma vez se passei uma impressão errada. Não tenho dúvidas quanto ao bom funcionamento do ACBR. Utilizo há bastante tempo e nunca tive problemas, emitindo NFSe, NFe e boletos. Não estou de maneira nenhuma questionando a qualidade dos componentes.

Acredito que outras pessoas com certeza já utilizaram. Também que posso estar fazendo algo errado sim. É isso que quero descobrir. Mas o que me causa estranheza é justamente o fato de o mesmo código enviar para outras prefeituras sem nenhum problema. A única diferença é que nas outras uso o EnviarSincrono e aqui essa opção não existe e preciso usar o Enviar.

De qualquer forma, para tirar qualquer dúvida, deixei o meu código de lado e fui analisar o demo que está na pasta do ACBR. Por ali eu poderia encontrar onde está o ponto em que eu possa estar fazendo diferente.

Configurei lá então os mesmos dados do prestador e o certificado digital deles. Alterei a cidade para Sinop-MT e cliquei em Gerar e Enviar Lote RPS.. num primeiro momento me retornou a mensagem que a função EnviarSincrono não estava disponível para este provedor. Então verifiquei no fonte que ele estava utilizando essa função nesta opção do demo e não apenas no botão Gerar e Enviar Lote - Sincrono. Alterei então a linha onde tem "ACBrNFSe1.EnviarSincrono(vNumLote);" para "ACBrNFSe1.Enviar(vNumLote);". Apenas essa linha e fiz novamente o envio.

Em anexo estou encaminhando a imagem do erro gerado (exatamente o mesmo que tive aqui) e os arquivos xml gerados no envio e no retorno.

Veja que cai no mesmo problema que tenho aqui no meu projeto.

Preciso muito descobrir a causa disso e resolver essa situação para o cliente. Seja atualizando os componentes, se for o caso, ou corrigindo qualquer coisa que eu esteja errando aqui. Por isso estou procurando ajuda do pessoal do fórum. Se alguém que já tenha feito essa integração com o FISSLex puder me dar um help eu fico muito grato.

Abraço e obrigado.

Claudiney.

1-env-lot.xml

1-env-lot-soap.xml

1-rec.xml

1-rec-soap.xml

Capturar.JPG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Claudiney,

Você alterou o arquivo FISSLex?

Se sim desfaça a alteração pois como dito anteriormente esse provedor esta funcionando 100%.

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

Oi Italo..

Não fiz nenhuma alteração nesse que está no demo. É o original que foi baixado na atualização ontem, com data de abril/2017. Está em anexo.

Caso você queira os dados e o certificado desse cliente para fazer um teste no ambiente FISSLex eu posso te encaminhar. Já falei com o cliente e ele autorizou. Me passe apenas um e-mail para onde eu possa enviar, ok.

Abraço.

 

FISSLex.ini

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Claudiney,

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

A sua aplicação esta usando o FISSLex.ini correto?

O ini que você anexou a seção XML esta da seguinte forma:

VersaoCabecalho=1.00
VersaoDados=1.00
VersaoXML=1.00
NameSpace=http://www.abrasf.org.br/ABRASF/arquivos/
Cabecalho=0
Dados=0

e o que consta no repositório esta assim:

VersaoDados=1.00
VersaoXML=1.00
NameSpace=http://www.abrasf.org.br/ABRASF/arquivos/
Cabecalho=1
Dados=1

Percebeu a diferença?

  • Obrigado 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

Boa tarde Italo,

Obrigado pelo retorno.

Esse arquivo que te enviei é um que estava na pasta do ACBR mesmo, no caminho "ACBr\Exemplos\ACBrDFe\ACBrNFSe\Delphi" de onde estava executando o demo. Fiz o update ontem de manhã e este arquivo estava nesta pasta. 

Porém com a sua informação eu removi toda esta pasta e fiz o update novamente. Isso fez o restore da pasta toda. Aí então percebi que nesta pasta só ficaram os arquivos do projeto e que os arquivos .ini estavam em uma pasta em separado em "ACBr\Exemplos\ACBrDFe\ACBrNFSe\ArqINI".

Porque existiam esses arquivos na pasta do projeto não sei dizer. É muito provável que eu tenha copiado isso há algum tempo atrás fazendo algum teste e eles não foram removidos na atualização, por não fazer parte do pacote.

Atualizei toda minha pasta com os arquivos das pastas ArqINI e Schemas e deu certo. 

Testando aqui eu cheguei a trocar os campos Cabecalho e Dados para 1. Realmente enviava, mas algum outro detalhe a mais deve ter na configuração, pois ainda retornava um outro erro.

Mas o importante é que isso resolveu o problema. Era apenas configuração do ambiente que estava ficando errado.

Peço desculpas pela confusão toda. Mas são coisas do desenvolvimento de sistemas. De dentro muitas vezes não percebemos o que está na cara.

Agradeço pela ajuda e parabenizo pelo trabalho com o ACBr. Me coloco a disposição para o que precisar.

Abraço

Claudiney.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia Italo,

Desculpe te incomodar mais uma vez, mas poderia tirar uma outra dúvida..

É a primeira vez que uso a função Enviar.. sempre trabalhei com a EnviarSincrono.

Na EnviarSincrono sempre que faço a chamada no próprio objeto onde gerei as NFSes ele já retorna o número da NFSe gerada, o código de verificação e o arquivo gerado, nas seguintes propriedades:

ACBrNFSe1.NotasFiscais.Items.NFSe.Numero
ACBrNFSe1.NotasFiscais.Items.NFSe.CodigoVerificacao
ACBrNFSe1.NotasFiscais.Items.NomeArq

Aqui no Enviar eu vi que ele automaticamente faz a consulta na situação do lote logo após o envio. Gera também o XML de retorno com todos os dados. Mas no objeto NFSe esse campos não são atualizados e permanecem vazios. Mesmo no demo.

Onde tenho acesso a esses dados? É necessário algum outro comando após o Enviar?

Obrigado mais uma vez.

Abraço

Claudiney.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Claudiney,

Por favor vamos seguir as regras do fórum, assunto novo, tópico novo.

Mas respondendo a sua pergunta, algo de errado você esta fazendo, pois a rotina que lê os dados da NFS-e retornada ao enviar o RPS pelo método Enviar e EnviarSincrono é uma só.

  • Obrigado 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

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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