Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia:

Estou utilizando o ACBR para emitir minhas Notas fiscais.

A emissão da NFE está funcionando sem problemas porem quando eu tento cancelar  a NFE ele me da
o seguinte erro:  "Rejeição: Falha no Schema XML", como ele da est mensagem e não da mais nenhuma 
referência eu não sei onde procurar o que pode estar errado, seguindo outros tópicos eu verifiquei
que poderia ser algum erro no arquivo XML mas ele está integro e sem erros, verifiquei um post que
dizia que o problema poderia ser em "ACBrNFe.Configuracoes.Geral.CamposFatObrigatorios:=False" eu 
colouei false com o post dizia a pasta schemas está atualizada e o cancelamento funciona em um 
outro software que também utiliza ACBR e eu confiro os atributos do componente que esta la e está
igual ao meu e também conferindo as informações que o outro software envia não consegui encontrar nada 
diferente do meu. Alguém pode me dar alguma luz de o que mais eu devo conferir?

Postado

Ok mas conforme eu disse acho que estou enviando alguma informação errada só não consigo saber o que conferir pois em um outro software que utiliza exatamente a mesma pasta de eschema ele funciona, mas eu não consegui descobrir o que ele está fazendo diferente do meu. Eu  estou utilizando exatamente a mesma rotina de cancelamento. 

  • Moderadores
Postado
1 hora atrás, amauridebarros disse:

Alguém pode me dar alguma luz de o que mais eu devo conferir?

Um erro comum é a justificativa menor que 15 caracteres.

Mas precisa conferir o XML gerado pra tentar identificar o problema.

Configure o componente pra gravar os arquivos de envio e retorno e anexe aqui o *-ped-can.xml e *-ped-can-soap.xml.

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

Projeto ACBr

 

 

  • Moderadores
Postado
33 minutos atrás, amauridebarros disse:

Você está enviando dois eventos no seu arquivo 0-ped-eve.xml, um deles não tem justificativa, por isso o erro de schema.

Provavelmente é algo errado na sua rotina, e está chamando o método ACBrNFe.EventoNFe.Evento.Add mais de uma vez, ou faltando chamar ACBrNFe.EventoNFe.Evento.Clear antes de iniciar a rotina de cancelamento.

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

Projeto ACBr

 

 

Postado
3 horas atrás, BigWings disse:

Você está enviando dois eventos no seu arquivo 0-ped-eve.xml, um deles não tem justificativa, por isso o erro de schema.

Provavelmente é algo errado na sua rotina, e está chamando o método ACBrNFe.EventoNFe.Evento.Add mais de uma vez, ou faltando chamar ACBrNFe.EventoNFe.Evento.Clear antes de iniciar a rotina de cancelamento.

*****************************************************************************************************************************************************************************

Esta é a minha rotina não consigo achar onde enviei duas vezes o mesmo evento debugando a aplicação o erro ocorre logo apos a linha:

      ******************************************************
      if ACBrNFe.EnviarEvento(NumeroLote) then

      *****************************************************

 

*******************************************************************************************************************************************

procedure TFrmM005HK.SB_CanNfeClick(Sender: TObject);
Var
  DataHoraEvento:TDateTime;
  NumeroLote    :Integer;
  AnoDoc, MesDoc: string;
  VdAuxili      :TDateTime;
  VtAuxili      :TTime;
  VsAuxili      :String;
  VsCnpCpf      :String;
  VsNomArq      :String;
  vfcnpcpf      :Real;
    Vidatemi      :Integer;
    Vidatsai      :Integer;
    Vihorsai      :Integer;
  VlrVal:String;
  vinped:Integer;
  teste:String;
