Jump to content

110.png

Curso Gratuito para todos Usuários
+ Super Treinamento Assinando o SAC Anual

botao_campanha_thulio.png

sem_ttulo-620.fw_-e1583866078274.png 

Curso Dominando o ACBrMonitor
Novo Módulo Soluções de Varejo
Assine o SAC ACBr em qualquer plano e tenha acesso

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba Mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

mauriciofporto

NFSe trunk2

Recommended Posts

Boa noite!

Antes de atualizar para o Trunk2 eu fazia os seguintes passos:

Alimentava o componente e envia com o método Enviar, depois pegava o numero da nota e salvava o XML definitivo (Validado, Assinado e Autorizado).

No Trunk2 faço os mesmo procedimento só que não consigo pegar o numero da nota e nem obter o XML (Final).

Só pra informação uso no Rio de janeiro - RJ

Preciso de ajuda ou uma luz para resolver esse problema.

Desde já agradeço.

Share this post


Link to post
Share on other sites

Boa tarde Mauricio,

Veja a rotina referente ao botão [Gerar e Enviar Lote] do programa exemplo.

(...)

 ACBrNFSe1.Enviar(vNumLote);

 for i := 0 to iQtde -1 do
 begin
   MemoDados.Lines.Add('Nome XML: '+ACBrNFSe1.NotasFiscais.Items[ i ].NomeArq);
   MemoDados.Lines.Add('Nota Numero: '+ACBrNFSe1.NotasFiscais.Items[ i ].NFSe.Numero);
   MemoDados.Lines.Add('Código de Verificação: '+ACBrNFSe1.NotasFiscais.Items[ i ].NFSe.CodigoVerificacao);
 end;

(...)


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

Italo, meus fontes estao atualizados para data de hoje 18/02 trunk 2.

Minhas linhas de envio estão conforme sua descrição acima.

Configuração ACBrNFSe1.Configuracoes.Geral.ConsultaLoteAposEnvio:= true;

Está enviando, porem após envio ( ACBrNFSe1.Enviar(vNumLote)), está gerando um erro em branco nesta procedure:

procedure TACBrDFe.GerarException(const Msg: String; E: Exception);
var
  Tratado: Boolean;
  MsgErro: String;
begin
  MsgErro := Msg;
  if Assigned(E) then
    MsgErro := MsgErro + sLineBreak + E.Message;

  Tratado := False;
  FazerLog('ERRO: ' + MsgErro, Tratado);

  if not Tratado then
    raise EACBrDFeException.CreateDef(MsgErro);
end;
 

A partir daí pára a execução e não consigo pegar os retornos na sequencia.

for i := 0 to iQtde -1 do
 begin
   MemoDados.Lines.Add('Nome XML: '+ACBrNFSe1.NotasFiscais.Items[ i ].NomeArq);
   MemoDados.Lines.Add('Nota Numero: '+ACBrNFSe1.NotasFiscais.Items[ i ].NFSe.Numero);
   MemoDados.Lines.Add('Código de Verificação: '+ACBrNFSe1.NotasFiscais.Items[ i ].NFSe.CodigoVerificacao);
 end;

O provedor está recebendo, verifiquei.

 

  • Like 1

Share this post


Link to post
Share on other sites

Bom dia Micheli,

O componente possui uma propriedade de configuração chamada: ConsultaLoteAposEnvio se atribuir o valor True ele realiza a consulta automaticamente.


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

Sim eu sei.

Está configurado para true.

O problema é que não chega a retornar nada além do erro em branco.

Então pra dar um jeitinho fiz o consulta por rps pra retornar em uma consulta fora da transmissão.

 

  • Like 1

Share this post


Link to post
Share on other sites

Basicamente a exception  vem da consultaloteaposenvio, na acbrnfsewebservices, nesta linha:

 

 if (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.ConsultaLoteAposEnvio) and (Result) then
  begin
    if (FConsSitLoteRPS.VersaoNFSe = ve100) or
       (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor = proCONAM) then
    begin
      Result := FConsSitLoteRPS.Executar;

      if not (Result) then
        FConsSitLoteRPS.GerarException( FConsSitLoteRPS.Msg );
    end;

 

 

 

Italo, acho que tem a ver com esse post:

http://www.projetoacbr.com.br/forum/topic/25439-webservicesconssitloteprotocolo-no-trunk2/

