Ir para conteúdo
  • Cadastre-se

dev botao

Configurando e emitindo CTE-4 erro: Elemento mdfeCabecMsg inexistente no SOAP Header


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

Recommended Posts

Postado

Olá pessoal, procurando pelo erro aqui me deparei com alguns tópicos mas que não resolveram pra mim e preciso de ajuda

colocquei a versaoDF do CTe para a 4.0 ( deixo fixa esta versão mesmo manualmente ), mudei alguns campos e preenchimento de informações conforme documentação.

quando vou emitir o CTe ele retorna o erro: Elemento mdfeCabecMsg inexistente no SOAP Header

nos outros tópicos vi que esta TAG nem existe na versão 4.0, o estado de emissão é PR, setá que esta com algum problema aqui?

recentemente configurei da versão 3.0 para a 4.0 e se alguém tiver as configurações necessárias a mais para fazer a configuração correta do componente CTe do acbr ( emissão direta pelo exe com componente )

 

forma que faço a config do CTe ( mudei somente versão mesmo DF do que esta na 3.0 )

    CTe.Configuracoes.Arquivos.AdicionarLiteral := True;
    CTe.Configuracoes.Arquivos.EmissaoPathCTe := True;
    CTe.Configuracoes.Arquivos.SepararPorMes := True;
    CTe.Configuracoes.Arquivos.SepararPorModelo := True;
    CTe.Configuracoes.Arquivos.PathEvento := TPath.Combine(PastaCTe, 'Eventos');
    CTe.Configuracoes.Arquivos.PathInu :=
      TPath.Combine(PastaCTe, 'Inutilizados');
    CTe.Configuracoes.Arquivos.PathCTe :=
      TPath.Combine(PastaCTe, 'Transmitidas');
    CTe.Configuracoes.Arquivos.Salvar := True;
    CTe.Configuracoes.Arquivos.PathSalvar := TPath.Combine(PastaCTe, 'Logs');
    CTe.Configuracoes.Arquivos.SepararPorCNPJ := false;


    //AQUI PROBLEMA DE DEMORA NA INICIALIZAÇÃO VER NO GRUPO - BECKER
    PathMensal := CTe.Configuracoes.Arquivos.GetPathCTe(0);

    if not DirectoryExists(CTe.Configuracoes.Arquivos.PathEvento) then
      ForceDirectories(CTe.Configuracoes.Arquivos.PathEvento);
    if not DirectoryExists(CTe.Configuracoes.Arquivos.PathInu) then
      ForceDirectories(CTe.Configuracoes.Arquivos.PathInu);
    if not DirectoryExists(CTe.Configuracoes.Arquivos.PathCTe) then
      ForceDirectories(CTe.Configuracoes.Arquivos.PathCTe);
    if not DirectoryExists(CTe.Configuracoes.Arquivos.PathSalvar) then
      ForceDirectories(CTe.Configuracoes.Arquivos.PathSalvar);
    if not DirectoryExists(TPath.Combine(PastaCTe, 'PDFs')) then
      ForceDirectories(TPath.Combine(PastaCTe, 'PDFs'));
    // Configurações -> Certificados
    CTe.Configuracoes.Certificados.NumeroSerie :=
      trim(QParametrosCERTIFICADO_SERIE.AsString);
    CTe.Configuracoes.Certificados.Senha := trim(QParametrosSENHA.AsString);

    // Configurações -> Geral
    // TpcnTipoEmissao = (teNormal, teContingencia, teSCAN, teDPEC, teFSDA, teSVCAN,
    // teSVCRS, teSVCSP, teOffLine);
    case QParametrosTIPO_EMISSAO.AsInteger of
      0:
        CTe.Configuracoes.Geral.FormaEmissao := teNormal;
      1:
        CTe.Configuracoes.Geral.FormaEmissao := teContingencia;
      2:
        CTe.Configuracoes.Geral.FormaEmissao := teSCAN;
      3:
        CTe.Configuracoes.Geral.FormaEmissao := teDPEC;
      4:
        CTe.Configuracoes.Geral.FormaEmissao := teFSDA;
      5:
        CTe.Configuracoes.Geral.FormaEmissao := teSVCAN;
      6:
        CTe.Configuracoes.Geral.FormaEmissao := teSVCRS;
      7:
        CTe.Configuracoes.Geral.FormaEmissao := teSVCSP;

    end;

    CTe.Configuracoes.Arquivos.PathSchemas :=
      trim(ExtractFilePath(Application.ExeName) + '\SchemasCTe\');
    CTe.Configuracoes.Geral.Salvar := (QParametrosSALVAR_LOGS.AsString = 'S');

    // Configurações -> WebServices
    CTe.Configuracoes.WebServices.AguardarConsultaRet := 0;
    CTe.Configuracoes.WebServices.AjustaAguardaConsultaRet := false;

    case QParametrosAMBIENTE.AsInteger of
      0:
        CTe.Configuracoes.WebServices.Ambiente := taProducao;
      1:
        CTe.Configuracoes.WebServices.Ambiente := taHomologacao;
    end;

    CTe.Configuracoes.WebServices.IntervaloTentativas := 0;
    // CTe.Configuracoes.WebServices.ProxyHost := trim(DM_CNT.ParametrosCTeProxyHost.AsString);
    // CTe.Configuracoes.WebServices.ProxyPass := trim(DM_CNT.ParametrosCTeProxyPass.AsString);
    // CTe.Configuracoes.WebServices.ProxyPort := trim(DM_CNT.ParametrosCTeProxyPorta.AsString);
    // CTe.Configuracoes.WebServices.ProxyUser := trim(DM_CNT.ParametrosCTeProxyUser.AsString);
    CTe.Configuracoes.WebServices.Tentativas := 5;
    CTe.Configuracoes.WebServices.UF := QParametrosEST_EMP.AsString;
    CTe.Configuracoes.WebServices.Visualizar := false;
    CTe.Configuracoes.Geral.FormatoAlerta := 'Campo: %TAG%' + #13 +
      'Descrição Campo : %DESCRICAO% ' + #13 + 'Messagem : %MSG%.';
    CTe.Configuracoes.Geral.FormatoAlerta :=
      '%TAGNIVEL%|%ID%|%TAG%|%DESCRICAO%|%MSG%';
    // CTe.Configuracoes.Geral.ExibirErroSchema := False;
    // DACTe
    DACQR.PathPDF := PathMensal;
    DACQR.ExpandeLogoMarca := false;
    DACQR.ImprimeDescPorc := false;
    DACQR.ImprimirHoraSaida := True;
    DACQR.ImprimirHoraSaida_Hora := DateToStr(Date);
    DACQR.Logo := trim(QParametrosCAMINHO_LOGOMARCA_DANFE.AsString);
    DACQR.MostraPreview := True;
    DACQR.Sistema := 'Sistema: Controle de Conhecimentos ' + __NOME_APP +
      ' Automação';
    DACQR.Site := ''; // __SITE_APP;
    DACQR.PathPDF := TPath.Combine(PastaCTe, 'PDFs');
    if QParametrosIMPRESSAO.AsString = 'R' then
      DACQR.TipoDACTE := tiRetrato
    else
      DACQR.TipoDACTE := tiPaisagem;
    DACQR.Usuario := 'Usuário: ' + UsuarioStr;
    DACQR.Cancelada := false;
    DM.DACQR.Protocolo := '';
    RNTRC := QParametrosRNTRC.AsString;
    CIOT := QParametrosCIOT.AsString;
    if CTEOS then
    begin
      CTe.Configuracoes.Geral.ModeloDF := moCTeOS;
      CTe.Configuracoes.Geral.VersaoDF := TVersaoCTe.ve400;
{$IFNDEF NOTFASTREPORT}
      DACQR.FastFile := TPath.Combine(ExtractFilePath(Application.ExeName),
        'Report\DACTE_OS.fr3');
      DACQR.FastFileEvento :=
        TPath.Combine(ExtractFilePath(Application.ExeName),
        'Report\DACTE_EVENTOS.fr3');
{$ENDIF}
    end
    else
    begin
      CTe.Configuracoes.Geral.ModeloDF := moCTe;
      CTe.Configuracoes.Geral.VersaoDF := TVersaoCTe.ve400;   ( aqui a versão fixa 4.0 e também no componente a versaoDF é a ve400 )

 

------------------

forma de enviar

 

    PreencheDadosCte(Cod);

    dm.CTe.Conhecimentos.GerarCTe;
    dm.CTe.Conhecimentos.Assinar;
    try
      dm.CTe.Conhecimentos.Validar;
    except
      on E: Exception do
      begin
        TfrmErrosValidacao.ShowErros(dm.CTe.Conhecimentos.Items[0].Alertas,
          dm.CTe.Conhecimentos.Items[0].ErroValidacaoCompleto, E.Message);
        Exit;
      end;
    end;
    dm.CTe.Conhecimentos.GravarXML;
 

---------------

 

tentei várias coisas de outros posts mas ainda sigo com o mesmo erro se alguém puder me ajudar desde já agradeço!

 

Postado

faltou um trecho do código de envio... segue

 

    dm.CTe.WebServices.Enviar.Sincrono := True;
    dm.CTe.WebServices.Enviar.Lote := '1';
    dm.CTe.WebServices.Enviar.Executar;

  • Moderadores
Postado

Bom não entendi pois está com CTe e está a mensagem de MDFe

então a sugestão. pega o exemplo do svn e roda ele. preenche seus dados e testa.

se postar trechos de códigos grandes anexe os mesmos pra nãof icar com um tópico gigante e ruim para pesquisar depois

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado (editado)

Ok Juliomar vou postar como anexo na proxima, então esta mensagem ai retorna quando emito o CTe e não MDFe ( eu que postei errado mesmo a mensagem correta é: cteCabecMsg inexistente no SOAP Header ), estou revisando tudo temos até quarta pois até onde sei encerra o serviço do CTe 3 na quarta feira então vou passar o FDS revisando tudo isto, estava rodando no sistema a versão 3.0 ( normal, volto para ela e emite normal ) ai passo apenas para a versão 4.0 e retorna este erro, vou dar umas olhadas no exemplo com a 4 ver se acho algo.

Editado por AlexBecker
  • Consultores
  • Solution
Postado

Bom dia Alex,

Como você utiliza o componente ACBrCTe vai ai algumas dicas:

Primeira

Você tem fontes do ACBr com alterações locais?
Verifica se não tem nenhuma unit do ACBr com uma bolinha vermelha em seu ícone, caso afirmativo delete a unit.
Atualize todos os fontes de todas as pastas.
Reinstale o ACBr com a opção de apagar arquivos antigos marcada.

Segunda

Use o programa exemplo do componente para os testes conforme o nosso amigo Julionar já lhe passou.

Terceira

O componente possui a propriede de configuração chamada VersaoDF, que tem que estar com o valor ve400
Ao alimentar o componente com os dados do CT-e não esqueça de também invormar o valor 4.0 ao campo versao: infCTe.versao := 4.0;

Quarta

O envio do CTe da versão 4 tem que ser unitário, portanto não existe mais o envio em lote de até 50 CT-e.
O modo de envio na versão 4 é síncrono, portanto já temos o resultado do processamento logo no retorno do envio, isso significa que não temos mais o numero do recibo e portanto não se faz necessáro realizar a consulta logo após o envio.

Quinta

Estude o programa exemplo, pois houve algumas alterações no layout.
Estude o código do botão [Criar e Enviar Sincrono].

Alex, você não acha que esta muito atrasado com os testes?

O ambiente de homologação foi liberado em abril de 2023 e o de produção em junho de 2023.

Quem fez o dever de casa já esta emitindo o CT-e na versão 4 a 7 meses.

O componente foi alterado para suportar a versão 4 em março de 2023 e essas alterações disponibilizadas no dia 30/03/2023 conforme consta no change log do componente.

30/03/2023
-- Diversos--
[*] Alteração visando a versão 4.00 do CT-e.
   por: Italo Giurizzato Junior

Se você ainda tem uma esperança que o Fisco vai prorrogar, pode tirar o seu cavalinho da chuva, participei de uma reunião onde estava presente dois servidores da RFB e ambos deixaram muito bem claro: Não vai haver prorrogação.

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
Em 27/01/2024 at 11:27, Italo Giurizzato Junior disse:

Bom dia Alex,

Como você utiliza o componente ACBrCTe vai ai algumas dicas:

Primeira

Você tem fontes do ACBr com alterações locais?
Verifica se não tem nenhuma unit do ACBr com uma bolinha vermelha em seu ícone, caso afirmativo delete a unit.
Atualize todos os fontes de todas as pastas.
Reinstale o ACBr com a opção de apagar arquivos antigos marcada.

Segunda

Use o programa exemplo do componente para os testes conforme o nosso amigo Julionar já lhe passou.

Terceira

O componente possui a propriede de configuração chamada VersaoDF, que tem que estar com o valor ve400
Ao alimentar o componente com os dados do CT-e não esqueça de também invormar o valor 4.0 ao campo versao: infCTe.versao := 4.0;

Quarta

O envio do CTe da versão 4 tem que ser unitário, portanto não existe mais o envio em lote de até 50 CT-e.
O modo de envio na versão 4 é síncrono, portanto já temos o resultado do processamento logo no retorno do envio, isso significa que não temos mais o numero do recibo e portanto não se faz necessáro realizar a consulta logo após o envio.

Quinta

Estude o programa exemplo, pois houve algumas alterações no layout.
Estude o código do botão [Criar e Enviar Sincrono].

Alex, você não acha que esta muito atrasado com os testes?

O ambiente de homologação foi liberado em abril de 2023 e o de produção em junho de 2023.

Quem fez o dever de casa já esta emitindo o CT-e na versão 4 a 7 meses.

O componente foi alterado para suportar a versão 4 em março de 2023 e essas alterações disponibilizadas no dia 30/03/2023 conforme consta no change log do componente.

30/03/2023
-- Diversos--
[*] Alteração visando a versão 4.00 do CT-e.
   por: Italo Giurizzato Junior

Se você ainda tem uma esperança que o Fisco vai prorrogar, pode tirar o seu cavalinho da chuva, participei de uma reunião onde estava presente dois servidores da RFB e ambos deixaram muito bem claro: Não vai haver prorrogação.

Primeira: nenhuma alteração, todos os fontes atualizados novamente esta semana.

Segunda: estou utilizando o programa exemplo e esta tudo de acordo com a 4.0, consultas e tudo mais, o que notamos é que falta alguns schemas lá na pasta do ACBR baixado (acredito que é de cada estado e devemos baixar isto )

image.png.a89d2c79da9f7bceb330618202984e09.png 

pegamos no site da receita está ok agora.

Terceira: sim esta tudo configurado para a versao 4.0 juntamente com o infcte na versao 4.0, peguei do exemplo já tem 7 meses isto mas EFETIVAMENTE ainda não tinhamos lançado CTE na versão 4! infelizmente...

Quanta: vou revisar esta.

Quinta: para conseguir fazer funcionar em homologacao e testes foi pego tudo do exemplo mesmo, consulta e homologacao ok mas quando envia um válido em produção no cliente dá alguns erros mas já estamos verificando.

 

Por enquanto obrigado já corrigimos bastante coisa no FDS e fazendo retificações ainda.

 

 

 

 

  • Consultores
Postado

Bom dia Alex,

Não sei de onde você esta baixando os fontes do ACBr.

Quando eu digo que se deve atualizar todos os fontes de todas as pastas isso quer dizer todas as pastas mesmo.

E após atualizar devemos reinstalar o ACBr.

Você disse que não continha dentro da pasta o schema: cteModalRodoviario_v4.00.xsd

Não deve conter esse Schema na pasta usada pela sua aplicação uma vez que o caminho: C:\SLCTe\\SchemaCTe não confere com o caminho que contem os schemas que nós do Projeto ACBr disponibilizamos: ...\Exemplos\ACBrDFe\Schemas\CTe, dentro desta pasta contem sim o XSD que a sua aplicação acusou a falta do mesmo.

Como você pode ver pela imagem abaixo, eu enviei para o SVN os schemas da versão 4 do CT-e no dia 10/02/2023.

image.png

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
47 minutos atrás, Italo Giurizzato Junior disse:

Bom dia Alex,

Não sei de onde você esta baixando os fontes do ACBr.

Quando eu digo que se deve atualizar todos os fontes de todas as pastas isso quer dizer todas as pastas mesmo.

E após atualizar devemos reinstalar o ACBr.

Você disse que não continha dentro da pasta o schema: cteModalRodoviario_v4.00.xsd

Não deve conter esse Schema na pasta usada pela sua aplicação uma vez que o caminho: C:\SLCTe\\SchemaCTe não confere com o caminho que contem os schemas que nós do Projeto ACBr disponibilizamos: ...\Exemplos\ACBrDFe\Schemas\CTe, dentro desta pasta contem sim o XSD que a sua aplicação acusou a falta do mesmo.

Como você pode ver pela imagem abaixo, eu enviei para o SVN os schemas da versão 4 do CT-e no dia 10/02/2023.

image.png

sim a pasta é apenas a que utilizo local eu baixei os fontes do acbr dia: 20\01\2024 e refiz a instalação do zero, a geração e envio do CTe está de acordo com o exemplo sim já revisei, os schemas:

image.png.7e2f6b895c8988e0935e297f7ee8ce8a.png

( talvez algo errado ai )

o que acontece é, que se eu utilizo o SCHMA disponibilizado pela receita ele não dá o erro: Elemento cteCabecMsg inexistente no SOAP Header, porém dá vários erros de atomicidade tipo: 1824 - Element '{http://www.portalfiscal.inf.br/cte}tpMed': 'Kg' is not a valid value of the local atomic type.

que está de acordo com o exemplo ( há muito tempo já foi aplicado isto no sistema conforme o exemplo do ACBR 😞 image.png.6f1f545f0b92bc1a4f17118a9d603fab.png

se eu utilizo o SCHEMA que esta na pasta do acbr ( que baixa com os fontes pelo SVN ) ele dá o erro: Elemento cteCabecMsg inexistente no SOAP Header

Porém, apesar de mostrar este erro ele AUTORIZA o CTe! tá muito estranho isto. 

  • Consultores
Postado

Alex,

Na minha maquia eu tenho uma pasta chamada ACBr (C:\ACBr), dentro dela tenho a pasta trunk2 (C:\ACBr\trunk2) foi esta pasta que configurei o Checkout para baixar os fontes do ACBr.

Quando eu vou atualizar, seleciono a pasta trunk2 e executo o SVN Update.

Desta forma eu garanto que tudo vai ser atualizado, ou seja, as pastas DLLs, Exemplos, Fontes, Pacotes, Projetos e Teste, sem mencionar no programa ACBrInstall_Trunk2 que esta dentro da pasta trunk2.

Outra coisa que tem que ser checada:

Você tem fontes do ACBr com alterações locais?
Verifica se não tem nenhuma unit do ACBr com uma bolinha vermelha em seu ícone, caso afirmativo delete a unit.
Atualize todos os fontes de todas as pastas.
Reinstale o ACBr com a opção de apagar arquivos antigos marcada.
Compile a aplicação com a opção Build.
Por fim repita os testes.

Acabei de fazer um teste de envio usando o programa exemplo.

O CT-e foi rejeitado, pois os dados informados no programa exemplo são fictícios. 

image.png

Como você pode ver não ocorreu erro de cabeçalho.

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 (editado)
9 minutos atrás, Italo Giurizzato Junior disse:

Alex,

Na minha maquia eu tenho uma pasta chamada ACBr (C:\ACBr), dentro dela tenho a pasta trunk2 (C:\ACBr\trunk2) foi esta pasta que configurei o Checkout para baixar os fontes do ACBr.

Quando eu vou atualizar, seleciono a pasta trunk2 e executo o SVN Update.

Desta forma eu garanto que tudo vai ser atualizado, ou seja, as pastas DLLs, Exemplos, Fontes, Pacotes, Projetos e Teste, sem mencionar no programa ACBrInstall_Trunk2 que esta dentro da pasta trunk2.

Outra coisa que tem que ser checada:

Você tem fontes do ACBr com alterações locais?
Verifica se não tem nenhuma unit do ACBr com uma bolinha vermelha em seu ícone, caso afirmativo delete a unit.
Atualize todos os fontes de todas as pastas.
Reinstale o ACBr com a opção de apagar arquivos antigos marcada.
Compile a aplicação com a opção Build.
Por fim repita os testes.

Acabei de fazer um teste de envio usando o programa exemplo.

O CT-e foi rejeitado, pois os dados informados no programa exemplo são fictícios. 

image.png

Como você pode ver não ocorreu erro de cabeçalho.

image.png.263fb1f46af53f6a37c4c2a642731a01.png

 

Atualizada ontem, refiz a instalação do ACBR ontem, não tem nada em vermelho, estou utilizando os fontes que tem ali mas vou baixar novamente e retorno aqui.

Editado por AlexBecker
Postado

italo, muitoooooo mas muito mesmo GRATO pelas isntruções, não tinha nada de correção ( pasta vermelha na minha pasta original trunk 2 do acbr ) estava tudo aparentemente normal, eu baixei novamente tudo em outra pasta nova tudo do zero, copiei os schemas novos inclusive aquele que nao aparece na outra pasta, coloquei na pasta do sistema e na hora passou o teste em homologacao.... tudo questão de schema incorreto, revisei 1000x os codigos, comparei linha a linha com o exemplo do acbr e esta tudo nos conformes porém dava os erros, peço apenas que por favor deixem o tópico aberto ainda pois vou conseguir testar em produção no cliente somente a tarde mas eu retorno aqui avisando! por enquanto em homologação está tudo 100%

  • Curtir 2
Postado

Confirmando o retorno, CT-e 100% homologação e produção, CTE-os também! o MEU problema foi pura questão de schemas, os da receita não estão certos, o que EU estava baixando aqui com o SVN até agora não sei qual é problema pois eu atualizo na pasta antiga que eu tinha e dá como atualizado e revisão correta mas NÃO aparece os schemas, algum erro de svn não sei dizer o que é mas baixando tudo novamente para uma pasta nova veio correto, atualizei os schemas aqui e ficou tudo 100%

Agradeço muito novamente ao Ilato que teve a paciência de explicar tudo passo à passo onde ao meu ver até quem nunca tivesse emitido se seguisse o exemplo dele e o do próprio acbr iria conseguir emitir, muito bom mesmo! então srs. caso resolvido e muito obrigado! 

  • Moderadores
Postado
36 minutos atrás, AlexBecker disse:

até agora não sei qual é problema pois eu atualizo na pasta antiga que eu tinha e dá como atualizado e revisão correta mas NÃO aparece os schemas, algum erro de svn não sei dizer o que é

Talvez você tenha executado o SVN delete, os arquivos são excluídos e não aparecem mais, até você fazer um SVN revert pra desfazer o delete.

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

Projeto ACBr

 

 

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