Pesquisar na Comunidade
Showing results for tags 'EnviarDadosVenda'.
Encontrado 6 registros
-
AD20210602105223-263676-teste-env-CFe.xml Olá, boa tarde. Estou com erro na função EnviarDadosVenda do MFE. Retorna: código:1999 msg sefaz: Rejeição: Erro não identificado alguém sabe o que preciso alterar no XML?
-
Loop Infinito no EnviarDadosVenda ao fechar integrador
um tópico no fórum postou jackson Lima MFE - Módulo Fiscal Eletrônico
Pessoal, ao enviar qualquer comando com o integrador fechada o acbr respeita o tempo de timeout Porém ao enviar os dados venda, e fechar o integrador, é como se bugasse esse timeout e fica em um loop infinito dentro do while da função: function TComandoIntegrador.EnviaComando(numeroSessao: Integer; Nome, Comando: String; TimeOutComando : Integer = 0): String; var LocTimeOut, ActualTime, TimeToRetry : TDateTime; NomeArquivoXml, RespostaIntegrador : String; ATimeout: Integer; function CriarXml( NomeArquivo, Comando: String): String; var NomeArquivoTmp, NomeArquivoXml: String; begin NomeArquivoTmp := ChangeFileExt(NomeArquivo, '.tmp'); FOwner.DoLog('Criando arquivo: '+NomeArquivoTmp); WriteToFile(NomeArquivoTmp, Comando); if not FileExists(NomeArquivoTmp) then DoException('Erro ao criar o arquivo: '+NomeArquivoTmp); NomeArquivoXml := ChangeFileExt(NomeArquivoTmp,'.xml'); FOwner.DoLog('Renomeando arquivo: '+NomeArquivoTmp+' para: '+NomeArquivoXml); if not RenameFile(NomeArquivoTmp, NomeArquivoXml) then DoException('Erro ao renomear o arquivo: '+ NomeArquivoTmp+' para: '+NomeArquivoXml); Result := NomeArquivoXml; end; begin Result := ''; Clear; NomeArquivoXml := CriarXml( FPastaInput + LowerCase(Nome) + '-' + IntToStr(numeroSessao), Comando); ActualTime := Now; TimeToRetry := IncSecond(ActualTime,5); if (TimeOutComando > 0) then ATimeout := TimeOutComando else ATimeout := FTimeout; if (ATimeout <= 25) then ATimeout := 25; LocTimeOut := IncSecond(ActualTime, ATimeout); RespostaIntegrador := AguardaArqResposta(numeroSessao); while EstaVazio(RespostaIntegrador) and (ActualTime < LocTimeOut) do // Fica em loop aqui ao fechar integrador no enviardadosvenda begin Sleep(100); RespostaIntegrador := AguardaArqResposta(numeroSessao); ActualTime := Now; if ActualTime > TimeToRetry then //Caso arquivo ainda não tenha sido consumido após 5 segundos, recria o arquivo begin TimeToRetry := IncSecond(ActualTime,5); if FilesExists(NomeArquivoXml) then begin try FOwner.DoLog('Apagando arquivo não processado: '+NomeArquivoXml); DeleteFile(NomeArquivoXml); except end; NomeArquivoXml := CriarXml( FPastaInput + LowerCase(Nome) +'-'+ IntToStr(numeroSessao) + '-' + FormatDateTime('HHNNSS', ActualTime), Comando); end; end; end; if FilesExists(NomeArquivoXml) then // Apaga arquivo não tratado pelo Integrador begin FOwner.DoLog('Apagando arquivo: '+NomeArquivoXml); DeleteFile(NomeArquivoXml); end; if EstaVazio(RespostaIntegrador) then begin FErroTimeout := True; DoException('Sem Resposta do Integrador'); end; FOwner.DoLog('RespostaIntegrador: '+RespostaIntegrador); FResposta:= RespostaIntegrador; FIntegradorResposta.LerResposta(RespostaIntegrador); if (FIntegradorResposta.Codigo <> 'EE') then Result := PegaResposta(FResposta) else Result := FResposta; end; É bem fácil de reproduzir o erro, é só no momento de enviar a função: enviardadosvenda fechar o integrador (isso fara com que ele não retorne nenhuma resposta e fique em loop sem obedecer ao timeout)- 2 replies
-
- mfe
- integrador
-
(e 1 mais)
Tags:
-
Bom dia pessoal, No dia 01/03 recebemos de um cliente(SAT Bematech RB-1000) uma reclamação que estava ocorrendo problema na emissão do CF-e. Analisando o log, encontramos um erro no processo de adicionar os dados do CF-e no banco de dados. Segue: [01/03/2018 17:29:08] [TRANSMITIRCUPOMSAT]ERRO(#07): '255,255,255,000' is not a valid floating point value - IDCUPOM: 5414226000 Só para esclarecer melhor, o nosso sistema, efetua antes de enviar a venda para o SAT, a seguinte validação: 1) SAT está em operação? 2) Status do SAT é não BLOQUEADO? 3) Qual o status da impressora? No log do SAT gerado pela ACBr, obtivemos: Ou seja, pelo visto o sistema tentou converter uma resposta da posição 09, que a princípio é resultado do comando ConsultarStatusOperacional e não do EnviarDadosVenda. No sistema eu faço: with Resposta do begin //06000 - Emitido com sucesso + conteúdo notas if (codigoDeRetorno = 6000) then begin ValorTotalCFe := StringToFloat(Resposta.RetornoLst[9]); (...) O problema relacionado a isso é que o nosso sistema cancelou o cupom pois foi executada uma exceção, mas o CF-e estava aprovado na SEFAZ. Algo que notei é que o tempo entre o número de sessão 158050 e 710051 foi de 0,936 ms. As requisições ao SAT são sequenciais, ou seja, é efetuada uma chamada, processada a resposta, efetuada outra chamada e assim por diante. Seria possível no componente uma resposta sobrescrever a outra? Este erro ocorre ocasionalmente em um cliente e não conseguimos reproduzir. Em outros clientes não recebemos este tipo de reclamação. Gostaria da opinião de vocês a respeito deste procedimento. Vocês já tiveram algum problema deste tipo? Desde já agradeço o retorno.
-
dimep DIMEP Timeout na comunicação com o equipamento
um tópico no fórum postou Wilson Rabelo ACBrSAT
Saudações. Estou implementando o SAT no sistema. Após várias etapas cumpridas, empaquei em um problema. Estou usando SAT DIMEP. KIT Desenvolvedor. O Exemplo ACBR funciona perfeitamente e o arquivo xml que estou gerando no meu sistema é enviado normalmente pelo D-SAT Manager. Porem, no meu sistema no comando EnviarDadosVenda ele retorna "Resposta:Timeout na comunicação com o equipamento." Estou anexando o xml, o retorno e as configurações do SAT. Podem me dar uma luz? Alguma sugestão? Tô chateado aqui... Meu fim de ano foi pra cucuia por causa disso... No delphi estou usando o comando assim: SAT_ArqXML é tipo string... SAT_ArqXML := SATFiscal.CFE.GerarXML( true ); SATFiscal.EnviarDadosVenda(SAT_ArqXML); if SATFiscal.Resposta.codigoDeRetorno = 6000 then begin LoadXML(SATFiscal.CFe.AsXMLString,SAt_Recebido); SATFiscal.ImprimirExtrato; end else Begin ShowMessage('Erro Codigo/Mens:' + IntToStr(SATFiscal.Resposta.codigoDeErro) + ' - ' + RetornaMensagemSATPorCodigo(SATFiscal.Resposta.codigoDeErro) + #10 + #13 + 'Numero Sessão :' + Inttostr(SATFiscal.Resposta.numeroSessao) + #10 + #13 + 'Retorno String :' + SATFiscal.Resposta.RetornoStr + #10 + #13 + 'Codigo SEFAZ :' + Inttostr(SATFiscal.Resposta.codigoSEFAZ) + #10 + #13 + 'Mensagem SEFAZ :' + SATFiscal.Resposta.mensagemSEFAZ + #10 + #13 + 'Codigo Retorno :' + Inttostr(SATFiscal.Resposta.codigoDeRetorno) + #10 + #13 + 'Mensagem Retorno:' + SATFiscal.Resposta.mensagemRetorno); End; AD20160105092212-725340-env.xml LOG_SAT_120160105.log config.txt- 13 replies
-
- 1
-
Olá a todos; No exemplo do aplicativo do ACBr há um pequeno bug; Gera-se uma venda: ok; Envia-se a venda: ok; O emulador/SAT autentica e retorna o CF-e: ok; Gera-se nova venda: NOK -->> O ACBr considera o campo de assinatura, provável resíduo na estrutura ACBrSAT1.CFe; Alguém resolveu isso?
-
Boa tarde, Galera. Bem estou com um problema que não vi nada a respeito ou parecido até onde procurei (Caso tenha algum tópico com a solução, por favor me perdoe.) Então, no meu projeto após sair da função "EnviarDadosVenda" o meu projeto fecha sem dar nenhum tipo de exceção, porem no emulador do SEFAZ, o procedimento finaliza com sucesso! Verifiquei no log e não deu nenhum erro. Estou usando o VB12 e a DLL disponibilizada pelo SEFAZ. Alguém pode dar um help ?? Obrigado, e fico no aguardo!
- 6 replies
-
- EnviarDadosVenda
- fecha projeto
-
(e 1 mais)
Tags: