Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

A rotina abaixo implementa a consulta individual , para pegar novamente o xml autorizado quando existe falhas e não foi gravado.

Estou com o erro List index out of bounds (0) no ponto assinalado, a rotina funcionava e neste ponto o XML assinado era gravado na pasta

Devo novamente dar um clear e novamente carregar o XML gerado ? O que mudou ?

try
    with ACBrNFe do
      begin
        NotasFiscais.Clear;
        NotasFiscais.LoadFromFile(aXml);
        //  sChave := ACBrNFe.NotasFiscais.Items[0].NFe.infNFe.ID;
        sChave := ChaveFormatada(ACBrNFe.NotasFiscais.Items[0].NFe.infNFe.ID);

        if Consultar(sChave) then
          begin
            iStat := WebServices.Consulta.cStat;
            if iStat <> 0 then
               begin
                 with WebServices.Consulta do
                   begin
                        GravaRet1;

                        if ((iStat = 100) or (iStat = 150)) then
                          with ACBrNFe.NotasFiscais.Items[0].NFe.procNFe do <<< AQUI OCORRE O ERRO
                            begin
                              GravaRet2
                            end;
 

Postado

Boa noite

O erro de "list index out of bounds" parece estar ocorrendo em "notasfiscais.items[0]"... faça um teste IF vetificando antes se "notasfiscais.count > 0".

Verifique tambem consultando pela chave no site da respectiva sefaz se a nota, q vc fez a consulta e deu o erro, existe de fato...

Att

Ricardo

Postado

Ricardo, obrigado pela atenção.

O grande problema é que a mesma rotina não apresenta erro em outros XMLs, apenas em um em especifico, que não esta incorreto.

Consultei o site pela chave e lá a nota consta como AUTORIZADA, fiz um debug e o digestvalue do XML gerado  é diferente do site.

é ISSO QUE CRIA UMA RAISE EXCEPTION DENTRO DO COMPONENTE.

Mas como ? Segundo o cliente parece que no momento a internet deu alguma pane.

Não sei o que fazer !?! Alguma luz

  • 2 semanas depois ...
Postado

Oi Ricardo, eu fui enviado para atendimento externo uns dias, rsrsrs.

Eu fiz a comparação deste XML e de outros, tudo igual.

Fiz uma consulta no site da sefaz e baixei o xml e descobri que a diferença reside no digestvalue e por ser diferente cai em uma exception no componente.

Porque esta diferente é algo um tanto inexplicavel.

A data e hora é gravada no banco, todas as demais informações também, e o aplicativo vendo que já existe um xml gerado ele não gaz nova geração ele carrega o xml e envia.

Alguma luz ?

 

 

 

 

Postado

SOLUÇÃO :

Caros descobri o problema,

Em operação normal o XML é gerado, a partir dos dados armazenados no banco, inclusive a data e hora, e na tentativa de transmitir, devido a falha de internet ou time out não havia o retorno.

Ocorre que nesta falha, mesmo consultando pelo XML aparecia a resposta que não constava na base de dados.

Ao tentar proceder nova transmissão, pegava-se os dados do banco de dados e tentava nova transmissão, mas mesmo os dados iguais o DigestValue era alterado e criado um XML diferente.

Dai que o tal erro era uma exception do componente que abortava ao ter o retorno de DigestValue diferente.

 

Postado

Sim Ricardo , o  NotasFiscais.Clear  é chamado antes de alimentar o componente.

Agora vou substituir essa nova geração do XML pelo menos na NFCe por carregar o XML gerado.

Aproveitando : Como te agradeço Italo por me mostrar a importância de salvar o XML gerado 

 

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