Ir para conteúdo
  • Cadastre-se

Rafael Mota Facundo

Membros
  • Total de ítens

    40
  • Registro em

  • Última visita

Posts postados por Rafael Mota Facundo

  1. Boa tarde, Italo!

    Sim, é necessário. O método NotasFiscais.Imprimir exibe apenas em um Preview, mas como disse, ele imprime tudo.

    Tem como fazer esse método imprimir apenas as Autorizadas? Se não tiver, acho que vou usar o Clear, e depois trazer os xml do banco e carregar apenas os autorizados.

  2. Após o envio de um lote com várias NFes, como faço para imprimir apenas as autorizadas?

    Se eu enviar assim:

    ACBrNFe.Enviar(90987,True);

    imprime apenas as autorizadas, mas o problema é que não fica tudo em um preview, é preciso clicar no botão imprimir várias vezes.

    Eu tentei chamar o método 

    ACBrNFe.NotasFiscais.Imprimir;

    após o método

    ACBrNFe.Enviar(9090,False)

    mas aí imprime até as NFes que foram rejeitadas.

  3. Em 11/07/2018 at 14:32, Rafael Mota Facundo disse:

    Estou aprendendo a utilizar o Fast e estou estudando o exemplo do ACBr. Alguém sabe me informar de onde vem e como criar os Dataset que as bands estão ligadas? Parece que são criadas na própria IDE do Fast, mas eu não consegui descobrir.

    Obrigado

    Fast.png

    Ainda estou com a dúvida citada acima, alguém poderia me ajudar?

  4. Em 09/06/2018 at 09:58, OldProgramer disse:

    A questão que eu achei foi relacionada ao TXOptions. Usando o Zeos por exemplo, não me preocupava com isso, mas com o Firedac tive que ficar mais atento. O Firedac por padrão abre uma transação para consultar os dados e fecha automaticamente se o autostop estiver true.

    Então pra não ter confusão de transações pendentes, deixo o autostart, autostop e autocommit (no TXOptions) sempre em true, e só na hora da transação em si é que mudo na hora o autocommit pra false,  e como o autostart estará true, não preciso explicitar o starttransaction (se não ficará um pendente), faça o que tem que ser feito, e depois dou commit ou rollback, e por fim volto o autocommit pra true.

    Não tive mais problemas.

    Pelo que eu entendi, se no TXTOptions estiver AutoStart = true, não precisarei do FDConnection1.StartTransaction é isso?

     FDConnection.TxOptions.AutoCommit := False;
    
       try
         //Aqui não precisa iniciar transação???
         gravarVenda;
         gerarRecebimento;
         FDConnection1.Commit;
         FDConnection.TxOptions.AutoCommit := True;
       except
         FDConnection.Rollback;
       end;

    Então não seria melhor fazer o contrário? AutoStart = false e só abrir transação quando realmente eu quiser?

  5. 7 minutos atrás, Juliomar Marchetti disse:

    Bom dia

    acho que a primeira coisa é entender como funciona e quando usar as transações.

    lá na wiki da embacadero tem todo detalhado o processo já chegaram a ler.?

    http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/FireDAC.Transactions_Sample

    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Managing_Transactions_(FireDAC)

     

    Bom dia! No meu caso, quando ocorre o problema, são em telas que não faço uso de transações, ou seja, cadastros simples.E Nas telas onde uso transações, procuro fazer da forma que a documentação orienta. De início achei que o problema poderia ser "comigo", mas já vi outros relatos de casos semelhantes, então acho que é algo no FireDAC\Firebird.

  6. 21 horas atrás, datilas disse:

    eu resolvi assim:

     If Not FDConnection1.InTransaction Then
      FDConnection1.StartTransaction;
       ...
     If Not FDConnection1.InTransaction Then
      FDConnection1.CommitRetaining;

     

    Oi, datilas, blz! Não entendi onde colocou esses comandos, poderia me explicar? Apenas isso resolveu, ou teve que alterar alguma configuração no componente de conexão?

  7. Em 29/08/2017 at 16:43, OldProgramer disse:

    Usava o XE6 com Firebird 2.1 e tudo estava ok.

    Resolvi trocar pelo Firedac para poder atualizar o Firebird e nos normais antes da implantação foi tudo ok.

    Agora vira e mexe aparece usuário reclamando que fez isso ou aquilo, está no seu computador mas não no de outra pessoa.

    Nem estou usando transactions nem cache updates. Um simples pool de insert's ou update's fica como efetivado no local somente para este usuário e às vezes quando ele fecha o programa atualiza outras vezes não.

     

    Tem algum commit que deve ser dado ou parâmetro que deva ser utilizado?

     

    Grato por qualquer ajuda.

    Também passo por este problema. Já tentei de tudo, mas de vez em quando aparece um caso. Algum de vocês resolveu?

  8. function TACBrIntegrador.RespostaFiscal(
      ARespostaFiscal: TRespostaFiscal): TRetornoRespostaFiscal;
    var
      Comando, Resp : String;
    begin
      Result := TRetornoRespostaFiscal.Create;
    
      GerarNumeroSessao;
    
      ARespostaFiscal.Identificador := numeroSessao;
      Comando := ARespostaFiscal.AsXMLString;
      DoLog('RespostaFiscal( '+Comando+' )');
    
      Resp := FComandoIntegrador.EnviaComando(numeroSessao,'RespostaFiscal',Comando);
    
      Result.AsXMLString := Resp;
    end;
  9. Os métodos EnviarPagamento,VerificarStatusValidador e RespostaFiscal da classe TACBrSATMFe_integrador_XML tem um trecho de código semelhante, veja por exemplo o RespostaFiscal.

    function TACBrSATMFe_integrador_XML.RespostaFiscal(
      ARespostaFiscal: TRespostaFiscal): TRetornoRespostaFiscal;
    begin
      TACBrSAT(Owner).DoLog('RespostaFiscal');
    
      Result := Nil;
      TACBrSAT(Owner).IniciaComando;
      try
        Result := FIntegrador.RespostaFiscal(ARespostaFiscal);
      finally
        TACBrSAT(Owner).FinalizaComando( Result.XML );
      end;
    end;

    Acontece que, se por algum motivo o integrador não responder ao método FIntegrador.RespostaFiscal(ARespostaFiscal), o Result destes métodos fica como Nil e ocasiona o erro de "Access violation" no TACBrSAT(Owner).FinalizaComando( Result.XML ).

    Espero que ajude na resolução do problema.

  10. Pior que não, como mencionei anteriormente, o erro não ocorre sempre. Mas os métodos que executo são:

    1º)  RespostaPagamentoMFe := TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT.SAT).EnviarPagamento(PagamentoMFe);

    2º) RespostaVerificarStatusValidador := TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT.SAT).VerificarStatusValidador(VerificarStatusValidador);

    3º) TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT.SAT).EnviarDadosVenda();

    4º) RetornoRespostaFiscal := TACBrSATMFe_integrador_XML(DMACBr.ACBrSAT.SAT).RespostaFiscal(RespostaFiscal);  

     

  11. Em alguns momentos(ora frequente, ora não) recebo erro de "Access violation" ao executar o RespostaFiscal. Quando esse erro ocorre, ao tentar emitir outro CFe, recebo a mensagem "SAT ocupado! Aguardando resposta da sessão 838033". Para conseguir emitir novamente tenho que fechar a aplicação.

    Tentei de várias formas detectar o problema, mas debugando, não consigo simular o erro. Analisando os Logs, percebe-se que o componente aguarda por alguns instantes a resposta do Integrador, quando não recebe, cai na exceção "EComandoIntegradorException"(veja abaixo trecho do log). Alguém já passou por esse problema e poderia me ajudar a solucionar ou pelo menos tratar esse erro?

    05/03/18 14:52:25:795 - RespostaFiscal
    05/03/18 14:52:25:809 - NumeroSessao: 838033
    05/03/18 14:52:25:821 - RespostaFiscal("OMITIDO PARA MELHOR VISUALIZAÇÃO" )
    05/03/18 14:52:25:828 - Criando arquivo: C:\Integrador\Input\respostafiscal-838033.tmp
    05/03/18 14:52:25:840 - Renomeando arquivo: C:\Integrador\Input\respostafiscal-838033.tmp para: C:\Integrador\Input\respostafiscal-838033.xml
    05/03/18 14:52:25:849 - 05/03/2018 14:52:25 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:26:009 - 05/03/2018 14:52:26 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:26:168 - 05/03/2018 14:52:26 - AguardaArqResposta, sessao: 838033

    05/03/18 14:52:54:405 - 05/03/2018 14:52:54 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:54:565 - 05/03/2018 14:52:54 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:54:737 - 05/03/2018 14:52:54 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:54:901 - 05/03/2018 14:52:54 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:062 - 05/03/2018 14:52:55 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:236 - 05/03/2018 14:52:55 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:405 - 05/03/2018 14:52:55 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:566 - 05/03/2018 14:52:55 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:736 - 05/03/2018 14:52:55 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:910 - 05/03/2018 14:52:55 - AguardaArqResposta, sessao: 838033
    05/03/18 14:52:55:970 - EComandoIntegradorException: Sem Resposta do Integrador
    05/03/18 14:53:34:565 - EnviarPagamento

  12. Não estou mais querendo usar a Capicom. Conforme orientado, fiz o seguinte:

    1- ACBrNFe1.Configuracoes.Geral.SSLLib := libWinCrypt;

    2- {$DEFINE DFE_SEM_CAPICOM};

    Mas na hora de enviar NFe, recebo a mensagem de classe não registrada. O que mais é necessário fazer?

  13. Ao executar o método HNfeAutorizacaoLote12, obtenho o retorno normalmente(cStat = 103). Logo depois o componente executa o método HNfeRetAutorizacaoLote12, mas não consegue "capturar"  o retorno( o método GerarException exibe uma mensagem vazia).  O retorno do método Enviar da classe TACBrIntegrador é esse: '\"992025|06000|0000|Enviado com sucesso + Retorno SEFAZ.|||The remote server returned an error: (500) Internal Server Error.|'

    Em anexo arquivos para facilitar análise. Um deles parece está corrompido, acredito que talvez seja a causa do problema. Agradeço quem puder me ajudar.

    1102-env-lot-soap.xml

    1102-rec-soap.xml

    231000000499092-ped-rec-soap.xml

    231000000499092-pro-rec-soap.xml

×
×
  • 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...