Ir para conteúdo
  • Cadastre-se

Waldir Paim

Moderadores
  • Total de ítens

    620
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que Waldir Paim postou

  1. Sempre usei com openssl, porém creio que seja possível com mscrypto, provavelmente a tarefa make gerará uma lib intermediária, xmlsecl-mscrypto.dll. Essa semana eu consigo definir isso.
  2. @Daniel Simoes Essa semana eu termino do montar o ambiente MinGW-w64. Quero deixar esse ambiente numa VM preparado para fazer qualquer alteração que precisar para as libs funcionarem corretamente. Assim que eu tiver as libs compiladas nessa VM eu te passo o link e o passo a passo de como compilar elas no Windows.
  3. Estamos há algum tempo trabalhando e desenvolvendo algumas de nossas soluções em ambiente C e com isso adquirimos know-how e hoje compilamos nossas libs para Windows, Linux e ARM (32 e 64) bits. Percebi que poderíamos ajudar no item 2 do tópico: http://www.projetoacbr.com.br/forum/topic/35727-bye-bye-capicom/ Resolvemos preparar um passo a passo de como criar desde o ambiente até a compilação das libs libxmlsec e libxml2 e disponibilizar para o ACBr. Com isso qualquer um que se interessar poderá compilar as libs no ambiente Windows 32 e 64 bits e disponibilizar para o uso das libs atuais. ps: Não consegui postar no tópico de que se trata esse assunto.
  4. No uses declare. MidasLib que não precisa mais da dll e resolve seus problemas.
  5. @Daniel Simoes Não satisfeito com o assunto fui buscar no help do delphi e achei isso: Como diz no trecho final mudar a assinatura não seria errado mesmo.
  6. Oi @Daniel Simoes Não existe mesmo esse método no antecessor no pascal, mas como utilizo delphi e ele critica também para o c++ builder ele está gritando aqui que o esse método no c++ está conflitando os nomes. A solução mais simples seria mesmo mudar a assinatura ou matar o aviso ativando essa diretiva {$WARN DUPLICATE_CTOR_DTOR OFF} no ACBr.inc. {$IFDEF REMOVE_CAST_WARN} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$WARN SYMBOL_DEPRECATED OFF} {$WARN DUPLICATE_CTOR_DTOR OFF} {$ENDIF}
  7. Oi @BigWings, Realmente nesse caso para o envio síncrono resolveria. Mas no entanto a alteração proposta também serviria para os Sefaz que não aceitam o NFC-e no modo proposto e ainda para o NF-e que pelo que sei não pode ser enviado dessa forma. Então se a conexão está ativa no servidor outras requisições também são resolvidas com muito mais agilidade pois teoricamente não precisariam mas resolver a conexão se acontecer antes do fim do timeout do keepalive.
  8. @Luciano. Essas cooperativas regionais acabam gerando essa dor de cabeça para gente. Eu acredito que uma unit nesse caso ajudaria mas ela mesma teria suas variações, pois já vi Unicred utilizando Banco do Brasil, Bradesco e agora com layout próprio. Estamos ai para ajudar, se resolver criar uma post ai que vamos se ajudando.
  9. Oi @Arnaldo Cruz Que bom que resolveu te colocamos no pário, não podemos fazer feio perante outras linguagens, principalmente tratando-se de linguagens interpretadas como java e afins.
  10. Oi @Luciano Eu resolvi assim: function CodBancoCobranca(ANumBanco: integer): integer; begin case ANumBanco of 112, 136: result := 237; else result := ANumBanco; end; end; Numa função interna no sistema quando o banco é 112 e 136 eu uso 237 para instancia o ACBr. Com isso o Unicred passa ser para o ACBr o Bradesco. Eu até propus uma classe especifica mas não tive resposta e resolvi fazer dessa forma e está funcionado.
  11. Oi @Arnaldo Cruz Não vai resolver mesmo. Isso precisa compor a requisição http e como te disse o synapse não incluiu por padrão essa informação no cabeçalho da requisição. O keepalive será adicionado a requisição se utilizar a unit que anexei. Faz o teste mas troca o KeepAliveTimeout para 100 em vez de 300 como está na unit. Veja nesse link: https://groups.google.com/forum/#!msg/nfephp/YUwX8a1RpWw/sKk5dDi85-gJ O servidor do sefaz do meu estado tem esse recurso e com isso posso utiliza-lo. Bem provável que o Sefaz Virtual do RS, que é o que o Sefaz do PB utiliza tenha e você também pode utilizar.
  12. @Daniel Simoes Muito obrigado, dessa forma o código está ficando cada vez mais limpo e com isso a IDE passa ser nossa amiga. Fiz um ajuste que a principio parece ser tolo, mas faz sentido se não quiser trocar o nome do método. type { EACBrDFeException } EACBrDFeException = class(Exception) public constructor Create(const Msg: String); constructor CreateDef(const Msg: String; Def : string=''); end; Veja no trecho acima que adicionei um parâmetro extra no método CreateDef; Esse warning já foi citado aqui e esse alteração deve remover esse tipo de aviso. http://www.projetoacbr.com.br/forum/topic/29259-w1029-duplicate-constructor-eacbrdfeexceptioncreatedef/ Se está igual a declaração no C++, adicionei um parâmetro extra mas sem uso e com isso remove esse aviso. A outra alternativa seria remover esse metodo e utilizar somente Create que também resolveria, mas isso geraria impacto em outras units. ACBrDFeException.pas
  13. Oi @Arnaldo Cruz Veja primeiro a explicação do que é Keep Alive Agora depois de entender o que é vamos as respostas: TimeOut é o tempo que o client espera uma resposta do servidor. e keep alive é o contrário disso, é o tempo que o servidor vai manter a conexão ativa te esperando você voltar a fazer outra requisição.Veja isso é um recurso do servidor e o client que precisa dizer quer que permaneça ativa que ele vai voltar e fazer novas requisições. Um exemplo claro disse é o envio assíncrono, nele o component envia a DF-e e em seguida espera uma resposta, essa "espera" terá que resolver toda negociação de conexão novamente, mas com o keep-alive esse não é mais necessário pois o servidor sabe que você vai voltar para pedir para ele o status do documento e mantem sua conexão ativa por N segundos. Uma conexão ativa você não precisa fazer toda a negociação novamente e vai direto ao ponto e com isso a transação fica muito mais rápida.
  14. @Igor Bastos Veja, o pessoal aqui é bem rigoroso na questão de não mudar o contexto do assunto. Uma dica. Pesquise antes no forum sobre suas duvidas e se não encontrar crie os tópicos separados de cada assunto. Que bom que resolveu.
  15. Qual dessa DANFes você atribuiu no objeto DANFe if(Assigned(ACBrNFe1.DANFE))then Quem é ACBrNFe1.DANFE ??? Deve ser um dos tipos ACBrNFeDANFeESCPOS ou ACBrNFeDANFCeFortes ou ACBrDANFCeFortesFrA4 pois é nesse cara que será o motor da sua impressão.
  16. @Arnaldo Cruz Ajuste o KeepAliveTimeout de 300 para 100 e faça os testes. Aqui estou conseguindo autorizações em torno de 4 a 5 segundos. Produção ou Homologação? >>>>>>>.Homologação Qual o certificado utilizado? >>>>>>>>A1 Qual SEFAZ aplicou os testes?>>>>>>MT Qual seu ambiente de desenvolvimento? Delphi se sim qual versão?>>>>>> Delphi Berlin 10.2 Qual sistema operacional? >>>>> Win10 64bits processador I7 Qual antivirus? >>>>>>>Windows Defender Qual HD (Solido ou Disco)? >>>>>>SSD 240GB O que é Connection Keep-alive? http://pt.stackoverflow.com/questions/78317/o-que-é-connection-keep-alive Em outras liguagens esse recurso é padrão e como synapse é antiga precisa ser ativada.
  17. Oi Igor, Mas qual modelo do DANFe atribuído no ACBrNFe? Vai ser nesse cara que sua impressão será disparada.
  18. Da uma conferida na forma que está chamando a impressão e qual modelo de DANFe está atribuido. Você deve estar usando o modelo de DANFE A4 disponivel na unit ACBrDANFCeFortesFrA4.
  19. Eu resolvo com um for.
  20. @Arnaldo Cruz Bom dia, Sua comparação é bem oportuna mas requer um pouco mais de detalhes do ambiente em que foi feito tal comparação, principalmente no que diz respeito ao ambiente usando o ACBr. Pode nos dizer qual AMBIENTE foi aplicado os testes? Produção ou Homologação? Qual o certificado utilizado? Qual SEFAZ aplicou os testes? Qual seu ambiente de desenvolvimento? Delphi se sim qual versão? Qual sistema operacional? Qual antivirus? Qual HD (Solido ou Disco)? Tudo isso influencia no resultado final. Se está disposto a nos por nesse jogo faça um teste por favor: Ativa a diretiva USE_MINGW e segue as dicas de como utilizar: http://www.projetoacbr.com.br/forum/search/?q=USE_MINGW+ Apliquei uma alteração na unit ACBrDFeOpenSSL onde ativei o KeepAlive. Segue unit para teste: ACBrDFeOpenSSL.pas
  21. Segue unit com remoção de hints. ACBrNFeDANFeESCPOS.pas
  22. Segue mais units com remoção de avisos. ACBrBALUranoPOP.pas ACBrBALLider.pas ACBrDFeOpenSSL.pas ACBrEAD.pas Segue unit do BASA com correção final ACBrBancoAmazonia.pas
  23. Segue units com correção de Warning. Ambas estavam sem atribuição de retorno da função de leitura de peso. ACBrBALRinnert.pas ACBrBALMuller.pas
  24. De primeira eu já tinha removido ela, mas como não analisei o código do método CalcularTamMaximoNossoNumero preferi manter e removi só o hint. Se preferir mantenha o código original e em seguida faço uma analise na CalcularTamMaximoNossoNumero e verifico se realmente se faz necessário a chamada dela.
  25. Segue units alterada para remover avisos na IDE. Na unit do Bradesco apenas uma variável sem uso. Na unit do Banco da Amazônia fiz alguns alterações para remover os avisos e ainda simplifiquei um pouco o código que gerava bastante hints. ACBrBancoBradesco.pas ACBrBancoAmazonia.pas
×
×
  • 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.