Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Consultores
Postado

Bom dia a todos,

A forma de envio do CT-e OS é diferente do CT-e, vocês não estão lendo o manual do CT-e versão 3.00 com atenção.

O CT-e o envio é assíncrono, isso faz com que após o envio temos que realizar uma consulta para saber se foi processado com sucesso ou não.

Já no CT-e OS o envio é síncrono, ou seja, o retorno do envio já é o resultado do processamento.

Por favor pesquisem no fórum, pois acredito já ter respondido como obter o cStat em outro tópico.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

  Italo  acabei de testar de acordo com o topico

https://www.projetoacbr.com.br/forum/topic/38912-cte-os-como-obter-os-dados-do-retorno-após-aprovação/?tab=comments#comment-256055

Tentei da seguinte forma 

Protocolo := ACBrCTe.Conhecimentos.Items[ x ].CTe.procCTe.nProt;
Status := ACBrCTe.Conhecimentos.Items[ x ].CTe.procCTe.cStat; 
Motivo := ACBrCTe.Conhecimentos.Items[ x ].CTe.procCTe.xMotivo; 

Porém volta tudo vazio

 

 

Postado

Estou executando o Seguinte Código e quando existe algum erro da receita como por exemplo rejeição pela falta de algum campo ::

   Try
    Try

      Result := ACBrCTe1.WebServices.EnviaOS(1);

     Finally

      cStatCTe := ACBrCTe1.Conhecimentos.Items[0].CTe.procCTe.cStat); // Retorna Vazio
      cStatCTe := ACBrCTe1.WebServices.Retorno.cStat;  // Retorna Vazio

     End;

   Except on E: Exception do 
     // Vai entrar no Exception porque faltou por exemplo o Tomador do Serviço porém preciso capturar o cStat da Rejeição 757
   End;

 

Postado

 Sim Italo tudo atualizado porém vou refazer o processo e instalar tudo novamente
a ultima versão do ACBR foi do dia 04/10/2017  que baixei e instalei.

Amanha e digo o resultado.

 

Postado (editado)

Baixei a versão do ACBr hoje novamente e instalei novamente,  eu deletei toda a pasta do ACBr que tinha aqui antes de colocar a nova versão  chequei se tinha alguma pasta do acbr no meu computador  e problema continua muito estranho pois no evento do ACBr 

procedure TLancamentoVeiculos.ACBrCTe1GerarLog(const ALogLine: string; var Tratado: Boolean);
Begin
  memoLog.Lines.Add(ALogLine);
End;

Consegue Capturar o cStat  757  Vejam Abaixo :::

Inicio TCTeStatusServico
Versão Layout: 3.00 
Ambiente: 2
Versão Aplicativo: PR-v3_0_38 
Status Código: 107
Status Descrição: Servico em Operacao
UF: PR
Recebimento: 10/10/2017 10:45:33
Tempo Médio: 0
Retorno: 
Observação: 

Inicio TCTeRecepcao
Versão Layout: 3.00 
Ambiente: 2 
Versão Aplicativo: PR-v3_0_38 
Status Código: 757 
Status Descrição: O tomador do servico deve estar informado para Transporte de Pessoas e Valores 
UF: PR 
dhRecbto:  
chCTe:  

Obs : é só no CTeOS esse problema o mesmo codigo funciona em tudo como CTe de Cargas, NFCe,  NFe,  MDFe 

Deve ser alguma configuração para CTeOS que devo estar usando errado o que poderia ser ?

O código que estou usando é esse ::

 

Try
    Try

      Result := ACBrCTe1.WebServices.EnviaOS(1);

     Finally

      cStatCTe := ACBrCTe1.Conhecimentos.Items[0].CTe.procCTe.cStat); // Retorna Vazio
      cStatCTe := ACBrCTe1.WebServices.Retorno.cStat;  // Retorna Vazio

     End;

   Except on E: Exception do 
     // Vai entrar no Exception porque faltou por exemplo o Tomador do Serviço porém preciso capturar o cStat da Rejeição 757
   End;

 

Editado por luciano_f
  • Consultores
Postado

Bom dia Luciano,

cStatCTe := ACBrCTe1.Conhecimentos.Items[0].CTe.procCTe.cStat); // Retorna Vazio

Na linha acima o retorno vazio esta coerente uma vez que o CT-e OS foi rejeitado, logo no retorno não costa o grupo procCTe que contem o status, protocolo, etc do processamento.

Na linha abaixo você vai conseguir ler o status que deseja.

     cStatCTe     := ACBrCTe1.WebServices.Enviar.cStat;

Veja a diferença, você esta lendo o campo cStat do Retorno, sendo que o correto é ler do Enviar.

Essa alteração é devido ao envio ser síncrono e não assíncrono.

No CT-e o envio é assíncrono, sendo assim após o envio devemos realizar a consulta e é nesta consulta que temos o status.

Já no CT-e OS o envio é síncrono, logo não se faz necessário a consulta, pois já temos o status no retorno do envio.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

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