Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde a todos.

Começou um cliente novo conosco ontem em ambiente de homologação de CT-e de MG. Tive problemas retornando exception do Acbr "Conhecimento(s) não cofirmados: n->".

Investigando melhor o assunto, notei que o retorno de lote processado estava diferente na tag infProt (arquivo está em anexo).

Fiz uma alteração no pcnLeitor.pas na rotina TLeitor.rExtrai e funcionou. Segue abaixo como ficou (o trecho em negrito foi o que adicionei):

function TLeitor.rExtrai(const nivel: integer; const TagInicio: string; TagFim: string = ''; const item: integer = 1): AnsiString;
var
  Texto: AnsiString;
  i,j: integer;
begin
  //NOTA: Extrai um grupo de dentro do nivel informado
  FNivel.strings[0] := FArquivo;
  if Trim(TagFim) = '' then
    TagFim := TagInicio;
  Texto := FNivel.Strings[nivel - 1];
  Result := '';
  FGrupo := '';
  for i := 1 to item do
    if i < item then
      Texto := copy(Texto, pos('</' + Trim(TagFim) + '>', Texto) + length(Trim(TagFim)) + 3, maxInt);

  /////////////////
  ///  infProt MG
  if TagInicio = 'infProt' then
  begin
    Texto := StringReplace(Texto,'ns3:','',[rfReplaceAll]);
    Texto := StringReplace(Texto,'ns6:','',[rfReplaceAll]);
    Texto := StringReplace(Texto,' xmlns="http://www.portalfiscal.inf.br/cte"','',[rfReplaceAll]);
  end;


  j := pos('</' + Trim(TagFim) + '>', Texto);
  if j = 0 then
    j := pos('</' + Trim(TagFim) + ':', Texto); // Correção para WebServices do Ceará/MG

  //Correção para leitura de tags em que a primeira é diferente da segunda Ex: <infProt id=XXX> e a segunda apenas <infProt>
//  Texto := copy(Texto, 1, pos('</' + Trim(TagFim) + '>', Texto) + length(Trim(TagFim)) + 3);
  Texto := copy(Texto, 1, j + length(Trim(TagFim)) + 3);

  i := pos('<' + Trim(TagInicio) + '>', Texto);
  if i = 0 then
    i := pos('<' + Trim(TagInicio) + ' ', Texto);
  if i = 0 then
    i := pos('<' + Trim(TagInicio) + ':', Texto); //correção para webservice do Ceará
  if i = 0 then
    exit;
  Texto := copy(Texto, i, maxInt);

  // Alterado por Claudemir em 13/03/2013: j:=pos('</' + Trim(TagFim) + '>',Texto);
//  j:=pos('</' + Trim(TagFim) + '>', Texto) + length(Trim(TagFim)) + 3;
  j:=pos('</' + Trim(TagFim) + '>', Texto);

  if j=0 then
   j:=pos('</' + Trim(TagFim) + ':', Texto); //correção para webservice do Ceará

//  Result := TrimRight(copy(Texto, 1, j - 1));
  Result := TrimRight(copy(Texto, 1, j - 1 + (length(Trim(TagFim)) + 3)));
  FNivel.strings[nivel] := Result;
  FGrupo := result;
end;
 

Alguém já se deparou com esse problema? Estou esquecendo de algo, ou essa alteração que fiz está correta?

Outro problema que tive foi que ontem, quando me deparei com esse problema, atualizei os fontes do ACBr conforme meu amigo Juliomar me sugeriu e, após isso, começou a gerar um exception em branco no envio de evento de cancelamento de CT-e. Tive que voltar os fontes anteriores.

 

311000002104204-pro-rec.xml

  • Consultores
Postado
2 minutos atrás, vcmdevel disse:

Estamos com o mesmo problema, mas em produção.

A correção acima resolve o problema de vocês?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Boa tarde,

Eu estava tendo este problema em homologação e a partir de hoje comecei a ter em produção, e até então não tinha descobrido o problema.

Com a alteração do Osw.tda eu conseguir autorizar o XML!

Porém, as tags com os dados da autorização estão diferentes

-<protCTe xmlns="" versao="2.00" xmlns:ns4="http://www.portalfiscal.inf.br/cte">
  -<ns4:infProt xmlns="" Id="ID131160001145361" xmlns:ns7="http://www.portalfiscal.inf.br/cte">
    <ns7:tpAmb xmlns="http://www.portalfiscal.inf.br/cte">2</ns7:tpAmb>
    <ns7:verAplic xmlns="http://www.portalfiscal.inf.br/cte">1.0.1</ns7:verAplic>
    <ns7:chCTe xmlns="http://www.portalfiscal.inf.br/cte">31160603341645000186574990000010291267108549</ns7:chCTe>
    <ns7:dhRecbto xmlns="http://www.portalfiscal.inf.br/cte">2016-06-23T14:37:18</ns7:dhRecbto>
    <ns7:nProt xmlns="http://www.portalfiscal.inf.br/cte">131160001145361</ns7:nProt>  
    <ns7:digVal xmlns="http://www.portalfiscal.inf.br/cte">R9asUGvdFNaBrYgsgCUJtVU4ygY=</ns7:digVal>
    <ns7:cStat xmlns="http://www.portalfiscal.inf.br/cte">100</ns7:cStat>
    <ns7:xMotivo xmlns="http://www.portalfiscal.inf.br/cte">Autorizado o uso do CT-e</ns7:xMotivo>
  </ns4:infProt>
</protCTe>

Esta alteração será disponibilizada no repositório?

Atenciosamente.

Saudações,

Wislei de Brito Fernandes

Postado

Também estou com o mesmo problema em produção e homologação. No estado de SP está funcionando.

Creio que esse retorno seja um problema da SEFAZ porque eu não encontrei esse "formato" de XML no manual de orientação ou notas técnicas.

  • Curtir 1
Postado
1 minuto atrás, gguimp disse:

Também estou com o mesmo problema em produção e homologação. No estado de SP está funcionando.

Creio que esse retorno seja um problema da SEFAZ porque eu não encontrei esse "formato" de XML no manual de orientação ou notas técnicas.

Realmente,

Mudando o tipo de emissão para SVC-SP, os conhecimentos são enviados sem problemas, porém, o SVC em produção não está habilitado.

  • Curtir 1

Saudações,

Wislei de Brito Fernandes

Postado

Em produção, mas eu deixei o código sugerido pelo @Osw.tda, só coloquei mais essas duas linhas
Texto := StringReplace(Texto,'ns4:','',[rfReplaceAll]);
Texto := StringReplace(Texto,'ns7:','',[rfReplaceAll]);
mas depurando, já pude perceber que tinha voltado ao normal.

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