Ir para conteúdo
  • Cadastre-se

dev botao

Retorno Das Nfes Vazio Com A Última Versão Do Acbrnfe


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

Recommended Posts

Olá,

 

Fiz o update para a última versão do ACBrNFe presente no SVN e o sistema não estava conseguindo tratar os retornos do webservice.

Todas as propriedades estavam ficando vazios.

 

Depurando, descobri que ao tentar pegar apenas a parte do retorno referente ao NfeConsultaNF2Result a função SeparaDados da ACBrUtil não estava encontrando a tag.

 

Alterei a função para jogar as strings para maiúsculas antes de comparar e aí encontrou.

 

Segue o código alterado caso alguém esteja encontrando os mesmos problemas.

 

*Função se encontra em Fontes\ACBrComum\ACBrUtil

function SeparaDados( Texto : AnsiString; Chave : String; MantemChave : Boolean = False ) : AnsiString;
var
  PosIni, PosFim : Integer;
  Texto_temp, Chave_temp: String;
begin
  //Internews
  {Done: Alteração da Internews}
  Texto_temp := AnsiUpperCase(String(Texto));
  chave_temp := AnsiUpperCase(Chave);
  if Mantemchave then
   begin
     PosIni := Pos(String(chave_temp),String(Texto_temp))-1;
     PosFim := Pos('/'+String(chave_temp),String(Texto_temp))+length(String(chave_temp))+3;

     if (PosIni = 0) or (PosFim = 0) then
      begin
        PosIni := Pos('ns2:'+String(chave_temp),String(Texto_temp))-1;
        PosFim := Pos('/ns2:'+String(chave_temp),String(Texto_temp))+length(String(chave_temp))+3;
      end;
   end
  else
   begin
     PosIni := Pos(String(chave_temp),String(Texto_temp))+Pos('>',copy(String(Texto_temp),Pos(String(chave_temp),String(Texto_temp)),length(String(Texto_temp))));
     PosFim := Pos('/'+String(chave_temp),String(Texto_temp));

     if (PosIni = 0) or (PosFim = 0) then
      begin
        PosIni := Pos('ns2:'+String(chave_temp),String(Texto_temp))+Pos('>',copy(String(Texto_temp),Pos('ns2:'+String(chave_temp),String(Texto_temp)),length(String(Texto_temp))));
        PosFim := Pos('/ns2:'+String(chave_temp),String(Texto_temp));
      end;
   end;
  Result := AnsiString(copy(String(Texto),PosIni,PosFim-(PosIni+1)));
end;

Thiago Fonseca Lima

Programador Delphi e Java

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia Thiago,

 

Uma coisa é certa você não esta com os fontes atualizados.

 

Pois essa alteração foi realizada pelo Jairo e disponibilizada por mim em 15/04/2014.

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á 3540 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.