Ir para conteúdo
  • Cadastre-se

dev botao

A chave de Acesso do DPS não está vindo correta quando peço o retorno


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

Recommended Posts

Postado

Bom dia, estou fazendo implementação da busca da função de 'Consultar DPS por Chave' onde eu estou enfrentando um problema que não consegui resolver
Eu estou usando essa variável para tentar obter a chave do DPS que eu gerei no meu sistema 'ACBrNFSeX1.NotasFiscais.Items[0].NFSe.InfID.ID' 

Só que quando ele retorna a chave, quase volta a chave inteira, mas ainda falta alguns informações, que são os primeiro digitos.

Como volta o retorno:     DPS000000020288796800010700001000000000054205

Como tá na xml do DPS: DPS431490220288796800010700001000000000054205

 

Eu também já usei essa variável pra tentar obter 'ACBrNFSeX1.NotasFiscais.Items[0].XmlRps' mas não esta retornando corretamente.

E estou usando essa função para conseguir ler o xml.
ACBrNFSeX1.NotasFiscais.Clear;
ACBrNFSeX1.NotasFiscais.LoadFromFile('C:\...\0542041-rps.xml');

  • Consultores
Postado

Bom dia Douglas,

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.
 

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

Bom dia, eu deletei os que estavam com uma bolinha vermelha e mesmo assim não funcionou.

Mas eu realizei mais alguns testes a mais sobre essas variáveis.

Testei em um Xml de uma nota de retorno após a emissão e quando eu leio o arquivo ela consegue pegar os valores corretamente, tanto 'ACBrNFSeX1.NotasFiscais.Items[0].XmlRps'; 'ACBrNFSeX1.NotasFiscais.Items[0].NFSe.infNFSe.ID' e 'ACBrNFSeX1.NotasFiscais.Items[0].NFSe.InfID.ID'

 

Só tá ocorrendo esse problema no XML do DPS não sei dizer o motivo, pq a função de leitura que eu uso é a mesma

  • Consultores
Postado

Boa tarde Douglas,

Após o envio você consegue a chave do DPS e da Nota da seguinte forma:

em ACBrNFSeX1.WebService.Emite.idNota temos a chave do DPS

em ACBrNFSeX1.WebService.Emite.Link temos a chave da Nota.

Ao carregar o XML da nota temos:

a chave da nota lendo (...).NFSe.infNFSe.ID

a chave do DPS lendo (...).NFSe.infID.ID 

Caso você carrego o XML do DPS em vez da NFS-e você só tem a chave do DPS lendo:  (...).NFSe.infID.ID

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)

Boa tarde.

Estou tentando pela xml do DPS, buscando na variável que tu mencionou 'NFSe.infID.ID' Só que está retornando com os primeiros numeros

memoLog dentro do sistema:

image.png.519dceecf115825a7b38f4b1cad9dfd2.png

linha que mostra o valor da infID.ID

image.thumb.png.637866edf7b06e02fc96f7267a4d5342.png

xml que to usando pra pegar o valor da chave

image.png.ca01ced69d509843f1b376b76f270a81.png

Editado por DOUGLAS GUIMARÃES DOS SANTOS
  • Consultores
Postado

Douglas,

Na unit PadraoNacional.LerXml temos:

procedure TNFSeR_PadraoNacional.LerinfDPS(const ANode: TACBrXmlNode);
var
  AuxNode: TACBrXmlNode;
  Ok: Boolean;
begin
  AuxNode := ANode.Childrens.FindAnyNs('infDPS');

  if AuxNode <> nil then
  begin
    NFSe.infID.ID := OnlyNumber(ObterConteudoTag(AuxNode.Attributes.Items['Id']));
    NFSe.DataEmissao := ObterConteudo(AuxNode.Childrens.FindAnyNs('dhEmi'), tcDatHor);
    NFSe.verAplic := ObterConteudo(AuxNode.Childrens.FindAnyNs('verAplic'), tcStr);
    NFSe.IdentificacaoRps.Serie := ObterConteudo(AuxNode.Childrens.FindAnyNs('serie'), tcStr);
    NFSe.IdentificacaoRps.Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('nDPS'), tcStr);
    NFSe.Competencia := ObterConteudo(AuxNode.Childrens.FindAnyNs('dCompet'), tcDat);
    NFSe.tpEmit := StrTotpEmit(Ok, ObterConteudo(AuxNode.Childrens.FindAnyNs('tpEmit'), tcStr));

    LerSubstituicao(AuxNode);
    LerPrestador(AuxNode);
    LerTomador(AuxNode);
    LerIntermediario(AuxNode);
    LerServico(AuxNode);
    LerValores(AuxNode);
  end;
end;

Como você pode ver ao ler o atributo Id (da tag infDPS) que contem a chave do DPS ele executa a função OnlyNumber visando remover o prefixo DPS da chave, deixando somente os dígitos.

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

  • Solution
Postado

Bom dia.

Consegui resolver o problema que estava ocorrendo.

Eu estava vendo alguns exemplos do modulo de exemplo da ACBR e vi alguns exemplo passando um boolean como parametro também.

Então fui testar como ele tava lendo o xml passando ele e funcionou.

Antes eu ta utilizando

    ACBrNFSeX1.NotasFiscais.LoadFromFile('...\11-rps.xml');
Agora eu passei pra funcionar
    ACBrNFSeX1.NotasFiscais.LoadFromFile('...\11-rps.xml', false);

Obrigado pela assistência

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

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