Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags '402'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 1 registro

  1. Bom dia, venho aqui para tirar dúvidas sobre como manipular os dados ao Enviar o XML do Lote GNRE. Da maneira que eu faço hoje, no meu ponto de vista, está gerando exceções onde deveriam ser apenas mensagens. Vou mostrar usando o código do Exemplo: ACBrGNRE1.Guias.Clear; GerarGNRE; ACBrGNRE1.Enviar; MemoResp.Lines.Text := UTF8Encode(ACBrGNRE1.WebServices.Retorno.RetWS); memoRespWS.Lines.Text := UTF8Encode(ACBrGNRE1.WebServices.Retorno.RetWS); LoadXML(MemoResp, WBResposta); O método Enviar (unit ACBrGNRE2): function TACBrGNRE.Enviar(Imprimir: Boolean): Boolean; var i: Integer; begin Guias.GerarGNRE; if Guias.Count <= 0 then GerarException(ACBrStr('ERRO: Nenhuma GNRE adicionada ao Lote')); if Guias.Count > 50 then GerarException(ACBrStr('ERRO: Conjunto de GNRE transmitidas (máximo de 50 GNRE)' + ' excedido. Quantidade atual: ' + IntToStr(Guias.Count))); Result := WebServices.Envia; if FGNREGuia <> nil then begin for i := 0 to Guias.Count - 1 do begin if Guias.Items[i].Confirmada and Imprimir then Guias.Items[i].Imprimir; end; end; end; Até então está tudo perfeito, o problema começa aqui: Método WebServices.Envia (unit ACBrGNREWebServices); function TWebServices.Envia: Boolean; begin if not FEnviar.Executar then FEnviar.GerarException( FEnviar.Msg ); FRetorno.numeroRecibo := FEnviar.numero; if not FRetorno.Executar then FRetorno.GerarException( FRetorno.Msg ); Result := True; end; if not FRetorno.Executar then FRetorno.GerarException( FRetorno.Msg ); Acredito que deveria gerar exceção se realmente ocorressem erros... FRetorno.Executar (unit ACBrGNREWebServices): function TGNRERetRecepcao.Executar: Boolean; var IntervaloTentativas, Tentativas: Integer; begin Result := False; TACBrGNRE(FPDFeOwner).SetStatus(stGNRERetRecepcao); try Sleep(FPConfiguracoesGNRE.WebServices.AguardarConsultaRet); Tentativas := 0; IntervaloTentativas := max(FPConfiguracoesGNRE.WebServices.IntervaloTentativas, 1000); while (inherited Executar) and (Tentativas < FPConfiguracoesGNRE.WebServices.Tentativas) do begin Inc(Tentativas); sleep(IntervaloTentativas); end; finally TACBrGNRE(FPDFeOwner).SetStatus(stGNREIdle); end; if FGNRERetorno.codigo = 402 then // Lote processado ? Result := TratarRespostaFinal; end; Ele gera exceção sempre que o código for diferente de 402, mas temos que lembrar que essa função é responsável por enviar o Lote, e já consulta o mesmo. Caso dê erros no envio creio que deveria ser gerado exceções (como ele já faz), mas na consulta do retorno apenas se existir realmente um erro, como no caso do código de retorno 404, pois seria necessário corrigir e enviar o lote novamente nesse caso. Exemplo: if FGNRERetorno.codigo <> 404 then // Sem erros no lote? Result := TratarRespostaFinal; Caso for eu quem esteja fazendo errado, peço que me mostrem como fazer, muito obrigado. Segue em anexo os status e mensagens retornadas na consulta.
×
×
  • 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.

The popup will be closed in 10 segundos...