Share this post


Link to post
Share on other sites

Boa noite Micheli,

É necessário configurar o componente no tange as propriedades de quantidade de tentativas e tempo entre uma e outra,

E essa configuração varia de um provedor para outro e mesmo sendo o mesmo provedor também pode variar de uma cidade para outra.


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

Sim concordo com vc e imagino que deve ser referente a tempo.

So que no trunk esta a mesma configuração do trunk2 e nao acusa o erro.

aguardarconsultaret 0

ajusta false

intervalo tentativas 1000

tentativas 5

timeout 5000.

 

Mais alguma idéia do que possa ser?

 

 

Edited by Micheli Martins
  • Like 1

Share this post


Link to post
Share on other sites

Boa tarde Michele,

Quando migrei o componente ACBrNFSe para o Trunk2 os testes que realizei foi com o provedor Ginfes.

E semana passada fiz novos testes usando o programa exemplo e tudo foi executado sem nenhum problema e os tempos de esperas razoáveis na ordem de 2 a 3 segundos.


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites
On 22/02/2016 at 4:28 PM, Micheli Martins said:

Sim concordo com vc e imagino que deve ser referente a tempo.

So que no trunk esta a mesma configuração do trunk2 e nao acusa o erro.

aguardarconsultaret 0

ajusta false

intervalo tentativas 1000

tentativas 5

timeout 5000.

 

Mais alguma idéia do que possa ser?

 

 

Estou com o mesmo problema que você, o erro "em branco" na hora de consultar a RPS. Você conseguiu resolver?

Share this post


Link to post
Share on other sites
On 22/02/2016 at 4:46 PM, Italo Jurisato Junior said:

Boa tarde Michele,

Quando migrei o componente ACBrNFSe para o Trunk2 os testes que realizei foi com o provedor Ginfes.

E semana passada fiz novos testes usando o programa exemplo e tudo foi executado sem nenhum problema e os tempos de esperas razoáveis na ordem de 2 a 3 segundos.

 

 

 

Desculpe o post duplo mas descobri que o erro acontece quando o retorno não possui notas processadas. No meu caso na resposta do webservice só voltaram os erros da nota, como componente gera um exception, não consigo apenas tratar o erro e mostrar os problemas com a RPS . 

Preciso acertar algum parâmetro para que isto não ocorra? Ou altero o fonte do componente para pular este problema?

Meu provedor é ISSDSF

A linha "Result := TratarResposta" volta false, daí ele gera o exception.

function TDFeWebService.Executar: Boolean;
var
  ErroMsg: String;
begin
  { Sobrescrever apenas se realmente necessário }

  InicializarServico;
  try
    DefinirDadosMsg;
    DefinirEnvelopeSoap;
    SalvarEnvio;

    try
      EnviarDados;
      Result := TratarResposta;
      FazerLog(GerarMsgLog, True);
      SalvarResposta;
    except
      on E: Exception do
      begin
        Result := False;
        ErroMsg := GerarMsgErro(E);
        GerarException(ErroMsg, E);
      end;
    end;
  finally
    FinalizarServico;
  end;
end;

 

Abaixo ele volta 0 notas 

Quote

function TNFSeConsultarLoteRPS.TratarResposta: Boolean;
begin
  FPMsg := '';
  FaMsg := '';
  FPRetWS := ExtrairRetorno;
  Result := ExtrairNotasRetorno;
  FPRetWS := ExtrairGrupoMsgRet(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.ConsLote);
end;

 

Edited by marcelinoap

Share this post


Link to post
Share on other sites

Bom dia,

Estou com este problema no provedor BHISS, como foi resolvido?

O retorno volta falso para "Result := FConsSitLoteRPS.Executar;" e "FConsSitLoteRPS.GerarException( FConsSitLoteRPS.Msg );" retorna vazio.

como aumento as tentativas e o tempo de espera?

Obrigado.

Share this post


Link to post
Share on other sites

Bom dia,

O componente possui várias propriedades de configuração.

Por exemplo, no seu caso temos:

IntervaloTentativas e Tentativas.


Consultor SAC ACBr Italo Jurisato 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

Share this post


Link to post
Share on other sites

Obrigado Italo.

RESOLVIDO conforme você disse: " IntervaloTentativas e Tentativas".

Abraço.

Edited by mdevit

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...