Loki1_11 Postado 6 Outubro Postado 6 Outubro Bom dia !! Estou migrando para o componente NFSeX, segui todos os procedimentos na documentação e o envio já está funcionando, porém ao tentar cancelar estou recebendo o seguinte erro: EACBRDFeException with message 'Não encontrei final do elemento: <ns3:Pedido>' Adicionei os arquivos fontes do acbr no debug path para identificar o que estava causando e aparentemente ao assinar o documento para o cancelamento a classe Ginfes.Provider.pas prepara o xml da seguinte forma: procedure TACBrNFSeProviderGinfes.PrepararCancelaNFSe( Response: TNFSeCancelaNFSeResponse); begin with ConfigMsgDados do begin Prefixo := ''; PrefixoTS := ''; end; inherited PrepararCancelaNFSe(Response); //Ao voltar os prefixos aqui o metodo assinar chamado posteriormente falha pois tentar encontrar o prefixo + ':' + Pedido, porem a tag pedido não contem prefixo. with ConfigMsgDados do begin Prefixo := 'ns3'; PrefixoTS := 'ns4'; end; end; Este comportamento pode ser visto aqui na unit ACBrNFSeXProviderBase.pas rocedure TACBrNFSeXProvider.AssinarCancelaNFSe( Response: TNFSeCancelaNFSeResponse); var IdAttr, Prefixo, IdAttrSig: string; AErro: TNFSeEventoCollectionItem; begin if not ConfigAssinar.CancelarNFSe then Exit; if ConfigAssinar.IncluirURI then IdAttr := ConfigGeral.Identificador else IdAttr := 'ID'; //Aqui esta a parte especifica que confere se existe prefixo e atribui ele + os : if ConfigMsgDados.Prefixo = '' then Prefixo := '' else Prefixo := ConfigMsgDados.Prefixo + ':'; try IdAttrSig := SetIdSignatureValue(Response.ArquivoEnvio, ConfigMsgDados.CancelarNFSe.DocElemento, IdAttr); //E aqui no assinar o prefixo é adicionado ao DocElemento que esta causando o problema. Response.ArquivoEnvio := FAOwner.SSL.Assinar(Response.ArquivoEnvio, Prefixo + ConfigMsgDados.CancelarNFSe.DocElemento, ConfigMsgDados.CancelarNFSe.InfElemento, '', '', '', IdAttr, IdAttrSig); except on E:Exception do begin AErro := Response.Erros.New; AErro.Codigo := Cod801; AErro.Descricao := ACBrStr(Desc801 + E.Message); end; end; end; Por acaso alguem mais esta passando por isso com o Ginfes de Santo André? tem algo especifico que não estou vendo? pois segui as configurações iguais as do exemplo de teste, e confirmei que debugando e removendo o prefixo neste momento o cancelamento é realizado corretamente. Desde já agradeço.
Consultores Italo Giurizzato Junior Postado 6 Outubro Consultores Postado 6 Outubro Boa tarde @Loki1_11, Acabei de realizar um teste usando o programa exemplo e não ocorreu esse erro. 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. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Loki1_11 Postado 6 Outubro Autor Postado 6 Outubro Obrigado pela rápida resposta Italo, vou reinstalar mandando apagar tudo e testar novamente. Porém verifiquei rapidamente aqui e não tem nenhuma modificação feita localmente, segue um print do meu svn. Atualizarei aqui após re-instalar e testar novamente. Desde já obrigado.
Loki1_11 Postado 6 Outubro Autor Postado 6 Outubro Acabei de realizar os testes novamente e infelizmente o erro persiste. Vou detalhar abaixo passo a passo: 1- Fiz o update dos códigos do Acbr novamente pelo SVN. 2- Verifiquei que nenhum arquivo estivesse com o icone vermelho nele. 3- Executei o AcbrInsntall_trunk2.exe e marquei a opção de apagar os arquivos antigos, desmarquei a versão do NFSe antigo para nem instalar ele desta vez e deixar apenas o NFSeX. 4- Fiz um build do meu sistema novamente e tentei cancelar. Alguma outra dica Italo?
Consultores Italo Giurizzato Junior Postado 7 Outubro Consultores Postado 7 Outubro Bom dia @Loki1_11, Quais são os valores de: SSLLib, CryptLib, HttpLib, XmlSignLib e SSLType ? Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Loki1_11 Postado 8 Outubro Autor Postado 8 Outubro Boa noite Italo, desculpe a demora o dia foi corrido hoje. Estou usando com msxml da seguinte forma: EmissorNFs.SSL.SSLType := LT_TLSv1_2; EmissorNFs.Configuracoes.Geral.SSLCryptLib := cryWinCrypt; EmissorNFs.Configuracoes.Geral.SSLHttpLib := httpWinHttp; EmissorNFs.Configuracoes.Geral.SSLLib := libWinCrypt; EmissorNFs.Configuracoes.Geral.SSLXMLSignLib := xsMsXml; try EmissorNFs.SSL.NumeroSerie := FNumeroCertificado; EmissorNFs.Configuracoes.Certificados.NumeroSerie := FNumeroCertificado; except // Eat the ACBR exception end; EmissorNFs.Configuracoes.Arquivos.AdicionarLiteral := True; EmissorNFs.Configuracoes.Arquivos.EmissaoPathNFSe := True; EmissorNFs.Configuracoes.Arquivos.SepararPorMes := True; EmissorNFs.Configuracoes.Arquivos.PathCan := FPathCancelamentoNFe; EmissorNFs.Configuracoes.Arquivos.PathNFSe := FPathNFe; EmissorNFs.Configuracoes.Arquivos.Salvar := True; NFSeDANFSeFR.FastFile := CoreApplication.Path + 'Reports\DANFSE.fr3'; NFSeDANFSeFR.Logo := CoreApplication.Path + 'Resources\Imagens\PrefeituraSantoAndre.jpg'; NFSeDANFSeFR.Prefeitura := FEmpresaEmissao.Cidade; NFSeDANFSeFR.Prestador.Logo := FEmpresaEmissao.Logotipo.TempFileName; EmissorNFs.Configuracoes.Geral.CodigoMunicipio := FEmpresaEmissao.CodigoMunicipio; EmissorNFs.Configuracoes.Arquivos.PathSchemas := FPathEsquemasNFe + '\NFSe\'; //Do not localize EmissorNFs.Configuracoes.Geral.Salvar := True; EmissorNFs.Configuracoes.Geral.ConsultaLoteAposEnvio := True; EmissorNFs.Configuracoes.Geral.RetirarAcentos := True; EmissorNFs.Configuracoes.Geral.Provedor := proGinfes; EmissorNFs.Configuracoes.Arquivos.PathSalvar := FPathLogNFe; EmissorNFs.Configuracoes.Geral.Emitente.CNPJ := FEmpresaEmissao.CNPJ; EmissorNFs.Configuracoes.Geral.Emitente.InscMun := FEmpresaEmissao.InscricaoMunicipal; EmissorNFs.Configuracoes.Geral.Emitente.RazSocial := FEmpresaEmissao.RazaoSocial; Desde já muito obrigado.
Consultores Italo Giurizzato Junior Postado 8 Outubro Consultores Postado 8 Outubro Bom dia @Loki1_11 Mude essa linha: EmissorNFs.Configuracoes.Geral.SSLXMLSignLib := xsLibXml2; A linha abaixo pode remover ela, não é necessário: EmissorNFs.Configuracoes.Geral.Provedor := proGinfes; A linha abaixo tem que ser a ultima da procedure de configuração: EmissorNFs.Configuracoes.Geral.CodigoMunicipio := FEmpresaEmissao.CodigoMunicipio; Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Loki1_11 Postado 9 Outubro Autor Postado 9 Outubro Boa noite Italo, Fiz as alterações e assim que o cliente me liberar o acesso para testar novamente lhe atualizo. Muito obrigado. 1
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora