Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia,

  Estou tendo um problema em minha aplicação na hora de fazer o cancelamento das NFe's 4.00, o serviço de emissão, consulta, inutilização estão funcionando perfeitamente.
No cancelamento acontece o seguinte, o envio está sendo feito, tanto, que se eu consultar, o sistema me retorna que está cancelada.
No demo está acontecendo a mesma coisa, alguém está passando ou passou por esse problema?

 

Em anexo está a mensagem que o demo está me retornando.

 

Desde já agradeço pela ajuda de todos.

Cancelamento4.00.PNG

Postado
  Em 12/07/2017 at 14:36, André Ferreira de Moraes disse:

Configure o demo para salvar os arquivos enviados e recebidos do webservice e anexe os arquivos gerados.

Expandir  

ok.

Segue os arquivos gerados.

1707121152-eve.xml

1707121152-ped-eve.xml

52170726300367000114550010000001251000001257-nfe.xml

52170726300367000114550010000001251000001257-sit.xml

52170726300367000114550010000001251000001257-ped-sit.xml

  • Moderadores
Postado

Ative a propriedade  ACBrNFe1.Configuracoes.WebServices.Salvar e refaça o cancelamento.

Debug a função procedure TDFeWebService.SalvarResposta;    da unit ACBrDFeWebService.pas para ver onde o arquivo está sendo gerado.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Postado (editado)

No debug, quando é passado o paramentro "FPRetWS := SeparaDados(FPRetornoWS, 'nfeRecepcaoEventoResult')", para a rotina, trecho abaixo, não é encontrado este parâmetro "nfeRecepcaoEventoResult" e nem o "NS2" apresentado na linha PosIni := Pos('NS2:' + UChave, UTexto) , no FPRetornoWS, por isso o result é vazio, embora o retorno seja "Cancelamento da nfe homolagado":

function SeparaDados(const AString: String; const Chave: String;
  const MantemChave: Boolean): String;
....
PosIni := Pos('<' + UChave, UTexto) ;
     if PosIni > 0 then
     begin
       PosIni := PosIni + Pos('>', copy(UTexto, PosIni, length(UTexto))); Aqui a variável UTexto tem o valor "nfeRecepcaoEventoResult" que não é encontrado no retorno da sefaz
       PosFim := Pos('/' + UChave, UTexto);
     end;
     if (PosFim = 0) then
      begin
        PosIni := Pos('NS2:' + UChave, UTexto) , aqui o valor "NS2" também não é encontrado no retorno da sefaz por isso as variavels PosIni e PosFim retornam com o valor 0;
        if PosIni > 0 then
        begin
          PosIni := PosIni + Pos('>', copy(UTexto, PosIni, length(UTexto)));
          PosFim := Pos('/NS2:' + UChave, UTexto);
        end ;
      end;
   end;
Teria que refazer a rotina??compl
Editado por alaran
complemento
  • Este tópico foi criado há 2868 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.