Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia a todos

Migramos para o trunk 2 a mais ou menos uns três meses notamos muitas diferenças para melhor na mudança, principalmente na organização do código e diretórios. Fazemos o possível para atualizar os fontes diariamente (sem medo) pois na maioria das vezes conseguimos identificar o que mudou lendo os fontes. Um problema que surgiu recentemente estamos precisando de auxílio é o seguinte: 

Antes quando por algum motivo um XML de NFe não era recuperado após a transmissão fazíamos o seguinte:

1) Alimenta o componente com os dados do documento gerando o XML

2) ACBrNFe.NotasFiscais.Validar;

3) ACBrNFe.NotasFiscais.Assinar;

4) ACBrNFe.Consultar;

Se não me engano o XML era atualizado e pronto! Problema Resolvido!

Em testes não estamos conseguindo mais fazer isto. Houve alguma mudança neste processo? Ou agora não pode "Atualizar o XML" como anteriormente. Tentei fazer o Download do XML transmitido, utilizar os métodos XMLAssinato, XMLOriginal e não conseguimos ver uma maneira de obter o XML perdido automaticamente a não ser baixar manualmente no site da sefaz e guardar ele no banco de dados. 

Quem já passou por isto e puder me dar uma dica agradeço!

3 Virtudes de um líder:
1) Ensinar o que se sabe
2) Praticar o que se ensina
3) Aprender o que se ignora

  • Moderadores
Postado

Eu tenho um processo parecido, mas faço um pouco diferente, antes de enviar a nota eu gravo o XML assinado e não autorizado, se por algum acaso ocorre um problema, somente carrego este XML no componente e faço a consulta, tem funcionado bem sem problemas.

  • Curtir 2

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Bom dia e obrigado pela atenção em responder a nossa dúvida

Estou fazendo exatamente assim:

      ACBrNFe.NotasFiscais.Clear;

      ACBrNFe.NotasFiscais.LoadFromString(XML); //XML Assinado

      ACBrNFe.Consultar;

      Result := ACBrNFe.NotasFiscais.Items[0].XMLOriginal;

O que está acontecendo é que o XML retornado por esta função está somente com a assinatura e não "atualizou". O que será que estou fazendo de errado?

 

 

 

3 Virtudes de um líder:
1) Ensinar o que se sabe
2) Praticar o que se ensina
3) Aprender o que se ignora

Postado

Só para situar, estou usando a revisão 10158;

Eu estou usando a propriedade XMLOriginal em vez de XML porque assim que gero e assino o XML e mando consultar e acesso esta propriedade ela está retorando o XML sem assinar. O Juliomar falou sobre as propriedades de salvar. Lembro que em revisões antigas tinha uma propriedade AtualizarXMLCancelado e foi removida.

Estou carregando as configurações da seguinte maneira atualmente:

         {Geral}
         with ACBrNFe.Configuracoes.Geral do
         begin
            ExibirErroSchema := True;
            FormatoAlerta := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.';
            FormaEmissao := teNormal;
            ModeloDF := moNFe;
            VersaoDF := ve310;
            //IdCSC := edtIdToken.Text;
            //CSC := edtToken.Text;
            Salvar := getBoolean('conf_salvar_xml');
         end;

         {Web Services}
         with ACBrNFe.Configuracoes.WebServices do
         begin
            UF := getString('conf_webservices_uf');
            Ambiente := StrToTpAmb(ok, getString('conf_webservices_ambiente'));
            Visualizar := False;
            Salvar := False;
            AjustaAguardaConsultaRet := False;
            AguardarConsultaRet := 0;
            Tentativas := 5;
            IntervaloTentativas := 1000;
         end;

         {Arquivos}
         with ACBrNFe.Configuracoes.Arquivos do
         begin
            Salvar := getBoolean('conf_salvar_xml');
            SepararPorMes := False;
            AdicionarLiteral := False;
            EmissaoPathNFe := False;
            SalvarEvento := getBoolean('conf_salvar_xml');
            SepararPorCNPJ := False;
            SepararPorModelo := False;
            pathSalvar := Self.pathSalvar;
            PathSchemas := Self.PathSchemas;
            PathNFe := Self.pathSalvar;
            //PathCan := Self.pathSalvar; removido
            //PathCCe := Self.pathSalvar; removido
            PathInu := Self.pathSalvar;
            PathEvento := Self.pathSalvar;
         end;