begin
    ViNroNfe:=StrToInt(EdtNumNfe.Text);
    VdAtbNfe:=DmAtbCadNfe.RetCadNfe(ViNroNfe
                                   ,'1'
                                   ,VdTabPed.fVinumped
                                   ,VlrNfe
                                   ,StrToDate(EdtPriPar.Text)
                                   ,1
                                   ,StrToDate(EdtDatSai.Text)
                                   ,0
                                   ,1
                                   ,VdTabPed.fVsprzfat
                                   ,VdTabPed.fVsnroped );
      DmAtbCadPed.Qry_LocNfePed.Close;
      DmAtbCadPed.Qry_LocNfePed.Parameters.ParamByName('PrNfe').Value:=VdAtbNfe.fVinumnfe;
      DmAtbCadPed.Qry_LocNfePed.Open;
      VsNomArq:=DmAtbCadPed.Qry_LocNfePed.FieldByName('nomarq').AsString;
      Vs_RetChvNfe:=DmAtbCadPed.Qry_LocNfePed.FieldByName('chanfe').AsString;
      Vs_Retnropro:=DmAtbCadPed.Qry_LocNfePed.FieldByName('codpro').AsString;
      If DmAtbCadPed.Qry_LocNfePed.FieldByName('codpro').AsString='' then
      Begin
         Showmessage('Nota sem protocolo de transmissão...');
         abort;
      End
      Else
     begin
         Application.CreateForm(TFrmA003Hk, FrmA003Hk);
         FrmA003Hk.Lbl_definicao.Caption:='Justificativa com no minimo 15 caracteres';
         FrmA003Hk.Mm_descricao.Lines.Clear;
         FrmA003Hk.ShowModal;
     end;
     if FrmA003Hk.Vb_cancelarNFE then
     Begin
         DmAtbCadPed.Qry_LocNfePed.Close;
         DmAtbCadPed.Qry_LocNfePed.Parameters.ParamByName('PrNfe').Value:=DmAtbCadPed.Tbl_BasePed.FieldByName('numnfe').AsInteger;
         DmAtbCadPed.Qry_LocNfePed.Open;
         ACBrNFe.Configuracoes.Arquivos.PathSchemas:='C:\Dsystem\NFE\Schemas\';
         ACBrNFe.Configuracoes.Geral.CamposFatObrigatorios:=False;
         ACBrNFe.Configuracoes.Geral.IdCSC := VdAtbNfe.fVsidtcer;
         ACBrNFe.Configuracoes.Geral.CSC := VdAtbNfe.fVsidttok;
         ACBrNFe.Configuracoes.Certificados.NumeroSerie := VdAtbNfe.fVsidtcer;
         ACBrNFe.SSL.NumeroSerie := VdAtbNfe.fVsidtcer;
         ACBrNFe.SSL.CarregarCertificado ;
         // numero do lote de envio      ****
         DataHoraEvento := NOW;
         NumeroLote     := StrToInt(FormatDateTime('yymmddhhmm', NOW));

         AnoDoc := Copy(DateToStr(Vd_Retdatemi),7,4);
         MesDoc := Copy(DateToStr(Vd_Retdatemi),4,2);
         if not FrmM005hk.ACBrNFe.NotasFiscais.LoadFromFile( FrmM004HK.Vs_arqxmlnfe + '\' + VsNomArq) then
         raise Exception.Create('Nao foi possivel carregar o xml da nota');
     End;
     ACBrNFe.EventoNFe.idLote := NumeroLote;
     ACBrNFe.EventoNFe.Evento.Clear;
     with ACBrNFe.EventoNFe.Evento.Add do
     begin
        infEvento.CNPJ            := FloatToStr(VdAtbNfe.fVicnpemi);
        infEvento.dhEvento        := DataHoraEvento;
        infEvento.tpEvento        := tecancelamento;
        infEvento.chNFe           := Vs_RetChvNfe;
        infEvento.detEvento.nProt := Vs_Retnropro;
        infEvento.detEvento.xJust := FrmA003Hk.Mm_descricao.Text;
     end;

      ******************************************************
      if ACBrNFe.EnviarEvento(NumeroLote) then

      *****************************************************
      begin
        with ACBrNFe.WebServices do
        begin
          if EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat <> 135 then
          begin
            raise Exception.CreateFmt(
              'Ocorreu o seguinte erro ao cancelar a nota fiscal eletrônica:'  + sLineBreak +
              'Código:%d' + sLineBreak +
              'Motivo: %s', [
                EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat,
                EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo
            ]);
          end;
        end;
      end
      else
      begin
        with ACBrNFe.WebServices.EnvEvento do
        begin
          raise Exception.Create(
            'Ocorreram erros ao tentar efetuar o cancelamento:' + sLineBreak +
            'Lote: '     + IntToStr(EventoRetorno.idLote) + sLineBreak +
            'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak +
            'Orgao: '    + IntToStr(EventoRetorno.cOrgao) + sLineBreak +
            sLineBreak +
            'Status: '   + IntToStr(EventoRetorno.cStat) + sLineBreak +
            'Motivo: '   + EventoRetorno.xMotivo
          );
        end;
      end;
      if (ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 135) or
         (ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 155) then
      begin
         Showmessage('NFe cancelada com sucesso.');
         //Altera o Status da NFE no banco para 3 - NFE Cancelada/////////////////////////
         // Inserido por amauri para pegar o valor do cnpj e numero
         VsCnpCpf           := Floattostr(VdTabPed.fVfinscli);
         Dm_AtlBas.Atlcabnfe( DmAtbCadPed.Qry_LocNfePed.FieldByName('numnfe').AsInteger
                             ,'1'
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('numnfe').AsInteger
                             ,'1'
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('datemi').AsInteger
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('datsai').AsInteger
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('horsai').AsInteger
                             ,0
                             ,1
                             ,VdTabPed.fVfinscli
                             ,0
                             ,'NFE'
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,0
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('nomarq').AsString
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('chanfe').AsString
                             ,DmAtbCadPed.Qry_LocNfePed.FieldByName('codpro').AsString
                             ,3 //Status 03 - NFE Cancelada
                             ,'0' //Numero da Inscrição estadual da Transportadora
                             ,0 //Codigo da Transportadora
                             ,'A');
         /////////////////////////////////////////////////////////////////////////////////
      end;

 

*******************************************************************

Postado

Bom dia pessoal,

Eu sei que não deveria estar pedindo este tipo de ajuda e sim lendo a documentação, e eu estou fazendo isto aos poucos mas no momento a situação é emergencial, alguem poderia me passar algum exemplo de cancelamento de nfe que esteja funcionando.

Muito obrigado...

  • Moderadores
Postado
Em 11/05/2019 at 15:10, amauridebarros disse:

Esta é a minha rotina não consigo achar onde enviei duas vezes o mesmo evento debugando a aplicação o erro ocorre logo apos a linha:

A única coisa que me chamou atenção no trecho de código é você estar manipulando dois objetos ACBrNFe na mesma rotina, um na classe FrmA003Hk e outro na classe TFrmM005HK.

Fora isso não identifiquei o que possa estar causando o problema, será necessário debugar.

Tente analisar o valor de ACBrNFe.EventoNFe.Evento.Count antes da chamada ao método ACBrNFe.EnviarEvento.

22 horas atrás, amauridebarros disse:

Eu sei que não deveria estar pedindo este tipo de ajuda e sim lendo a documentação, e eu estou fazendo isto aos poucos mas no momento a situação é emergencial, alguem poderia me passar algum exemplo de cancelamento de nfe que esteja funcionando.

O demo do componente tem um exemplo de cancelamento funcionando.

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

Projeto ACBr

 

 

Postado
36 minutos atrás, BigWings disse:

A única coisa que me chamou atenção no trecho de código é você estar manipulando dois objetos ACBrNFe na mesma rotina, um na classe FrmA003Hk e outro na classe TFrmM005HK.

Fora isso não identifiquei o que possa estar causando o problema, será necessário debugar.

Tente analisar o valor de ACBrNFe.EventoNFe.Evento.Count antes da chamada ao método ACBrNFe.EnviarEvento.

O demo do componente tem um exemplo de cancelamento funcionando.

"Tente analisar o valor de ACBrNFe.EventoNFe.Evento.Count antes da chamada ao método ACBrNFe.EnviarEvento"

ele retorna 1, então o eventoo está sendo enviado certo?

  • Moderadores
Postado
10 minutos atrás, amauridebarros disse:

"Tente analisar o valor de ACBrNFe.EventoNFe.Evento.Count antes da chamada ao método ACBrNFe.EnviarEvento"

ele retorna 1, então o eventoo está sendo enviado certo?

O correto é 1 sim, mas isso vai contra o que está sendo gerado no XML.

Como disse, é preciso debugar.

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

Projeto ACBr

 

 

Postado

Obtive o seguinte erro ao tentar cancelar uma nfe usando NFE.CANCLEARNFE agora a pouco

ERRO: leiauteEvento_v1.00.xsd#/schema/complexType[2][@name = 'TRetEvento']/sequence[1]/element[1][@name = 'infEvento']/complexType[1]/sequence[1]/element[3][@name = 'cOrgao']
Undeclared XSD type : '{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE'.

Postado

Bom dia pessoal, pelo jeito o problema é mais complexo do que eu imaginava...

Meus sinceros agradecimentos ao pessoal que tentou me ajudar, vou pesquisar a documentação e assim que conseguir algo eu posto a solução aqui.

Mais uma vez muito obrigado e bom trabalho ou estudos a todos.

  • Curtir 1
  • 2 anos depois...
Postado
Em 13/05/2019 at 09:24, lfbasso disse:

Obtive o seguinte erro ao tentar cancelar uma nfe usando NFE.CANCLEARNFE agora a pouco

ERRO: leiauteEvento_v1.00.xsd#/schema/complexType[2][@name = 'TRetEvento']/sequence[1]/element[1][@name = 'infEvento']/complexType[1]/sequence[1]/element[3][@name = 'cOrgao']
Undeclared XSD type : '{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE'.

estou exatamente com esse mesmo problema.. como resolveu?

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