Ir para conteúdo
  • Cadastre-se

dev botao

Manifesto de Desacordo de CTe


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

Recommended Posts

Bom dia pessoal!

Estou implementado o manifesto de desacordo do CTe da seguinte forma:

  ACBrCTe1.EventoCTe.Evento[0].infevento.chCTe := Edit1.Text;
  ACBrCTe1.EventoCTe.Evento[0].infevento.CNPJ := LimpaCampos(Edit2.Text);
  ACBrCTe1.EventoCTe.Evento[0].infevento.dhEvento := Now;
  ACBrCTe1.EventoCTe.Evento[0].infevento.nSeqEvento := 1;
  ACBrCTe1.EventoCTe.Evento[0].infevento.tpEvento := tePrestDesacordo;
  ACBrCTe1.EventoCTe.Evento[0].infevento.detEvento.xOBS := Edit3.Text;
  ACBrCTe1.EventoCTe.Evento[0].infevento.detEvento.descEvento := 'Prestação de serviço em Desacordo';

ACBrCTe1.EnviarEvento(1);

O problema é que o retorno (cStat) está retornando com zero.

A alimentação do componente estou fazendo baseado em outro tópico muito antigo: 

 

Gostaria de saber o que está faltando para que eu tenha sucesso nessa operação. Alguém poderia me ajudar?

Outra dúvida é quanto a essa propriedade: ACBrCTe1.EventoCTe.Evento[0].infevento.CNPJ

Esse CNPJ é o da transportadora emitente do CTe ou é o CNPJ da empresa que está fazendo o desacordo?

Enfim, como posso alimentar o componente de forma correta para fazer o desacordo?

Obrigado,

Rogério.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Rogério,

O componente esta configurado para salvar os arquivos soap?

Se não estiver, configure da seguinte forma:

Configuracoes.WebServices.Salvar := True;

Faça um novo teste e anexe os arquivos de envio e de retorno desse evento, para que possamos analisar.

Aproveita também e leia esse artigo: Evento de Prestação do Serviço em Desacordo.

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

Bom dia Italo!

Bem, acredito que esteja faltando algo na alimentação do componente. O arquivo XML está sendo criado totalmente vazio.

Segui os passos dos exemplos. Veja:

  ACBrCTe1.EventoCTe.Evento.Clear;

  ACBrCTe1.Configuracoes.Arquivos.Salvar      := True;
  ACBrCTe1.Configuracoes.Arquivos.PathSalvar  := 'C:\TMP';
  ACBrCTe1.Configuracoes.WebServices.Salvar   := True;
  ACBrCTe1.Configuracoes.Geral.SSLLib         := libWinCrypt;
  ACBrCTe1.SSL.SSLType                        := TSSLType(5);
  ACBrCTe1.Configuracoes.Geral.RetirarAcentos := True;
  ACBrCTe1.Configuracoes.Arquivos.PathSchemas := 'C:\Schemas\CTe';
  ACBrCTe1.Configuracoes.WebServices.Ambiente := taProducao;
  ACBrCTe1.Configuracoes.WebServices.UF       := 'SP';

  ACBrCTe1.SSL.SelecionarCertificado;

  with ACBrCTe1.EventoCTe.Evento.New do begin
   infEvento.nSeqEvento     := 1;
   infEvento.chCTe          := Edit1.Text;
   infEvento.CNPJ           := CNPJ_Emitente;
   infEvento.dhEvento       := Now;
   infEvento.tpEvento       := tePrestDesacordo;
   infEvento.detEvento.xObs := Edit2.Text;
  end;

  ACBrCTe1.EventoCTe.GerarXML;
  LoadXML(MemoResp, WBResposta);

Fazendo assim, o XML é criado 100% vazio.

Sabe dizer onde estou comendo bola?

Obrigado,

Rogério.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Rogério,

E se usar o método: 

ACBrCTe1.EnviarEvento(1);

O XML também é gerado vazio?

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

  • Consultores

Rogério,

Foi feito uma alteração no componente, agora antes de enviar um evento ele passa por uma validação completa.

Será que um Try que você tenha incluído na sua rotina não esteja ocultado a mensagem com o erro de validaçã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

Não, o bloco da rotina é super simples sem nada protegido.

Dentro do botão está apenas isso:

ACBrCTe1.EventoCTe.Evento.Clear;

  ACBrCTe1.Configuracoes.Arquivos.Salvar      := True;
  ACBrCTe1.Configuracoes.Arquivos.PathSalvar  := 'C:\TMP';
  ACBrCTe1.Configuracoes.WebServices.Salvar   := True;
  ACBrCTe1.Configuracoes.Geral.SSLLib         := libWinCrypt;
  ACBrCTe1.SSL.SSLType                        := TSSLType(5);
  ACBrCTe1.Configuracoes.Geral.RetirarAcentos := True;
  ACBrCTe1.Configuracoes.Arquivos.PathSchemas := 'C:\Schemas\CTe';
  ACBrCTe1.Configuracoes.WebServices.Ambiente := taProducao;
  ACBrCTe1.Configuracoes.WebServices.UF       := 'SP';

  ACBrCTe1.SSL.SelecionarCertificado;

  with ACBrCTe1.EventoCTe.Evento.New do begin
   infEvento.nSeqEvento     := 1;
   infEvento.chCTe          := Edit1.Text;
   infEvento.CNPJ           := CNPJ_Emitente;
   infEvento.dhEvento       := Now;
   infEvento.tpEvento       := tePrestDesacordo;
   infEvento.detEvento.xObs := Edit2.Text;
  end;

  ACBrCTe1.EventoCTe.GerarXML;
  LoadXML(MemoResp, WBResposta);

