Ir para conteúdo
  • Cadastre-se

dev botao

Problema ao Enviar CT-e


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

Recommended Posts

Boa tarde.
Ele solicita os certificados sim.
Ele entra no enviar, e o sistema simplesmente não responde mais.
Verifiquei se era o Schemas, mas esta certo.
Não tenho ideia do travamento.

Em 08/12/2017 at 11:50, Milton Neves disse:

estou emitindo um cte de complemento de valores e esta dando a mensagem abaixo.....Podem me ajudar ? emissor gratuito 3,0

image.png

Pode ser devido as alterações da SEFAZ, a menos que esteja muito enganado, os emissores gratuitos foram descontinuados.
http://www.dino.com.br/releases/secretaria-da-fazenda-vai-desativar-seus-emissores-de-nota-fiscal-eletronica-e-conhecimento-de-transporte-eletronico-dino89080603131

Link para o comentário
Compartilhar em outros sites

Consegui encontrar o problema.
FPConfiguracoesCTe.WebServices.AguardarConsultaRet

Ele esta com esse valor: 2147483648

Por mais que eu altere no componente o tempo para aguardar o retorno, ele continua utilizando este valor.
Comentei a linha do Sleep, e esta funcionando corretamente agora.

Mas, eu que não estou conseguindo configurar corretamente, ou é realmente um erro no codigo?

Citar

function TCTeRetRecepcao.Executar: Boolean;
var
  IntervaloTentativas, Tentativas: Integer;
begin
  Result := False;

  TACBrCTe(FPDFeOwner).SetStatus(stCTeRetRecepcao);
  try
    //Sleep(FPConfiguracoesCTe.WebServices.AguardarConsultaRet);

    Tentativas := 0; // Inicializa o contador de tentativas
    IntervaloTentativas := max(FPConfiguracoesCTe.WebServices.IntervaloTentativas, 1000);

    while (inherited Executar) and
      (Tentativas < FPConfiguracoesCTe.WebServices.Tentativas) do
    begin
      Inc(Tentativas);
      sleep(IntervaloTentativas);
    end;
  finally
    TACBrCTe(FPDFeOwner).SetStatus(stCTeIdle);
  end;

  if FCTeRetorno.CStat = 104 then  // Lote processado ?
    Result := TratarRespostaFinal;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
19 minutos atrás, luighi.augusto disse:

Mas, eu que não estou conseguindo configurar corretamente, ou é realmente um erro no codigo?

Por acaso está chamando o método de Status de Serviço antes do envio?

Se está, qual o XML retornado por ele?

Essa configuração é ajustada na chamada a esse método com base no retorno do tempo médio de resposta do webservice.
 

ACBrCTeWebservices.pas, linha 688:

function TCTeStatusServico.TratarResposta: Boolean;
var
  CTeRetorno: TRetConsStatServ;
begin
  FPRetWS := SeparaDados(FPRetornoWS, 'cteStatusServicoCTResult');
[...]
    if FPConfiguracoesCTe.WebServices.AjustaAguardaConsultaRet then
      FPConfiguracoesCTe.WebServices.AguardarConsultaRet := FTMed * 1000;

 

Você também pode configurar a propriedade AjustaAguardaConsultaRet para não fazer esse ajuste.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, BigWings disse:

Por acaso está chamando o método de Status de Serviço antes do envio?

Se está, qual o XML retornado por ele?

Essa configuração é ajustada na chamada a esse método com base no retorno do tempo médio de resposta do webservice.
 

ACBrCTeWebservices.pas, linha 688:


function TCTeStatusServico.TratarResposta: Boolean;
var
  CTeRetorno: TRetConsStatServ;
begin
  FPRetWS := SeparaDados(FPRetornoWS, 'cteStatusServicoCTResult');
[...]
    if FPConfiguracoesCTe.WebServices.AjustaAguardaConsultaRet then
      FPConfiguracoesCTe.WebServices.AguardarConsultaRet := FTMed * 1000;

 

Você também pode configurar a propriedade AjustaAguardaConsultaRet para não fazer esse ajuste.

Exatamente, fiz uma função para verificar se a SEFAZ esta em operação.
 

O XML de retorno é:

Citar

<?xml version="1.0" encoding="UTF-8"?>
<retConsStatServCte versao="3.00" xmlns="http://www.portalfiscal.inf.br/cte">
  <tpAmb>2</tpAmb>
  <verAplic>SP-CTe-04-12-2017</verAplic>
  <cStat>107</cStat>
  <xMotivo>Serviço em Operação</xMotivo>
  <cUF>35</cUF>
  <dhRecbto>2017-12-11T13:46:33-02:00</dhRecbto>
  <tMed>1</tMed>
</retConsStatServCte>

Eu configurei o AjustaAguardaConsultaRet, porem ele não exerceu nenhuma alteração no Sleep.

image.png.ce35fc422670bb3b6f3f86678eed3425.png

Coloquei o Valor 1000 apenas para testar, mas não houve qualquer alteração.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Luighi,

Se você esta consultando o Status antes do envio, te aconselho não fazer isso, pois o teu cliente poderá ser bloqueado pela SEFAZ por consumo indevido.

A muito tempo atrás o ACBrCTe realizava essa ação automaticamente, mas removemos para evitar o consumo indevido do web services de consulta a status de serviço.

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

Boa tarde Italo.

Eu desativei a consulta, justamente pois estava demorando muito para processar.
O problema foi solucionado.

Mas ao consultar a CT-e emitida, ele esta retornando esse "UF não pode ser vazia".

35171209602853000178570010000139921000139920-CTe.xml

Editado por luighi.augusto
Link para o comentário
Compartilhar em outros sites

  • Consultores

Luighi,

Antes de executar o método Consulta, carregue o XML do CT-e antes através do método LoadFromFile, exemplo:

ACBrCTe.Conhecimentos.LoadFromFile(xNomeXML, False);

ACBrCTe.Consultar;

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

Meu codigo esta exatamente assim:

Citar

  caminho := Path + qConsulta.FieldByName('chave_cte').AsString + '-CTe.xml';
  Sefaz.ACBrCTe.Conhecimentos.Clear;
  Sefaz.ACBrCTe.Conhecimentos.LoadFromFile(caminho, False);
  Sefaz.ACBrCTe.WebServices.Consulta.Executar;

Esta variavel Path, armazena o caminho padrão das pastas.
E mesmo utilizando o LoadFromString, tambem gera o mesmo erro.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Luighi,

Mude:

Sefaz.ACBrCTe.WebServices.Consulta.Executar;

para

Sefaz.ACBrCTe.Consultar;

  • Curtir 1
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á 2299 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.