Ir para conteúdo
  • Cadastre-se

dev botao

Enviar CTeOS


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

Recommended Posts

Estou com problema na hora de enviar o CteOS.

Na Unit ACBrDFeHttpWinApi

Na função

function TDFeHttpWinHttp.Enviar(const ConteudoXML: String; const AURL: String;
  const ASoapAction: String; AMimeType: String): String;

         if not (FWinHTTPReqResp.HTTPResultCode in [200, 201, 202]) then          //Aqui esta retornando 400 aí cai no exeption tanto com o OpenSSL como com o WinCrypt
            raise EACBrDFeException.Create('');

 

E também aproveitando no TCTeW.GerarTomador  esta criando a tag indIEToma essa tag não pode ser criada dentro do tomador é somente na ide

aqui só comentei as linhas 

if (CTe.infCTe.versao >= 3) then
      Gerador.wCampo(tcStr, '#066', 'indIEToma', 01, 01, 1, indIEDestToStr(CTe.toma.indIEToma), DSC_INDIETOMA);

e passou.

Se alguém poder me ajudar na primeira questão ficarei grato. 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Cleonir,

Muito obrigado por apontar o erro, já fiz a correção e enviei para o repositório.

Favor atualizar os fontes e testar novamente.

Quanto a Unit ACBrDFeHttpWinApi, vamos aguardar o Daniel e o André, pois estão mais por dentro dessas Units.

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

Alguém consegue me ajudar em relação ao envio do CTeOS ?

esta ocorrendo o erro que citei no inicio deste tópico.

 

E aproveitando fiz algumas alterações no ACBrCTeDACTEFR.pas  para conseguir imprimir o CTeOS.

Em Anexo ACBrCTeDACTEFR.pas alterada e o fr3 que criei.

Provavelmente depois vai precisar ser feito ajustes, por que ainda não consegui enviar o CTeOS para testar.

Favor analisarem e se possível adicionar ao SVN.  

 

 

ACBrCTeDACTEFR.pas

DACTE_OS.fr3

Editado por Cleonir
Link para o comentário
Compartilhar em outros sites

  • Moderadores
24 minutos atrás, Cleonir disse:

Alguém consegue me ajudar em relação ao envio do CTeOS ?

Você precisa dar mais detalhes pra que alguém consiga replicar o erro.

Informe o passo a passo, configurações, método utilizado, alterações necessárias, usando o demo do ACBr onde o problema acontece.

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Estou Configurando Assim...

DM.CTe1.SSL.SSLType := LT_all;

DM.CTe1.Configuracoes.Geral.SSLLib        := libOpenSSL;
DM.CTe1.Configuracoes.Geral.SSLCryptLib   := cryOpenSSL;
DM.CTe1.Configuracoes.Geral.SSLHttpLib    := httpOpenSSL; 
DM.CTe1.Configuracoes.Geral.SSLXmlSignLib := xsXmlSec;

DM.CTe1.Configuracoes.Geral.ModeloDF := moCTeOS;

DM.CTe1.Configuracoes.Certificados.ArquivoPFX :=DM.qrConf.FieldByName('END_CERT').AsString;
DM.CTe1.Configuracoes.Certificados.Senha      :=DM.qrConf.FieldByName('SENHA_CERT').AsString;

DM.CTe1.Configuracoes.WebServices.UF            := 'SC';
DM.CTe1.Configuracoes.WebServices.Ambiente      :=  taHomologacao;

 

Em anexo o xml que estou tentando enviar.

No Demo vou precisar fazer alguns ajustes para enviar, por que ainda não foi ajustado para utilizar o WinCrypt.

 

42170581581324000162670320000000041000000054-cte.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Cleonir disse:

Erro Interno: 0

Erro HTTP: 400.

@Italo Jurisato Junior

Consegui replicar o erro.

O problema está na geração do XML de envio, na unit ACBrCTeWebservices.pas, quando configurado como CTeOS o XML fica apenas com o envelope de envio.

Tentei fazer a alteração da seguinte forma:

procedure TCTeRecepcao.DefinirDadosMsg;
var
  I: Integer;
  vCTe: String;
