Luiz Fernando Posted September 14, 2018 Report Share Posted September 14, 2018 Colegas, alguém esta usando este method, caso sim consegue enxergar algo errado no codigo abaixo, pois o retorno esta sendo sempre falso. oNfeUtil:=TVoNfeUtil2G():New(aEmpresa[1,1],aEmpresa[1,4],aEmpresa[1,3],,,,aEmpresa[1,2],,aEmpresa[1,25]) cUltNSURecebido:=100 cUltNsu := "0" cMaxNsu := "30" cQtdeDocto := 1 aRegistros:={} aSize(aRegistros,0) cRetorno := '' if oNfeUtil:distNSU(aEmpresa[1,1],sonumero(aEmpresa[1,6]),@cUltNSURecebido,"",@cUltNsu,@cMaxNsu,@cQtdeDocto,@cRetorno,@aRegistros) ? 'ok' else ? 'não ok' // esta caindo aqui, o arquivo manifest.txt é criado vazio endif obg Luiz Fernando Quote Link to comment Share on other sites More sharing options...
HERGON Posted September 14, 2018 Report Share Posted September 14, 2018 Olá Já tem um bom tempo que fiz, mas pelo que me lembro há problemas ao se passar as variáveis por referencia... Estou utilizando assim e dá certo: oNfeUtil:distNSU(cUfManif,cCnpjManif,cUltNsuRec,"",@cUltNsu,@cMaxNsu,1,@aRegistros) Passe por referência apenas as variáveis estritamente necessárias e retire "@" das demais, conforme acima. Att. Herberson Gontijo Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 14, 2018 Author Report Share Posted September 14, 2018 Herberson agradeço pela reposta, fiz conforme sua dica, mais ainda continua não retornando nada. caso mais algum colega tiver alguma sugestão obg Quote Link to comment Share on other sites More sharing options...
HERGON Posted September 14, 2018 Report Share Posted September 14, 2018 Faça assim: oNfeUtil:distNSU(cUfManif,cCnpjManif,cUltNsuRec,"",@cUltNsu,@cMaxNsu,1,@aRegistros) If oNfeUtil:cStsNFe=="7001" .or. oNfeUtil:cStsNFe=="7003" fMsgStop("Licença da dll da FlexDocs não confere, contacte o suporte.", "Atenção") cChaveDll:=" " Return .f. Endif If Len(aRegistros)==0 MsgAlert("Não existe nenhum documento pendente.","Consulta") Else xbrowse(aRegistros) Endif Att. Herberson Gontijo Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 14, 2018 Author Report Share Posted September 14, 2018 Heberson esta caindo aqui If Len(aRegistros)==0 MsgAlert("Não existe nenhum documento pendente.","Consulta") endif estou fazendo teste com dois CNPJ todos os dois tem nfe emitida nos ultimos dias, e mais de uma por dia. Obg Luiz Fernando Quote Link to comment Share on other sites More sharing options...
HERGON Posted September 14, 2018 Report Share Posted September 14, 2018 Empresoft Você está fazendo o teste com o certificado do cliente e está configurado para PRODUCAO? Porque se tiver para HOMOLOGAÇÃO, não mostrará as NF-e's que foram emitidas contra o CNPJ dele em produção não. Tente passar o cUltNsuRec :="0" para processar desde o começo. Att. Herberson Gontijo Quote Link to comment Share on other sites More sharing options...
HERGON Posted September 14, 2018 Report Share Posted September 14, 2018 Acabei de testar aqui e funcionou perfeitamente Att Herberson Gontijo Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 14, 2018 Author Report Share Posted September 14, 2018 Herberson aqui estava mesmo em homologação mudei para produção como tb deixei desta forma cUltNsuRec :="0, sem sucesso no retorno, sem querer abusar de sua ajuda , sera que esta parte da minha classe esta igual a sua. Method distNSU(cSiglaUFDestinado,cCNPJDestinatario,cUltNSURecebido,cVerAplic,cUltNsu,cMaxNsu,nQtdeDocto,uRetorno,lRetArray) Class TVoNFeUtil2G Local nStat:=0 Local cMsgResultado:="",nIndContinuacao:=1 local cMsgDados:="", cMsgRetWS:="",cRetTxt:="",aRegistro:={},oTxt Default cSiglaUFDestinado:=::SiglaUF,cUltNSURecebido:="0",cUltNsu:="0",lRetArray:=.t. Default cVerAplic:="",cMaxNsu:="",nQtdeDocto:=1 ::Limpa() If ::CertificadoSelecionado() If ::ConsultaStatus() Try /* cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,; "4.00", @cMsgDados, @cMsgRetWS,@nStat,; @cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,; cUltNSURecebido,@cVerAplic,@::Recebimento,@cUltNsu,; @cMaxNsu,@nQtdeDocto,; ::proxy,::usuario,::senha,::Licenca) */ cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,; "4.00", @cMsgDados, cMsgRetWS,@nStat,; cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,; cUltNSURecebido,cVerAplic,::Recebimento,@cUltNsu,; @cMaxNsu,@nQtdeDocto,; ::proxy,::usuario,::senha,::Licenca) obg Luiz Fernando Quote Link to comment Share on other sites More sharing options...
HERGON Posted September 14, 2018 Report Share Posted September 14, 2018 Realmente, acho que tive que mexer na classe, só agora estou lembrando... vou colar aqui. // Consulta NF-e destinadas Method distNSU(cSiglaUFDestinado,cCNPJDestinatario,cUltNSURecebido,cVerAplic,cUltNsu,cMaxNsu,nQtdeDocto,uRetorno,lRetArray) Class TVoNFeUtil2G Local nStat:=0 Local cMsgResultado:="",nIndContinuacao:=1 local cMsgDados:="", cMsgRetWS:="",cRetTxt:="",aRegistro:={},oTxt Default cSiglaUFDestinado:=::SiglaUF,cUltNSURecebido:="0",cUltNsu:="0",lRetArray:=.t. Default cVerAplic:="",cMaxNsu:="",nQtdeDocto:=1 ::Limpa() If ::CertificadoSelecionado() If ::ConsultaStatus() Try /* cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,; "4.00", @cMsgDados, @cMsgRetWS,@nStat,; @cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,; cUltNSURecebido,@cVerAplic,@::Recebimento,@cUltNsu,; @cMaxNsu,@nQtdeDocto,; ::proxy,::usuario,::senha,::Licenca) */ cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,; "4.00", @cMsgDados, cMsgRetWS,@nStat,; cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,; cUltNSURecebido,cVerAplic,::Recebimento,@cUltNsu,; @cMaxNsu,@nQtdeDocto,; ::proxy,::usuario,::senha,::Licenca) Memowrit("manifest.txt", cRetTxt, .f.) Catch oError fMsgStop("Erro! oNFeUtil:DistNSU."+CRLF+; "Error: " + cValToChar( oError:GenCode) + CRLF + ; "SubC: " + cValToChar( oError:SubCode ) + CRLF + ; "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ; "SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + ; "Operação: " + cValToChar( oError:Operation ) + CRLF + ; "Mensagem: " + oError:Description, CAPTION_MSG) Return(.f.) End Try ::cStsNFe := Alltrim(Str(nStat)) ::cStsNFeMsg := cMsgResultado ::Protocolo := cUltNsu Else //Tratar erro para servidor fora Endif If !Empty(cRetTxt) ::lAutorizada:=.t. If lRetArray While .t. nPos:=At(CHR(13), cRetTxt) If nPos>0 AAdd(uRetorno, {Subs(cRetTxt,1,15), Subs(cRetTxt,17,35), Subs(cRetTxt,53,nPos-53)}) cRetTxt:=Subs(cRetTxt,nPos+1) Else Exit Endif Enddo Else uRetorno:=cRetTxt Endif Endif Endif Return( ::lAutorizada ) Att. Herberson Gontijo Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted September 15, 2018 Author Report Share Posted September 15, 2018 Herberson muito grato pela sua atenção, estou analisando aqui o que pode ser, retorno ao tópico assim que conseguir. Obg Luiz Fernando Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.