Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

RP INFO Sistemas

Membros
  • Posts

    27
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by RP INFO Sistemas

  1. Olá, estou usando a Classe TNFSeGerarNFSe, método Executar porém ao gerar o xml para o envio, o mesmo fica incompleto como no exemplo a seguir: '<GerarNfseEnvio xmlns="http://www.abrasf.org.br/nfse.xsd%22%3E<Rps><InfDeclaracaoPrestacaoServico</InfDeclaracaoPrestacaoServico></Rps></GerarNfseEnvio>' Pelo que percebi é algo relacionado à propriedade "Provedor" pertencente à classe "TNFSeWebService", porém não sei qual valor utilizar para o município de Maringá, qual valor do enum "TnfseProvedor" devo usar? Notei que obriga usar um arquivo "Cidades.ini", como devo configurar este arquivo? Na seção Maringá está assim: [4115200] Nome=Maringa UF=PR Provedor=ISSe NomeURL_H=https://nfse-ws.hom-ecity.maringa.pr.gov.br/v2.01 NomeURL_P=https://nfse-ws.ecity.maringa.pr.gov.br/v2.01 Porém usando o Provedor como ISSe está com problema no XML conforme descrito acima, já tentei como proABRASFv2 mas também gera incorretamente, lembrando que Maringá utiliza o layout "Abrasf V 2.01". Alguém que possua integração com Maringá para me ajudar? Tentei utilizar o aplicativo de exemplo contido em: "Acbr\Exemplos\ACBrDFe\ACBrGNRe\Delphi\ACBrGNRe_Exemplo.dpr" porém não possuo FastReport para compilar e testar o projeto de exemplo, uma dica que ajudaria, seria não exigir FastReport, apenas ter a parte de comunicação com a prefeitura, pois não preciso testar geração de impresso da NFSe. Em relação à versão dos fontes, estes são do dia 29/03/2021. Obrigado.
  2. Olá a todos, estou integrando envio de NFSe para a cidade de Maringá-PR, preciso saber qual provedor devo utilizar e quais as configurações devo ajustar no componente ACBR. Desde já obrigado.
  3. Eu testei aqui em uma transmissão de Gnre e carregou com sucesso os objetos.
  4. Olá, eu fiz a implementação para carregar os motivos da rejeição, segue unit em anexo. Apenas adicionei esse trecho de código na linha 558: if Leitor.rExtrai(4, 'motivosRejeicao') <> '' then begin j:=0; while Leitor.rExtrai(5, 'motivo', '', j + 1) <> '' do begin resRejeicaoGuia.New; resRejeicaoGuia.Items[j].CodMotivoRejeicao := Leitor.rCampo(tcInt, 'codigo'); resRejeicaoGuia.Items[j].DescMotivoRejeicao := Leitor.rCampo(tcStr, 'descricao'); resRejeicaoGuia.Items[j].NomeCampo := Leitor.rCampo(tcStr, 'campo'); Inc(j); end; end; pgnreRetConsResLoteGNRE.pas
  5. Segue imagem com o inspect da variável "FPRetornoWS" referente a consulta de recibo da GNRE. Note que na memória já possuem espaços no xml.
  6. Bom dia, O Xml anexado é direto do componente, não é salvo em banco de dados. Obrigado.
  7. Bom dia. A princípio funcionou, vou enviar para meu cliente para que ele possa testar mais. Obrigado pela atenção.
  8. Olá, A consulta de recibo da GNRE não está carregando os dados da tag "motivosRejeicao", e por este motivo não está recuperando os reais motivos da rejeição do lote. Segue arquivo com a resposta do WebService. RespostaConsultaRecibo
  9. Bom dia. Após uma modificação feita pelo Italo Jurisato Junior, sobre o método " ACBrNFe1.WebServices.Enviar.Executar;" não gerar o xml da GNRE, passou a ocorrer o erro HTTP 500. Obs: eu modifiquei a linha 415 do arquivo "ACBrGNREWebServices.pas" para o que estava antes de sua modificação é passou a funcionar, então creio que o conteúdo da propriedade "XmlAssinado" está com erros, notei que está incluindo a informação "<?xml version="1.0" encoding="UTF-8"?>" e por isso passou a ocorrer o erro 500. Seguem os arquivos com os xmls para análise. Tópico original: Obrigado. XmlAntigo.txt XmlAssinado.txt
  10. Boa tarde. Desculpa não responder antes. Sim, funcionou da maneira como eu uso em outros processos. Obrigado.
  11. Bom dia, Sim, após carregar os dados da nota no componente, executo apenas a linha "ACBrNFe1.WebServices.Enviar.Executar;" sem ter que fazer mais nada além disso.
  12. Boa tarde, Tenho uma aplicação que faz transmissões de Nfe, Cte, MDFe, Gnre e NFse, e em nenhuma delas precisei fazer essa alteração, pois o método executar de cada classe funciona de maneira Macro, ou seja Gera o xml, assina e transmite sem que eu tenha que fazer outra chamada de método, eu adicionei a linha em negrito, pois achei mais fácil do que manter a alteração no Acbr. Obrigado pela atenção.
  13. Olá, detectei um memory leak na classe TGNRERetRecepcao, no método "TGNRERetRecepcao.Clear", há um momento que a intância do atributo "FGNRERetorno" já existe, mas a instância e criada e sobreposta. Segue o relatório de Memory Leak do "FastMM", arquivo "TransmissoresSefaz_MemoryManager_EventLog.txt". Na imagem anexada (arquivo "CriacaoInstancia_ComOutraExistente.png") o breakpoint está na linha onde é feito o create, mas já existe uma instância para o objeto. TransmissoresSefaz_MemoryManager_EventLog.txt
  14. Olá realizei o teste com a demo da GNRE, o erro também ocorre neste projeto. Note que na mensagem de erro agora pegou parte do XML, ou seja, é lixo de memória. Obs: Ocorre quando eu configuro o SSLType como "LT_TLSv1_2", com "LT_all" não dá erro. Obrigado pela atenção.
  15. Sim, é lixo de memória, note que éfeito um setLength para 1024, mas não é carregado nenhum conteúdo nela, pois não entra em nenhuma das condições, apenas fica com o que já estava na memória. Tem situações que pega strings do Projeto que nem estão mais alocadas, tenho exemplos que pega partes de SQL, tem momentos que pega byte 0 nas posições, e por isso gera erros. Eu solucionei meu problema mudando a configuração SSLHttpLib para "httpWinINet" no lugar de "httpWinHttp".
  16. Neste caso vou manter a alteração que fiz no método "TGNRERecepcao.DefinirDadosMsg", eu tenho um repositório GIT aqui na empresa para versionar os fontes do ACBR, consigo manter esta modificação mesmo quando atualizar os fontes. Ou posso executar "Guias.GerarGNRE" na minha classe de regra de negócio. Caso realizem a correção no método "AcbrGnre.WebServices.Enviar.Executar" passo a utilizar os fontes originais do ACBR, eu realmente gostaria de poder usar os fontes sem ter que editá-los. Obrigado pela atenção.
  17. Realizei o teste com o método que me passou, mas eu não quero que o processamento seja síncrono, notei que neste método ele faz o envio e logo em seguida consulta o recibo do Lote, não posso utilizar desta maneira, tem outra opção para me passar?
  18. Alterei a configuração conforme solicitou, mas não resolveu o problema. Depurei o código e identifiquei que no método "TACBrWinReqResp.GetWinInetError" o parâmetro "ErrorCode" está chegando com valor "0", e por este motivo não entra em nenhuma condição do case "case ErrorCode of", e por isso a variável "ErrorMsg" fica com lixo de memória, pois tem um SetLength(ErrorMsg, 1024); na linha 256 do arquivo "ACBrWinReqRespClass.pas", e por este motivo não captura o erro que ocorreu. Seguem prints em anexo.
  19. Olá, testei com essa classe que orientou, e funcionou perfeitamente. Obrigado pela atenção. Abraço.
  20. Se eu utilizar o método "AcbrGNre.ConsultarResultadoLote" funciona, mas estou utilizando o método "AcbrGNre.WebServices.Recibo.Executar", pois é o padrão que foi adotado no projeto, a versão que deu o problema é do dia 30/04/2020. As imagens anexadas, são com a última versão do Acbr baixada hoje 05/05/2020 ás 15:05, neste caso não é problema de fonte desatualizado.
  21. Ok, posso até usar este método, mas não deixa de ser um erro, já que os métodos são sobrescritos (override) na classe descendente. Obrigado pela dica! Abraço.
  22. O atributo FNumeroRecibo está sendo zerado ao efetuar consulta de recibo da Gnre. Na classe "TDFeWebService" a qual é base para a classe "TGNREWebService", no método "InicializarServico" está executando o método "Clear" e está zerando o atributo "FNumeroRecibo" e consequentemente o xml enviado dá erro de schema. Xml está sendo gerado no formato: "<TConsLote_GNRE xmlns="http://www.gnre.pe.gov.br"><ambiente>2</ambiente><numeroRecibo></numeroRecibo></TConsLote_GNRE>", com a tag numeroRecibo sem conteúdo. Para conseguir emitir a Gnre e consultar seu recibo, tive que comentar a linha 823 (FnumeroRecibo := '';) do método Clear que está no arquivo "Acbr\Fontes\ACBrDFe\ACBrGNRE\ACBrGNREWebServices.pas" para que o Numero do recibo fosse mantido.
  23. Estou tendo problemas ao transmitir o Lote da Gnre pois o xml referente as Guias está em branco, no arquivo "Acbr\Fontes\ACBrDFe\ACBrGNRE\ACBrGNREWebServices.pas" na linha 426 "vGuias := vGuias + FGuias.Items.XML;" não está carregando xml algum, pois o atributo "XML" está em branco, fiz alterações no código para que eu pudesse transmitir as Gnres. Estou utilizando o método "AcbrGnre.WebServices.Enviar.Executar", estou adicionando apenas 1 guia no lote, durante a depuração do código notei que entra no for porém o atributo "XML" está em branco, e por isso não gera o xml. Código original: procedure TGNRERecepcao.DefinirDadosMsg; var i: Integer; vGuias, Versao: String; begin vGuias := ''; for i := 0 to FGuias.Count - 1 do vGuias := vGuias + FGuias.Items.XML; // Aqui o Xml está em branco if FPConfiguracoesGNRE.Geral.VersaoDF = ve200 then Versao := 'versao="2.00" ' else Versao := ''; FPDadosMsg := '<TLote_GNRE ' + Versao + 'xmlns="http://www.gnre.pe.gov.br">' + '<guias>' + vGuias + '</guias>' + '</TLote_GNRE>'; if Length(FPDadosMsg) > (300 * 1024) then GerarException(ACBrStr('Tamanho do XML de Dados superior a 300 Kbytes. Tamanho atual: ' + IntToStr(trunc(Length(FPDadosMsg) / 1024)) + ' Kbytes')); end; Código alterado: procedure TGNRERecepcao.DefinirDadosMsg; var i: Integer; vGuias, Versao: String; begin vGuias := ''; for i := 0 to FGuias.Count - 1 do begin if FGuias.Items.XML='' then begin vGuias := vGuias + FGuias.Items.GerarXML; end else begin vGuias := vGuias + FGuias.Items.XML; end; end; if FPConfiguracoesGNRE.Geral.VersaoDF = ve200 then Versao := 'versao="2.00" ' else Versao := ''; FPDadosMsg := '<TLote_GNRE ' + Versao + 'xmlns="http://www.gnre.pe.gov.br">' + '<guias>' + vGuias + '</guias>' + '</TLote_GNRE>'; if Length(FPDadosMsg) > (300 * 1024) then GerarException(ACBrStr('Tamanho do XML de Dados superior a 300 Kbytes. Tamanho atual: ' + IntToStr(trunc(Length(FPDadosMsg) / 1024)) + ' Kbytes')); end;
  24. Olá, não testei com a demo, como eu falei com a versão do mês de janeiro funciona, porém quando atualizo para a versão que está no SVN, passo a ter estes erros. Obs: Estou emitindo em produção, para a UF "GO". segue código da configuração do componente: class function TAcbrUtilGnre.buildAcbr(context: TAppContext): TACBrGNRE; var acbrGnre: TACBrGNRE; begin acbrGnre:=TACBrGNRE.Create(nil); with acbrGnre.Configuracoes.Geral do begin SSLLib := libWinCrypt; SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; SSLXmlSignLib := xsMsXml; ExibirErroSchema := true; RetirarAcentos := true; FormatoAlerta := ''; FormaEmissao := teNormal; VersaoDF := pgnreConversao.ve100; Salvar := false end; acbrGnre.SSL.SSLType:=LT_TLSv1_2; acbrGnre.Configuracoes.WebServices.SSLType:=LT_TLSv1_2; acbrGnre.Configuracoes.WebServices.TimeOut:=context.transmissor.TimeOut * 1000; acbrGnre.Configuracoes.Arquivos.Salvar:=false; acbrGnre.Configuracoes.Arquivos.PathGNRE:=''; acbrGnre.Configuracoes.Arquivos.PathArqTXT:=''; acbrGnre.Configuracoes.Arquivos.PathSalvar:=''; acbrGnre.Configuracoes.Arquivos.PathSchemas:=TAppFunctions.getPath + 'schemas\Gnre\'; acbrGnre.SSL.LerCertificadosStore; acbrGnre.Configuracoes.WebServices.Ambiente:=TAcbrUtilGnre.convertToAmbiente(context.transmissor.tipoAmbiente.toName); result:=acbrGnre; end;
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.