Ir para conteúdo
  • Cadastre-se

dev botao

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


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

Recommended Posts

Postado

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

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