begin
  vCTe := '';
  for I := 0 to FConhecimentos.Count - 1 do
  begin
    case FConhecimentos.Items[I].CTe.ide.modelo of
      57: begin
        vCTe := vCTe + '<CTe' + RetornarConteudoEntre(
          FConhecimentos.Items[I].XMLAssinado, '<CTe', '</CTe>') + '</CTe>';
      end;
      67: begin
        vCTe := vCTe + '<CTeOS' + RetornarConteudoEntre(
          FConhecimentos.Items[I].XMLAssinado, '<CTeOS', '</CTeOS>') + '</CTeOS>';
      end;
    end;
  end;

A comunicação com o WebService passa, mas recebo rejeição "Falha no Schema XML".

Não consegui compreender a estrutura que deve ser gerada...

 

 

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite a todos,

BigWings configure o componente para salvar os arquivos soap.

Configuracoes.WebServices.Salvar := True;

Depois anexe os arquivos gerados, quer ver como ficou o XML do CTeOS bem como o de envio e de retorno.

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

Apartir da atualização de hoje esta retornado o xml   pro-lot-soap.xml com Rejeição: Falha no Schema XML do CT-e.

e o   pro-lot.xml grava em branco.

 

Conferindo o xml soap de envio percebi que esta invertido uma informação, não sei se isso interfere em alguma coisa.

na segunda linha do xml no manual o  xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"  'esta no fim da linha e no xml gerado esta no inicio.

xmlsoap.PNG

RetornoSoap.PNG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Cleonir,

Favor atualizar os fontes e refaça os testes.

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.

Com a atualização parece que vai enviar, só não consegui enviar ainda por que esta dando Rejeição:Emissor não habilitado para emissão do CT-e.

Vou precisar encontrar um cliente que que esteja habilitado a emitir CTeOs para conseguir testar.

Mas tem um pequeno problema ainda.

A rejeição não esta mostrando correto, o ACBrCTe1.WebServices.Retorno.xMotivo esta pegando do retCTeOS, ali esta vindo somente Lote processado,

eu acho que deveria pegar do protCTe que vem a descrição da rejeição. Ex: Rejeição: Emissor nao habilitado para emissao do CT-e.

Capturar.PNG

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Cleonir,

Muito obrigado pela informação, já fiz a correção e ainda hoje estarei enviando para o repositório.

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.

Muito obrigado pela atenção.

Depois da atualização ainda ficou um pequeno problema.

Quando for um CTeOS e o Tipo de Serviço =  Transporte de Valores da erro na hora de validar mas precisamente na hora de identificar o shema do modal,

por que foi retirado a tag infModal quando é transporte de valores.

Em anexo imagem do erro e o Demo do AcbrCTe ajustado para poder testar com o Wimcrypt e com os campos preenchidos do GerarCte para você testar. 

 

Capturar.PNG

Frm_Demo_ACBrCTe.dfm

Frm_Demo_ACBrCTe.pas

E também se possível analisar e subir para o SVN as alterações que fiz no ACBrCTeDACTEFR.pas e no

DACTE_OS.fr3 para a impressão do CteOS que adicionei logo acima neste post.

Link para o comentário
Compartilhar em outros sites

fiz mais um pequeno ajuste no ACBrCTeDACTEFR.pas, tinha um problema quando o documento referenciado era uma NF e se o campo nDoc tivesse mais de 10 caracteres, estava tentando transforma o nDoc para integer para formatar para jogar no campo TextoImpressao do clientDataSet.

Alterei para StrToInt64, alterei a mascara e tirei alguns espaços em branco para não cortar na impressão.

 

ACBrCTeDACTEFR.pas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Cleonir,

No caso do CTeOS Transporte de Valores não devemos informar o Modal.

Vou ver o que precisa ser feito para resolver o problema de validação agora.

Assim que eu tiver uma solução irei enviar para o repositório.

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

Boa noite Cleonir,

Favor atualizar os fontes e fazer novos testes.

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

Beleza Italo

Acredito que agora vai passar,

~Só não consegui enviar ainda por que o certificado que estou utilizando aqui para testes não esta habilitado a emitir CTeOS,

esta retornando a Rejeição: Emissor não habilitado para a emissão do Ct-e.

Vou precisar conseguir um cliente que esteja habilitado para fazer os testes finais.

 

Muito obrigado Italo pela atenção...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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