No caso das propriedades do WebServices o salvar está como False. Será que nesta propriedade que tenho que setar True para que faça como fazia no trunk1?

3 Virtudes de um líder:
1) Ensinar o que se sabe
2) Praticar o que se ensina
3) Aprender o que se ignora

Postado

Ítalo, Regys e Juliomar, mesmo acessando a propriedade XML não estou conseguindo. Neste caso como você disse ele teria que atualizar o XML. Quando mando imprimir o DANFE PDF ele não mostra o protocolo de autorização que também não tem no XML. Tem alguma rotina em específico que eu possa DEBUGAR para em que momento atualiza o XML? Quem sabe consigo ver alguma coisa?

3 Virtudes de um líder:
1) Ensinar o que se sabe
2) Praticar o que se ensina
3) Aprender o que se ignora

Postado

Pedro, dê uma conferida em seu app, uma vez que, o componente se configurado corretamente atualiza o XML sem problemas, de repente, você pode estar lendo o XML gerado e salvo pelo aplicativo, dê uma olhada na propriedade PathSalvar, será gravado na pasta que estiver setada nesta propriedade.

Pelo menos aqui comigo está rodando 100%

Att.

_____________

Prates, Agnaldo

  • 2 meses depois ...
Postado (editado)

Estou com o mesmo problema. Realmente algo foi mudado. Mas não sei ainda ao certo. Antes usava assim. Passava a chave e mandava consulta, ele carregava o XML com protocolo 100%. Hoje ele não carrega mais, estou tendo que fazer um Load do XML original. Acredito que antes essa consulta buscava o XML por completo na SEFAZ.

 FrmPrincipal.ACBrNFe1.WebServices.Consulta.NFeChave := vchave;
FrmPrincipal.ACBrNFe1.WebServices.Consulta.Executar;
 

Adicionei FrmPrincipal.ACBrNFe1.NotasFiscais.LoadFromFile , no caso e funcionou. Acredito que no Trunk2 precisa carregar o XML antes de qualquer operação o que no Trunk1 ele fazia automáticamente de alguma forma.

Editado por digao_go
  • Moderadores
Postado

A consulta nunca buscou o XML por completo no SEFAZ, isso não existe na consulta e nunca existiu, nem é possível, basta verificar o manual da NF-e e ver que a consulta não serve para isso.

O único jeito de atualizar o XML é carregar ele e consultar, ai sim o componente vai atualizar.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • 1 mês depois ...
Postado

Olá, Estou tive um problema relacionado ao tratamento do XML apos ele estar autorizado.

Como particularmente prefiro montar um script para inserção dos dados nas tabelas, obtenho um erro por conta da aspas simples ( ' ) que vem no xml de retorno, antes vinha como aspas duplas, minha dúvida é se permanecerá assim mesmo?

Propriedade = ACBrNFe.NotasFiscais.Items[0].XML

No caso os cabeçalhos de retorno vem com a aspas simples, ocasiona erro ao montar o script, facil de corrigir, porem a dúvida é se esta correto.

<protNFe versao='3.10'><infProt Id='ID141160008576509'><tpAmb>1</tpAmb><verAplic>PR-v3_5_1</verAplic><chNFe>41160108795129000145550010000069201000069200</chNFe><dhRecbto>2016-01-19T11:03:02-02:00</dhRecbto><nProt>141160008576509</nProt><digVal>uxYrvdVnRfTdVG/P2GW62QpTzlI=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>

Anteriormente Retornava assim, aspas duplas.

<protNFe versao="3.10"><infProt Id="Id135160008313039"><tpAmb>1</tpAmb><verAplic>SP_NFE_PL_008h2</verAplic><chNFe>35160152434156000184550010025535231002277073</chNFe><dhRecbto>2016-01-07T00:36:11-02:00</dhRecbto><nProt>135160008313039</nProt><digVal>rPb7Nhlw/4LWspmpDNVoDWHGBEQ=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>

 

  • Consultores
Postado

Boa noite Wender,

Quando você diz atualizar esta querendo substituir o protocolo de autorização pelo de cancelamento?

Se sim, esquece isso não é legal.

Esta querendo acrescentar ao XML o protocolo de autorização a um XML que esta apenas assinado?

Se sim, você carregou o componente com o XML assinado antes de executar o método Consultar?

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

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