Ir para conteúdo
  • Cadastre-se

bnobre

Membros Pro
  • Total de ítens

    1.480
  • Registro em

  • Última visita

  • Days Won

    4

Posts postados por bnobre

  1. Olá a todos, parece que meu temor foi exagerado. 

    Aparentemente meu projeto de NFCe já está compilando normalmente no Delphi 2010, acabei optando pelo 2010 por conta de alguns componentes de terceiros.

    A questão é que observei a presença de alguns alertas do tipo " W1058 Implicit string cast with potential data loss from ‘string’ to ‘AnsiString’". Ao usar o "Analyse to Project" do menu Project, observei que tais alertas também estão presentes em várias units do projeto ACBr.

    De acordo com o link http://www.andreanolanusse.com/pt/delphi-unicode-entendo-os-avisos-warning-do-compilar-sua-aplicacao/, posso ter problemas caso ocorram a presença de caracteres WideString(padrão default agora no 2010) indo para o AnsiString(padrão default do 7).

    Alguém está tendo problemas de perda de dados com isso? Eu creio que não, pois como mencionei o próprio projeto ACBr apresentou diversos alertas.

    Desde já agradeço a atenção de todos

  2. 2 minutos atrás, Daniel Simoes disse:

    Hoje em dia, o risco maior, é continuar a usar o Delphi 7...

    Hoje, no Windows 10, ao iniciar o Delphi7, é exibida uma janela "ameaçadora", informando que o programa não é compatível e que deve ser atualizado...

    Ou seja, as chances do binário gerado por esse compilador não serem suportadas total ou parcialmente pelo Windows 10, são grandes...

     

    Olá Daniel, bem observado... Acha que tenho mais a ganhar com Lazarus ou Delphi?

  3. 1 minuto atrás, Juliomar Marchetti disse:

    Boa noite!

    estranho só ter essa informação agora!

    se anunciamos amplamente, por meio de posts, anúncios e outros meios aqui no fórum mesmo desde a metade do ano passado!

    o pessoal da tecnospeed quer vender o jabá deles pois o ACBr em sua gigantesca maioria é usado pelos programadores!

    sinceramente não é preocupação mas sim uma grande oportunidade em dar um up em sua aplicação com essa situação e mudar de versão de IDE

    conforme pode ler acima e se der uma olhada geral o pessoal está conseguindo fazer essa mudança de boa!

    aproveite e faça um refactoring em seu código e em toda a sua aplicação!

    Sim Juliomar, infelizmente apesar de frequentar constantemente como pode observar pelos meus posts (inclusive alguns trocados contigo), só vi agora, mas como eu disse não adianta "chorar o leite derramado". Também vejo como uma oportunidade, assim como disse.

    Mas como falei, preciso de um princípio para dele deslanchar, construindo algo o mais estruturado possível para não ser pego de surpresa novamente no futuro e ter que mudar tudo...O que acha... Lazarus ou Delphi? Prós e contras de cada um. 

    Desde já agradeço a atenção

    • Curtir 1
  4. Obrigado pelas palavras Waldir, estou tenso aqui.  :-D

    Mas tenho certeza que tirarei algo de bom nisso, assim como todos os outros, que é a mudança para uma plataforma mais atualizada.

    Estou precisando de umas dicas para saber qual plataforma trilhar esse caminho, caso esse não seja o tópico mais apropriado peço desculpas desde já. Estou tendendo para o Lazarus, apesar da dificuldade do Jedi, devido o fator financeiro, mas fico receoso de o projeto entrar em desuso por ser Free e depois ficar "a ver navios".

    Quanto ao Delphi o problema é o valor. Alguém sabe os benefícios obtidos pela aquisição do mesmo, além claro de poder utilizá-lo? E as diferenças entre as vezes que oscilam de R$ 2.000,00 até R$ 10.000,00?

    Desde já agradeço a atenção de todos

  5. Acabo de tomar um "tapa na cara". Eu sabia e me adaptei a mudança do trunk, do novo fortes, da nova pasta Schemas, mas NUNCA reparei na questão do fim do suporte ao Delphi 7. Soube agora através de um e-mail da TecnoSpeed anunciando que o ACBr não daria mais suporte ao Delphi 7. Imaginem como estou "sem chão", pelo que li no tópico muita gente ficou desesperada com 6 meses de antecedência, e eu vou ter que começar agora.

    Mas não adianta mais chorar o "leite derramado"... Agora é bola pra frente e dar meu jeito, mas gostaria da opinião de vocês para me colocarem no melhor caminho. Como programador só tenho experiência no Delphi 7, é a única linguagem que conheço e trabalho há 10 anos e por isso quero a sugestão de vocês. Ou eu migro para um novo Delphi ou migro para o Lazarus.

    Os 2 componentes de terceiros que mais uso é o Jedi VCL e o ZeosLib...

    O Zeos já verifiquei que tem suporte até o X7 e Lazarus, o que torna necessário que use o Delphi XE7 caso opte pelo Delphi.

    O problema é que o Jedi apesar de ter suporte até o XE10, não suporta o Lazarus a principio, pois andei olhando "por alto" que alguns conseguem fazer ele rodar de forma alternativa

    Pois bem, dado essas características de experiência com o visual e programação no Delphi 7 e componentes citados, qual seria a melhor escolha para mim?

    Estou muito preocupado por isso, pois será um caminho árduo, portanto quero optar o que me dê menos dor de cabeça agora e a longo prazo.

    Desde já agradeço a atenção de todos

  6. Nos meus clientes esse erro não acontece normalmente. Quando acontece eles sabem que é a internet deles que deu problema... Por outro lado, onde a questão de rede é muito importante e achamos necessário, nós fazemos o teste do ping antes.

    Você comentou que quando acontece esse erro eles sabem que é de internet. Mas o erro é o 12007? E se sim, leva esse tempo de 12 segundos para disparar a exceção? Outro detalhe, você dispara a sua contingência via teste de ping como sugeriu ou faz como eu analisando o retorno da exceção do componente? Se possível, poderia postar o exemplo do seu código?

    Desde já agradeço a dica do teste do ping, mas como isso vai alterar o meu código (que é disparado pela exceção do componente e aí sim gera a contingência) seria mais viável eu descobrir o que faz essa exceção demorar tanto tempo a disparar, se algo nas redes dos clientes ou algum "detalhe" no componente.

    Acabo de reproduzir o problema em minha máquina de desenvolvimento, segue o que fiz e minhas conclusões:

    Coloquei um roteador wifi distribuindo a internet para esse micro sem fio, o roteador puxa a internet através de um modem ADSL ligado diretamente ao mesmo. Ao desligar o modem ou desligar apenas o sinal ADSL (erros típicos nos clientes) o erro 12007 sempre é o retornado. Tentei realizar o ping na máquina de teste para www.uol.com.br, só que dessa vez não deu "Esgotado o tempo limite", suponho que pelo fato do cache DNS estar vazio nesse momento, obtive o erro "A solicitação ping não pôde encontrar o host www.uol.com.br. Verifique o nome e tente novamente.", que creio se tratar do 12007, e dessa vez tive a mesma demora de 12 segundos.

    Creio que o problema não está no componente, e sim na demora do Windows de retornar tal erro (12007) para que então o componente possa tratar o mesmo. A questão é que quando cai a internet, 90% dos erros é o 12007 (de acordo com meus logs) e com isso tenho esse problema de demora. Daí minha dúvida, como vocês tratam seus erros de internet quando ocorrem? Como eu, através da exceção do componente, só que com um detalhe a mais? Ou através de outro método, como o teste do ping citado pelo EMBarbosa?

    Desde já agradeço a atenção de todos.

  7. Grato pela dica EMBarbosa, mas como passei lá no início o componente leva 12 segundos em média para gerar a exceção, ao contrário do ping que retornou em 4,5 segundos o erro.

    Mas como te disse, não é apenas 1 cliente, dessa vez eu testei com calma e constatei que o problema do 12007 está em todos.

    Nos seus clientes ao receber o erro 12007 o componente respeita o tempo do TimeOut?

  8. Olá Régys,

    Desculpe a demora, mas preciso voltar nesse tópico. Estou com mais clientes de mercado e o erro mencionado nesse tópico está se tornando mais evidente.

    Realizei o teste do Ping conforme me orientou, leva um tempo de 4,5 segundos em média para retornar "esgotado o tempo limite".

    Hoje estou com 6 mercados, e em todos pude evidenciar tal erro, dado o maior volume de vendas.  Nos outros clientes nunca reparei pela questão do volume baixo de vendas, aí quando caia a internet não ficava tão evidenciado a demora de 12 segundos e eles não reclamavam, mas com os mercados ativos houve reclamações e eu pude constatar que esse problema se dá neles e na maioria dos outros clientes menores.

    Suponho que deva ser um "pequeno detalhe" para resolver, mas não consegui matar essa charada, e fica complicado quando a internet cai, pois sabem como os caixas são "impacientes".

    Peço mais uma vez a sua ajuda.

    Desde já agradeço a sua atenção 

     

  9. Olá Italo, obrigado, mas ainda não consegui obter o mesmo retorno de quando gero pelo componente.

    Por exemplo, através do comando: ACBrNFe1.Enviar(2629, False, True) eu recebi a chave "33160702620499000165650030000026291000026299".

    Tentei reproduzir a mesma através da função que me passou, com o seguinte comando: 

    GerarChave(chave, 33, 2629, 65, 3, 2629, 1,  18-07-2016, '02620499000165')

    Mas a chave que recebo é "33940702620499000165650030000026291000026290"

    Onde será que estou errando?

     

  10. Olá Italo, tudo bom?

    Então rapaz, obrigado pelas dicas.

    Minha finalidade é bem simples, estou com um problema em meu código que está fazendo o programa sobrescrever informações de notas enviadas anteriormente, tais como chave e xml. Por exemplo, a nota 128 série 1 em minha base é sobrescrita com chave e xml da 129. E esse problema está cada vez mais frequente.

    Para analisar onde meu código está dando erro, preciso dessas informações da nota 128 que foram perdidas, por isso tal função seria importante para mim nesse momento, se não eu tenho que ficar "adivinhando" qual foi a chave gerada. Entendeu?

    Desde já agradeço a atenção

  11. Olá a todos...

    Uso o ACBrBal para a leitura de pesos da balança através da propriedade ACBrBAL1.LePeso( 2000 );

    O problema é que as vezes o comando é executado quando a balança está estabilizando ainda, e nada é lido. Como fazer para ao efetuar a leitura ele aguarda a estabilização da mesma?

    Desde já agradeço a atenção de todos

  12. Olá Régys, desculpe a demora. Não, não tenho... Na verdade eu simplesmente uso o DNS da Google, 8.8.8.8 e 8.8.4.4.

    O que eu fiz, supus que isso fosse a causa do problema, de repente mesmo caindo a internet ele tentaria acessar o DNS do google e resolver o nome, o que seria improvável na verdade, pois trata-se de um IP público onde ele perceberia que não tem acesso dado a falta de internet e "de cara" não tentaria resolver.

    Mesmo assim, a nível de teste, coloquei o endereço do modem como DNS, 192.168.1.1, e desconectei o sinal ADSL (Velox), permaneceu o erro 12007, ele tenta resolver. Desconectei então o modem, erro 12007, tenta resolver.

    Não sei se esse problema ocorre em outros clientes ou está isolado nesses 2. Vou checar nos outros clientes e posto aqui, mas se com sua experiência puder me fornecer alguma dica ou recomendar algum(ns) teste(s), te agradeço.

    Abraços

  13. Olá Daniel,

    Desculpe pela demora.

    Aos que interessarem, resolvi o problema com a dica do Daniel...

    Basta usar o método Imprimir, ao invés de ImprimirLinha. Com isso a gaveta abre sem o incômodo de "cuspir" papel em branco.

    ACBrPosPrinter.Imprimir('</abre_gaveta>');

    Obrigado Daniel

  14. Olá Régys,

    Grato pela resposta. Na verdade, pela descrição do erro eu imaginei a mesma coisa que você e aí fiz o seguinte, desconectei o modem da rede para ter certeza de que a conexão não iria conseguir "sair pelo mundo" e forçar o erro de timeout, mas não obtive exito, na verdade mesmo assim continuou o erro 12007 com a sua demora em disparar tal exceção.

    Isso em 2 clientes que observei, mercados que atendo. Aí fica aquela lentidão quando a internet cai. Eu até imaginei que pudesse ser algo nas máquinas, mas um mercado possui 6 estações e o outro 3, acho que seria muita coincidência pois acontece em todas as máquinas.

    Teria alguma orientação a me passar para tentar amenizar tal demora no disparo dessa exceção?

     

  15. Entendi.

    Como disse esse problema de não seguir o configurado no TimeOut só ocorre com o retorno 12007.

    Você não teria como reproduzir esse tipo de exceção, a 12007 especificamente, no envio de uma NFC-e qualquer? Se sim, você vai observar se ela segue o tempo configurado no componente (WebServices.TimeOut) ou não.

    De qualquer forma agradeço a sua atenção

  16. Oi EMBarbosa, tudo bom?

    Então rapaz, tentei colocar 0 no número de tentativas, mas continua a levar 12 segundos quando o retorno do componente é 12007, quando é 12002 obedece fielmente o tempo configurado em Webservices.TimeOut do ACBrNFE, atualmente 5 segundos. Nesse cliente quando cai a internet, o erro apresentado é 12007 ou 12002, pelo menos até agora.

    Meu código é bem simples na verdade.

    Primeiro tento efetuar o envio normal:
     

    GerarNFCe(IntToStr(cupom), False);
    dtm_banco.ACBrNFe1.Enviar(cupom, False, dtm_banco.DFe_Envio);

    Logo em seguida, coloco e seguinte tratamento:

    except
     on E : Exception do
      if (pos('requisição não enviada', LowerCase(E.Message)) <> 0) or (pos('tempo limite', LowerCase(E.Message)) <> 0) then
       begin
        //dessa vez em contingencia
        GerarNFCe(IntToStr(cupom), True);
        dtm_banco.ACBrNFe1.NotasFiscais.Assinar;
        dtm_banco.ACBrNFe1.NotasFiscais.Validar;
        //depois imprimo 2 vias
        dtm_banco.ACBrNFe1.Danfe.ViaConsumidor := True;
        dtm_banco.ACBrNFe1.NotasFiscais.Imprimir;
        dtm_banco.ACBrNFe1.Danfe.ViaConsumidor := False;
        dtm_banco.ACBrNFe1.NotasFiscais.Imprimir;
       end;

    Como pode observar, se disparar uma exceção, ele verifica se trata-se de "requisição não enviada" (referente ao 12007) ou "tempo limite" (referente ao 12002). Só isso.

    Funciona perfeito, o problema está no tempo de disparo dessa exceção para que eu possa tratar.

    O 12002 dispara conforme o tempo que eu configurar em Webservices.TimeOut do ACBrNFE, atualmente 5 segundos, se eu aumentar para 18 ele aumenta também para 18, para 10 aumenta para 10 e assim vai, perfeitamente ajustável pela propriedade citada do componente. Mas o 12007 não, ele leva em média 12 segundos e pronto, e numa fila de mercado isso é muito.

     

  17. Olá Andre.

    Perdão, na verdade eu não havia testado ainda na 4200, só na 2500. Cheguei no cliente agora e funcionou perfeitamente configurando conforme sua sugestão na 4200.

    Quanto a 2500, basta atualizar o firmware para o 1.20 que começa a funcionar.

    De qualquer forma agradeço a atenção e fica a dica do firmware para quem precisar.

    • Curtir 1
  18. Olá a todos,

    Meu aplicativo emissor de NFC-e imprimi muito bem o DANFE NFC-e via ACBrNFeDANFeESCPOS nas impressoras Daruma, tais como DR700 e DR800.

    Agora nas da Bematech (MP2500 e MP4200), sai tudo perfeito exceto pelo QRCode, que não sai, em seu lugar sai o link http do qual o QRCode deveria apontar, aí sou obrigado a configurar via driver de spooler para conseguir que saia o QRCode. Mas a impressão via ESCPOS é muito mais rápido.

    O ACBrNFeDANFeESCPOS é compatível com tais impressoras da Bematech?

    Desde já agradeço a atenção

  19. Olá a todos,

    Meu aplicativo emissor de NFC-e ao detectar queda de internet, através da exceção disparada pelo componente, efetua automaticamente o envio em contigência.

    Configurei a propriedade Webservices.TimeOut do ACBrNFE em 5000, WebServices.Tentativas em 1 e WebServices.IntervaloTentativas em 1000.

    Reparei nos clientes que quando cai a internet, as vezes a exceção do componente é disparada em 5 segundos conforme configurado no timeout e logo em seguida imprimo a contingência, o cenário ideal inclusive. Mas as vezes leva bem mais que 5 segundos para o componente disparar a exceção, leva 12 segundos ou até mais. Para detalhar melhor a causa do problema gerei um log para armazenar o retorno de cada exceção disparada quando a internet cai e é impresso a contingência. A conclusão que cheguei foi de que:

    • Erro 12002 - The operation timed out: Ocorre em RIGOROSAMENTE 5 segundos.
    • Erro 12007 - The server name or address could not be resolved: Nesse caso ocorre entre 12 a 18 segundos.

    Ao menos hoje em um cliente, foram as únicas exceções de queda de internet que foram registradas. Como podem observar o erro 12002 ocorre em exatos 5 segundos, respeitando o TimeOut configurado. Já o erro 12007 não segue tal propriedade.

    Como afirmei anteriormente, preciso que qualquer exceção de queda da internet seja disparada em no máximo 5 segundos para que tão logo em seguida já emita a contingência e evite filas no cliente, que as vezes tem que esperar quase 20 segundos até o componente disparar a exceção e eu poder gerar em contingência.

    Como tratar o tempo da 12007 e outras diferentes da 12002?

    Desde já agradeço a atenção

     

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