Ir para conteúdo
  • Cadastre-se

Uzy Tecnologia Ltda

Membros Pro
  • Total de ítens

    36
  • Registro em

  • Última visita

Sobre Uzy Tecnologia Ltda

Últimos Visitantes

1.787 visualizações

Uzy Tecnologia Ltda's Achievements

Contributor

Contributor (5/14)

  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputação

1

Community Answers

  1. Sim José! É esse o problema! Porque para ter um retorno TRUE da função LerXML se precisa colocar um elemento "retEnvEvento" no XML de envio do evento? Conforme coloquei escopo desta postagem eu utilizei o método NFe.EnviarEvento() passando o caminho do XML. A questão é que o método de leitura de XML que é utilizando para a LEITURA do XML de envio e retorno não esta retornando TRUE quando o XML de envio de evento é lido ocasionando o erro "Erro ao abrir o arquivo";
  2. Utilizei o validador da SEFAZ https://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx para o ArquivoQueGerouErroNoACBR.xml e validou o schema corretamente. Já o ArquivoProcessado.xml consta o elemento <retEnvEvento></retEnvEvento> e que só assim foi processado pelo ACBR conforme mencionei acima.
  3. Quando utilizo o método NFE.XMLEnviarEvento() por arquivo TXT (Entrada/Saida) passando o xml ou o arquivo por parâmetro o MonitorACBR me retorna o erro "Erro ao abrir o arquivo + {nomearquivo}"; Verificando o código do ACBR a seguinte função é invocada: tDFeEventoNFe : begin if FilesExists(XMLorFile) then begin if not ACBrNFe1.EventoNFe.LerXML(XMLorFile) then raise Exception.Create('Erro ao abrir o arquivo '+ XMLorFile) else PathDfe := XMLorFile; end else raise Exception.Create('Arquivo '+ XMLorFile +' não encontrado.'); end; Pelo que percebi o erro ocorre porque no método LerXML sempre o retorno será "False". Somente consegui enviar um evento de cancelamento quando no xml também informei o elemento de retorno do evento "retEnvEvento"; Isso ocorre pois como demostrado abaixo o Result só recebe atribuição caso existir o elemento retEnvEvento. function TRetEventoNFe.LerXml: Boolean; var ok: Boolean; i, j: Integer; begin Result := False; i:=0; try if (Leitor.rExtrai(1, 'evento') <> '') then begin if Leitor.rExtrai(2, 'infEvento', '', i + 1) <> '' then begin infEvento.ID := Leitor.rAtributo('Id'); InfEvento.cOrgao := Leitor.rCampo(tcInt, 'cOrgao'); infEvento.tpAmb := StrToTpAmb(ok, Leitor.rCampo(tcStr, 'tpAmb')); infEvento.CNPJ := Leitor.rCampo(tcStr, 'CNPJ'); infEvento.chNFe := Leitor.rCampo(tcStr, 'chNFe'); infEvento.dhEvento := Leitor.rCampo(tcDatHor, 'dhEvento'); infEvento.tpEvento := StrToTpEvento(ok,Leitor.rCampo(tcStr, 'tpEvento')); infEvento.nSeqEvento := Leitor.rCampo(tcInt, 'nSeqEvento'); infEvento.VersaoEvento := Leitor.rCampo(tcDe2, 'verEvento'); if Leitor.rExtrai(3, 'detEvento', '', i + 1) <> '' then begin infEvento.DetEvento.xCorrecao := Leitor.rCampo(tcStr, 'xCorrecao'); infEvento.DetEvento.xCondUso := Leitor.rCampo(tcStr, 'xCondUso'); infEvento.DetEvento.nProt := Leitor.rCampo(tcStr, 'nProt'); infEvento.DetEvento.xJust := Leitor.rCampo(tcStr, 'xJust'); InfEvento.detEvento.cOrgaoAutor := Leitor.rCampo(tcInt, 'cOrgaoAutor'); infEvento.detEvento.tpAutor := StrToTipoAutor(ok, Leitor.rCampo(tcStr, 'tpAutor')); infEvento.detEvento.verAplic := Leitor.rCampo(tcStr, 'verAplic'); infEvento.detEvento.dhEmi := Leitor.rCampo(tcDatHor, 'dhEmi'); infEvento.detEvento.tpNF := StrToTpNF(ok, Leitor.rCampo(tcStr, 'tpNF')); infEvento.detEvento.IE := Leitor.rCampo(tcStr, 'IE'); // infEvento.detEvento.vNF := Leitor.rCampo(tcDe2, 'vNF'); // infEvento.detEvento.vICMS := Leitor.rCampo(tcDe2, 'vICMS'); // infEvento.detEvento.vST := Leitor.rCampo(tcDe2, 'vST'); if Leitor.rExtrai(4, 'dest', '', i + 1) <> '' then begin infEvento.detEvento.dest.UF := Leitor.rCampo(tcStr, 'UF'); infEvento.detEvento.dest.CNPJCPF := Leitor.rCampoCNPJCPF; infEvento.detEvento.dest.idEstrangeiro := Leitor.rCampo(tcStr, 'idEstrangeiro'); infEvento.detEvento.dest.IE := Leitor.rCampo(tcStr, 'IE'); // Alterado em 22/07/2014 por Italo // para ficar em conformidade com o Schema infEvento.detEvento.vNF := Leitor.rCampo(tcDe2, 'vNF'); infEvento.detEvento.vICMS := Leitor.rCampo(tcDe2, 'vICMS'); infEvento.detEvento.vST := Leitor.rCampo(tcDe2, 'vST'); end; end; end; if Leitor.rExtrai(2, 'Signature', '', i + 1) <> '' then begin signature.URI := Leitor.rAtributo('Reference URI='); signature.DigestValue := Leitor.rCampo(tcStr, 'DigestValue'); signature.SignatureValue := Leitor.rCampo(tcStr, 'SignatureValue'); signature.X509Certificate := Leitor.rCampo(tcStr, 'X509Certificate'); end; end; if (Leitor.rExtrai(1, 'retEnvEvento') <> '') or (Leitor.rExtrai(1, 'retEvento') <> '') then begin Fversao := Leitor.rAtributo('versao'); (*HR03 *)FidLote := Leitor.rCampo(tcInt, 'idLote'); (*HR04 *)FtpAmb := StrToTpAmb(ok, Leitor.rCampo(tcStr, 'tpAmb')); (*HR05 *)FverAplic := Leitor.rCampo(tcStr, 'verAplic'); (*HR06 *)FcOrgao := Leitor.rCampo(tcInt, 'cOrgao'); (*HR07 *)FcStat := Leitor.rCampo(tcInt, 'cStat'); (*HR08 *)FxMotivo := Leitor.rCampo(tcStr, 'xMotivo'); i := 0; while Leitor.rExtrai(2, 'infEvento', '', i + 1) <> '' do begin FretEvento.Add; // Incluido por Italo em 07/05/2014 FretEvento.Items[i].FRetInfEvento.XML := Leitor.Grupo; // (*HR10 *)FretEvento.versao := Leitor.rCampo(tcStr, 'versao'); (*HR12 *)FretEvento.Items[i].FRetInfEvento.Id := Leitor.rAtributo('Id'); (*HR13 *)FretEvento.Items[i].FRetInfEvento.tpAmb := StrToTpAmb(ok, Leitor.rCampo(tcStr, 'tpAmb')); (*HR14 *)FretEvento.Items[i].FRetInfEvento.verAplic := Leitor.rCampo(tcStr, 'verAplic'); (*HR15 *)FretEvento.Items[i].FRetInfEvento.cOrgao := Leitor.rCampo(tcInt, 'cOrgao'); (*HR16 *)FretEvento.Items[i].FRetInfEvento.cStat := Leitor.rCampo(tcInt, 'cStat'); (*HR17 *)FretEvento.Items[i].FRetInfEvento.xMotivo := Leitor.rCampo(tcStr, 'xMotivo'); (*HR18 *)FretEvento.Items[i].FRetInfEvento.chNFe := Leitor.rCampo(tcStr, 'chNFe'); (*HR19 *)FretEvento.Items[i].FRetInfEvento.tpEvento := StrToTpEvento(ok,Leitor.rCampo(tcStr, 'tpEvento')); (*HR20 *)FretEvento.Items[i].FRetInfEvento.xEvento := Leitor.rCampo(tcStr, 'xEvento'); (*HR21 *)FretEvento.Items[i].FRetInfEvento.nSeqEvento := Leitor.rCampo(tcInt, 'nSeqEvento'); (*HR22 *)FretEvento.Items[i].FRetInfEvento.CNPJDest := Leitor.rCampo(tcStr, 'CNPJDest'); if FretEvento.Items[i].FRetInfEvento.CNPJDest = '' then (*HR23 *)FretEvento.Items[i].FRetInfEvento.CNPJDest := Leitor.rCampo(tcStr, 'CPFDest'); (*HR24 *)FretEvento.Items[i].FRetInfEvento.emailDest := Leitor.rCampo(tcStr, 'emailDest'); FretEvento.Items[i].FRetInfEvento.cOrgaoAutor := Leitor.rCampo(tcInt, 'cOrgaoAutor'); (*HR25 *)FretEvento.Items[i].FRetInfEvento.dhRegEvento := Leitor.rCampo(tcDatHor, 'dhRegEvento'); (*HR26 *)FretEvento.Items[i].FRetInfEvento.nProt := Leitor.rCampo(tcStr, 'nProt'); // FretEvento.Items[i].FRetInfEvento.chNFePend := Leitor.rCampo(tcStr, 'chNFePend'); j := 0; while Leitor.rExtrai(3, 'chNFePend', '', j + 1) <> '' do begin FretEvento.Items[i].FRetInfEvento.chNFePend.Add; FretEvento.Items[i].FRetInfEvento.chNFePend[j].ChavePend := Leitor.rCampo(tcStr, 'chNFePend'); inc(j); end; inc(i); end; Result := True; end; except result := False; end; end; Está correto o método só possuir retorno "True" quando o xml possuir o elemento de retorno do evento? Creio que o "Result" deveria ficar antes do tratamento da exceção, conforme segue: ... inc(j); end; inc(i); end; end; Result := True; except result := False; end; ...
  4. Pessoal, atualizei o ACBrMonitor para a versão 1.1.0.44 e executei novamente a consulta, diretamente no ACBr, e o resultado continua o mesmo. Anexo os logs e também os dois xml consultados. LOG.TXT LOG_COMP.TXT ACBrMonitor.ini ACBrMDFeServicos.ini lote-MTZ-5-694.xml lote-MTZ-5-700.xml
  5. Em anexo comandos executados e arquivos ini e log. LOG.TXT LOG_COMP.TXT ACBrMonitor.ini
  6. Daniel, o erro ocorre sempre, também utilizando a opção Consultar NFe, no menu DF-e + Teste, do ACBrMonitorPLUS.
  7. Bom Dia Senhores. Temos mais algumas ideias quanto a este problema? O problema continua ocorrendo...
  8. Sim, ocorre em mais NFCes. Este é apenas um exemplo de vários. Porem, estranhamente não ocorre em todas, algumas aprovam... Tentei colocar o .ini acima e ocorreu o mesmo problema.
  9. Alterei o certificado para o SSL e fiz o teste de STATUS conforme mencionado, funcionou normalmente. Porém quando eu faço a consulta daquele XML, ocorre o mesmo problema do HTTP 500. Estamos enviando o comando NFE.ConsultarNFe. Segue em anexo agora o arquivo ACBrMonitor.ini de configuração do ACBr. ACBrMonitor.ini
  10. Bom Dia Senhores, Utilizamos aqui na empresa o ACBrMonitor PLUS para emissão de NFes e NFCes. Ao implantar a versão 1.1.0.36 do aplicativo em um cliente da Bahia, foi notado que ao tentar fazer a consulta de XMLs de NFCe pelo próprio aplicativo, nos é mostrado o seguinte log: 13/11/2017 09:31:30 - EACBrDFeException - Erro Interno: 0 Erro HTTP: 500 13/11/2017 09:31:30 - Erro Interno: 0 Erro HTTP: 500 Este erro ocorre quando é feita a consulta de um XMLs para saber se o mesmo fora aprovado pela SEFAZ. Como a Bahia utiliza a SEFAZ virtual do RS para emitir NFCes, entramos em contato com eles e nos retornaram que não existe erro algum nos Webservices. Alguém mais está tendo este problema? Poderiam me ajudar a resolvê-lo? Envio em anexo o XML que estou utilizando para os testes. Desde já agradeço o apoio... lote-MTZ-5-694.xml
  11. Também estava com o mesmo problema e seguindo esta orientação, já está funcionando novamente. Obrigada.
  12. ok, então o ACBRmonitor Plus não se envolve quando preciso mandar EPEC? é isso. Não existe uma configuração nele que faça o esquema de mandar para o ambiente nacional e após validação imprimir uma danfe com o protocolo do epec. Pergunto isso porque a impressão da danfe quem faz pra nós é o ACBRmonitor Plus. Daí se ele não fa o esquema do EPEC, vamos ter que desenvolver toda uma danfe só para as situações de EPEC.
  13. Oi pessoal, revirei o site aqui e não encontrei de forma clara algo que me oriente na hora de eu emitir um EPEC: Me explico: O XML do EPEC eu ou o ACBRMonitor Plus vai mandar para o Ambiente Nacional e assinar colocar na Danfe o protocolo, conforme manda a NT? Ou... eu vou ter que fazer essa parte separado do ACBRMonitor e depois que eu tiver o retorno do "AN", coloco nas OBS da danfe os dados do retorno do EPEC? Espero ter cido claro, se não tento explicar melhor.
  14. Está e já contactamos, aparentemente liberam logo.
×
×
  • 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.