Veja que tem o LoadXML para exibir o conteúdo do XML. O componente está gerando o XML totalmente vazio.

Rotininha bem simples mesmo. Nada de frescuras. Clicar no botão e é isso ai que faz. Mais nada.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
2 horas atrás, rblsystem disse:

  ACBrCTe1.EventoCTe.GerarXML;
  LoadXML(MemoResp, WBResposta); 

Veja que tem o LoadXML para exibir o conteúdo do XML. O componente está gerando o XML totalmente vazio.

O método GerarXML gera o conteúdo do arquivo apenas internamente, o arquivo XML de envio de evento é gerado caso você use o método EnviarEvento.

Para visualizar o XML como é feito no demo do componente, usando o GerarXML, experimente trocar as linhas acima por:

  ACBrCTe1.EventoCTe.GerarXML;
  MemoResp.Lines.Text := ACBrCTe1.EventoCTe.Gerador.ArquivoFormatoXML;
  LoadXML(MemoResp, WBResposta);

Se estiver usando EnviarEvento:

  ACBrCTe1.EnviarEvento(1);
  MemoResp.Lines.Text := ACBrCTe1.WebServices.EnvEvento.RetWS;
  LoadXML(MemoResp, WBResposta);

 

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

17 horas atrás, BigWings disse:

O método GerarXML gera o conteúdo do arquivo apenas internamente, o arquivo XML de envio de evento é gerado caso você use o método EnviarEvento.

Para visualizar o XML como é feito no demo do componente, usando o GerarXML, experimente trocar as linhas acima por:


  ACBrCTe1.EventoCTe.GerarXML;
  MemoResp.Lines.Text := ACBrCTe1.EventoCTe.Gerador.ArquivoFormatoXML;
  LoadXML(MemoResp, WBResposta);

Se estiver usando EnviarEvento:


  ACBrCTe1.EnviarEvento(1);
  MemoResp.Lines.Text := ACBrCTe1.WebServices.EnvEvento.RetWS;
  LoadXML(MemoResp, WBResposta);

 

Bom dia!

Agora o XML foi gerado corretamente e consegui enviar. Estava faltando a linha:

MemoResp.Lines.Text := MD_Comum.ACBrCTe1.EventoCTe.Gerador.ArquivoFormatoXML;

Só que ao enviar, está retornando a seguinte rejeição:

"UF informada no campo UF não é atendida pelo WebService"

Fiz aquela configuração básica no componente conforme mostrei na postagem inicial acima e no campo UF, está configurado para SP. Veja:

ACBrCTe1.Configuracoes.WebServices.UF := 'SP';

O emitente do CTe é do PR e o tomador de SP. No componente tenho que informar PR ao invés de SP ou tenho que fazer outra configuração?

Obrigado,

Rogério.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Rogério,

A configuração esta correta, se o tomador é de SP, você tem que informar SP ao campo UF.

Mas na sua rotina esta faltando uma linha.

infEvento.cOrgao          := 'SP';

A UF informada em ACBrCTe1.Configuracoes.WebServices.UF tem que ser a mesma informada em infEvento.cOrgao.

  • 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

20 minutos atrás, Italo Jurisato Junior disse:

Bom dia Rogério,

A configuração esta correta, se o tomador é de SP, você tem que informar SP ao campo UF.

Mas na sua rotina esta faltando uma linha.

infEvento.cOrgao          := 'SP';

A UF informada em ACBrCTe1.Configuracoes.WebServices.UF tem que ser a mesma informada em infEvento.cOrgao.

Sei que estou sendo chato mas, ainda assim não foi!

Um pequeno detalhe, a propriedade cOrgao é do tipo integer. Ao invés de colocar SP, coloquei 35.

Mesmo fazendo esse ajuste, retorna a mesma rejeição de "UF não informada no campo UF...."

Tens mais alguma sugestão?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, rblsystem disse:

No teu XML falta a versão do evento.

  with ACBrCTe1.EventoCTe.Evento.New do begin
   infEvento.cOrgao         := 41;
   infEvento.versaoEvento   := '1.00';

Tanto cOrgao quando a configuração ACBrNFe1.Configuracoes.WebServices.UF deve ser a UF do emitente do CTe, no caso, o PR.

 

  • Curtir 3
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1765 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.