Ir para conteúdo
  • Cadastre-se

dev botao

Médoto : DistribuicaoDFe Erro : Falha no Arquivo XML


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

Recommended Posts

Prezados Companheiros

Boa Tarde

Estou ajustando uma rotina que desenvolvi há alguns anos , cuja finalidade é Consulta de Notas Fiscais Destinadas, para utilizar o método : DistribuicaoDFe.

Para tanto desenvolvi o código-fonte que posto abaixo.

Fiz atualização do ambiente os os Schemas Xml que o Acbr distribui.

E, mesmo assim, quando executo DistribuicaoDFe o único resultado é o erro "FALHA NO SCHEMA XML".

Sabem os companheiros onde posso estar errando ?

Grato

CÓDIGO-FONTE:
  stUltNSU := Trimm(qryUltimaConsulta.FieldByName('ULTIMONSU').AsString);
  if trim(stUltNSU) then
    stUltNSU := '0';
  dmdModAcbrNFe.acbrNota.NotasFiscais.Clear;

  repeat
    // pesquiso na sefaz
    boConsultaComExito := False;
    try
      dmdModAcbrNFe.acbrNota.DistribuicaoDFe(RetornaUF(qryEmpresa.FieldByName('CODESTADO').AsString),
                                    stCNPJEmpresa,
                                    stUltNSU, '' );
      boConsultaComExito := True;
    except on e : exception do
      stMsgErro := 'ATENÇÃO !'                                    + #13 + #13 +
                   'A SEFAZ recebeu o pedido de Consulta '        + #13 + #13 +
                   'Mas retornou a seguinte mensagem de erro : '  + #13 + #13 + '  ' + Trim(e.message);
      showmessage(stMsgErro);
    end;

    if (boConsultaComExito) then
      begin
        inQtdDoc := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1;
        for inInc := 0 to inQtdDoc do
          begin
            if (dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.chNFe <> '') then
              begin
                  // cnpj
                  stCnpj := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.CNPJCPF;
                  // razão social
                  stRazaoSocial       := AnsiUpperCase(dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.xNome);
                  // inscrição estadual
                  stInscricaoEstadual := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.IE;
                  // data da emissão
                  dtDataEmissao       := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.dhEmi
                  // entrada ou saída
                  case dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.tpNF of
                    tnEntrada: stTipoNfe := '0';  // entrada
                    tnSaida:   stTipoNfe := '1';  // saida
                  end;
                  // valor total da nota fiscal
                  cyValorNota         := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.vNF;
                  // data da autorização
                  dtDataAutoriza := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[inInc].resNFe.dhRecbto
              end;
          end;
          stUltNSU_ConsultaAtual := dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;;

          stExisteMaisProcessamento := '';
          if dmdModAcbrNFe.acbrNota.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137  then
            stExisteMaisProcessamento := 'N'
          else
            stExisteMaisProcessamento := 'S';

      end;
  until ((inNroPesquisa < spnMaximoConsultas.Value) and (stExisteMaisProcessamento = 'S') and (boConsultaComExito));

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Carlos,

Primeiramente peço que não poste código como parte do texto da postagem a não ser que seja meia dúzia de linhas, caso contrario coloque em um arquivo texto e anexa a postagem.

Segundo, favor anexar os arquivos soap tanto do envio quando do retorno para que possamos analisar.

  • 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

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