Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 03-03-2021 em todas as áreas

  1. Olá pessoal. Levanta aí que vamos falar da atualização do ACBr. Resolvemos criar esse tópico devido a muitas dúvidas relacionadas a isso e depois de um debate interessante sobre o assunto. Principalmente quando entra a questão de quando atualizar o programa no cliente. Na sua empresa, vocês devem entender que o Projeto ACBr tem uma forma de desenvolvimento própria. Vocês não precisam seguir o mesmo pra seu desenvolvimento porque os objetivos talvez sejam diferentes. Mas vamos entrar em detalhes depois... agora... A pergunta mais importante: Quando Atualizar o ACBr? Podemos resumir no seguinte: atualize o o mais frequentemente quanto possível. Mas a resposta completa vai depender da sua equipe, do tamanho da empresa e das alterações que foram disponibilizadas. A chave é que vocês devem se sentir como desenvolvedores do ACBr. O código é open-source e é também de vocês. Afinal, ele roda na sua aplicação e afeta seus clientes. Além disso, geralmente as funções que usamos do ACBr são cruciais no sistema. Mesmo que vocês sejam desenvolvedores que utilizam as libs ou o ACBrMonitore e, tenham a impressão que não se encaixam nesse perfil, os princípios delineados aqui podem ajudar. Como é o fluxo de desenvolvimento do ACBr? No Projeto ACBr, em especial no desenvolvimento dos componentes, nós usamos um fluxo de desenvolvimento que não é totalmente orientado a versões. Esse fluxo é algo mais parecido com o trunk based development do que com um GitFlow. Para quem vê de fora, isso significa basicamente: Controlamos a versão dos componentes via o versionamento do próprio SVN. Assim, podemos reproduzir qual versão uma pessoa tem instalada apenas sabendo a revisão do código que ela usa; Não ficamos criando branches para desenvolvimento de funções e recursos. Nós temos um repositório branches, mas não ficamos desenvolvendo recursos nos componentes atuais nele a menos que seja estritamente necessário (Por exemplo: um refactoring total do componente); Quem usa os componentes tem os novos recursos, correções, e respostas muito mais rapidamente do que teria de outra forma; Pra não delongar mais nisso (que não é o foco desse artigo), se quiser ver um exemplo de empresa que usa esse tipo de desenvolvimento, recomendo esse artigo "Moving away from GitFlow" (de Niklas Gray). Mas isso funciona pra nós em especial porque (a) quem usa os componentes também é desenvolvedor e (b) temos uma resposta muito rápida quando acontecem problemas. Assim, isso não significa necessariamente que vai funcionar na sua empresa. Voltando a pergunta importante... Como estabelecer uma rotina de avaliar se e quando deve ser feita a atualização do ACBr? Se vocês não tem nenhuma rotina pra avaliar quando e se devem atualizar o ACBr, sugerimos que estabeleçam uma. A princípio, sugerimos o seguinte: Leiam os logs do SVN pelo menos uma vez por dia. Não é preciso atualizar para ler o log. Basta usar o "Show Log" do SVN. Ao ler o log do SVN, verifique se: Alguma alteração feita afeta seus clientes em produção? (correção de bug, alteração de legislação, etc...) Algum novo recurso que você quer utilizar foi implementado? Se são poucas alterações e elas não são essenciais, você (ou alguém na sua equipe) tem tempo para testar? São muitas alterações que foram feitas? Já passou muito tempo desde que foi feita a última atualização? Por exemplo mais de 3 semanas? Caso a resposta a qualquer pergunta acima seja "sim", atualize e teste seu desenvolvimento. No mínimo você vai estar mantendo o código do seu aplicativo com o mínimo de alterações possíveis. Então quando surgir uma situação que vocês precisem atualizar com urgência, não vai haver uma grande quantidade de trabalho acumulado. Caso negativo, siga com as suas tarefas. É claro que, se vocês estão no meio de uma situação que precisa que todo o desenvolvimento fique focado no produto de vocês, talvez não seja possível atualizar o ACBr. Por exemplo, pode ser que um problema no software esteja exigindo a atenção urgente de toda equipe. Mas geralmente, pelo menos um dev deve conseguir dar uma lida nos logs e fazer a avaliação se é necessário ou não atualizar. Nota: Vale lembrar também que nem toda atualização precisa de uma reinstalação. Você precisa reinstalar quando: As alterações envolvem partes visuais dos componentes; Os fontes não são recompilados ao fazer um build em sua aplicação; Depois de atualizar, teste as partes de sua aplicação que usam os componentes modificados assim que possível. Primeiro na sua máquina de desenvolvimento, depois em outras máquinas. O último a ser atualizado é o servidor de Build. A partir daí já entra no "deploy", quer dizer, na entrega do software para o cliente. Como impactar da menor maneira possível meu cliente com meu software após atualização do ACBr? Gostaria de enfatizar que você precisa ter estratégias diferentes. Uma para quando você deve atualizar o ACBr (desenvolvimento) e uma para quando você deve atualizar o seu sistema no seu cliente (deploy). Tudo bem que as duas estratégias podem ser interligadas, como é o caso quando se usa um sistema de "Implantação Contínua". Mas são duas coisas diferentes que você precisa ter em mente. Para reduzir o impacto nos clientes, faça o "deploy" de forma escalonada. Quer dizer, instale a nova versão primeiro em clientes selecionados. A princípio, escolha apenas dois, três ou no máximo quatro. Quanto mais crítica a alteração, mais seletivo você precisa ser. Dentre sua carteira de clientes, minha sugestão é para escolher aqueles que: Precisam da "novidade" apresentada no novo executável Tem um movimento menor (e assim darão um grau menor de dor de cabeça caso algum imprevisto aconteça) Ficam mais próximos de sua empresa (posso deslocar um técnico ou até mesmo um "dev" pra lá rapidamente se realmente necessário, nem que seja virtualmente?) São mais pacientes e compreensivos (paciência nunca é demais, apenas cuide de não abusar deles) Só depois de um tempo de teste nesses clientes, envie a nova versão para os outros. Você pode continuar escalonando a entrega avaliando o tamanho da sua equipe e número de clientes que possui. De qualquer maneira você precisa avaliar o que é melhor pra sua empresa. Mas como decidir? Muitas questões devem ser levadas em conta. É verdade que ninguém deveria ficar desesperado para instalar uma nova versão se não teve condições de fazer testes. Também, antes de enviar uma versão aos clientes é preciso levar em conta a quantidade de clientes, o tamanho da equipe de desenvolvimento, da equipe de suporte e até o plano de negócios da empresa. Mas por outro lado, as seguintes perguntas precisam também ser analisadas: Só se envia uma nova versão ao cliente para resolver problemas? Não são apresentadas ao cliente os novos recursos como algo que facilita a vida dele? Não seria muito mais interessante comercialmente se o programa tivesse sempre novidades para cativar o usuário? Não será muito mais difícil encontrar e resolver um problema se de uma versão para outra houverem muitas alterações no código? Que controle se faz de versão do software que está instalado no cliente? Consegue-se facilmente reproduzir no ambiente de desenvolvimento? Sua equipe tem tamanho suficiente pra cuidar de várias versões diferentes? Temos certeza que a análise dessas questões vão ajudar vocês a tomarem boas decisões. Bom trabalho por aí.
    7 pontos
  2. Segundo a NT 2018.001, para que seja aceito o certificado ele deve possuir a extensão "OtherName" de CNPJ 2.16.76.1.3.3 ou de CPF 2.16.76.1.3.1. Você pode ver as se o certificado contém essa extensão nos detalhes do certificado. Caso contenha uma dessas extensões, o certificado devia ser aceito, e o problema é na SEFAZ.
    2 pontos
  3. Olá pessoal! Utilizo Delphi 2010. Para testar se a internet está conectada e navegando, faço da seguinte forma: var netfunciona: Boolean; netfunciona := InternetCheckConnection('http://www.seusite.com.br/', 1, 0); Funciona perfeitamente, porém, quando a internet não está funcionando, o tempo de resposta é muito demorado. Existe uma forma confiável e de resposta rápida para testar a conexão com a internet? Tempo de resposta ser mais rápido? Obrigado, Rogério.
    1 ponto
  4. Boa noite se tu instalou no Delphi 7 não precisa do Monitor PLUS coloca ai na tela um componente ACBrMail e usa ele. e na pasta trunk2\Exemplos\ACBrTCP\ACBrMail tem os exemplos de envio de e-mail com tudo, desde anexo a formartar o corpo
    1 ponto
  5. lembrar de além de selecionar o projeto para fast report tem que mexer no arquivo .inc que tem dentro dizendo que é fast report
    1 ponto
  6. Sim, com a diferença que NFe em SP o envio é assíncrono, já a NFCe o envio é síncrono. NFCe também é sempre operação com consumidor final, e com não contribuinte, não se deve informar a IE mesmo que seja para empresa contribuinte. Pode informar apenas CPF, CPF e Nome, ou CPF, nome e endereço completo. Se não informar nada não vai gerar o grupo dest no XML. Em alguns casos é obrigatório informar o CPF, por exemplo NFCe com valor acima de 10.000,00 (o valor varia de acordo com a UF) e se for NFCe com indPres = 4 (NFC-e com entrega a domicílio), é obrigatório o endereço. As dúvidas sobre SAT vou deixar alguém que entenda te responder.
    1 ponto
  7. Além disso, para complementar o que os colegas acima citaram, para que o envio seja realizado, de acordo com a NT 2018.001 que trata a emissão por e-CPF a série que a SEFAZ utiliza para validação de CPF é da 920 a 969. Mais informações: http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=9OYnBfONR2s=
    1 ponto
  8. Boa tarde Italo! Ja existe uma banda ali, onde contem os dados "Local de prestacao" e "Municipio de incidencia" (ou algo muito proximo disso). Só que os provedores pegam esses dados pelo campo CodigoMunicipio, e eu acredito que esse campo o Conam nao tenha. E é justamente ai que mora o maior problema, pois a função na camada mais alta teria que ser alterada, mas se quiserem ajustar podemos verificar. Obrigado novamente ! Ou podemos preencher o codigomunicipio na funcao de leitura do xml especifica do Conam, mas ai teria que converter o nome da cidade para o codigo, assim a funcao mais alta leria sem problema. Nao sei se tem alguma funcao nesse sentido dentro do acbr (nome da cidade + uf para codigo)
    1 ponto
  9. Ele é produtor Rural? não lembro se além dele pode outros A3 não é legal usar opte por A1
    1 ponto
  10. Olá, faz pouco tempo que utilizo o ACBr e não encontrei um local especifico para criar este tópico ou até mesmo um tópico que trata especificamente essas situações. Bom, estava tendo o seguinte erro ao tentar emitir uma NFS-e: Erro Interno: 0 Errto HTTP: 0 URL: http://sppmigrapava.dcfiorilli.com.br:8080/issweb-ejb/issWel Ao entrar no site da prefeitura percebi que o link estava diferente ao do arquivo FIORILI.INI fiz o teste de alterar para: http://138.117.189.204:8080/IssWeb-ejb/IssWebWS/IssWebWS Ao alterar o link consegui emitir a NFS-e, procurei pelo Manual do Webservice para validar, mas o link é redirecionado para uma página que não existe. Fiorilli.ini
    1 ponto
  11. Olá, Eu já tinha tentado a opção abaixo: ACBrNFe1.WebServices.EnvEvento.EventoRetorno.XML; Mas como é possível verificar no código do ACBr essa propriedade não é mais preenchida. Utilizei a primeira opção (abaixo) e funcionou corretamente. ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML; Obrigado! Rafael.
    1 ponto
  12. |Bom dia, este erro indica falha "timeout" na conexão com o WebService de Recepção da GNRe. O problema ainda persiste? Voltou a funcionar. |Favor realizar testes com essa versão e postar aqui o resultado.. Deu tudo certo! Vou continuar testando, mas acho que resolveu tudo. Muito obrigado!
    1 ponto
  13. Instalei a nova versão, testei e funcionou. Blz.
    1 ponto
  14. Bom dia igsrc, eu estava com esse mesmo problema nessa prefeitura, após trocar o link para http://138.117.189.204:8080/IssWeb-ejb/IssWebWS/IssWebWS conforme sugerido, a integração voltou a funcionar corretamente. Obrigado
    1 ponto
  15. Prezados Durante a realização de testes com a rotina DeduzirBandeiraNFCe, ao utilizar um cartão da bandeira American Express, a bandeira retornada foi "amex". Fiz o ajuste na rotina para aceitar tanto "american" quanto "amex". Segue o arquivo para análise. FormTelaPrincipal.pas
    1 ponto
  16. Bom dia amigo, então você usava o modelo 9091 e ao dar erro e passou a usar o modelo da TI420 com a implementação, mais a balança é a 9091 é isso mesmo?
    1 ponto
  17. Juliomar, Bom dia! A minha implementação é essa que esta no ACBr, eu manei a contribuição e o @EMBarbosa fez o commit nos fontes oficiais.
    1 ponto
  18. Boa tarde a todos estava fazendo a configuração do exemplo do ACBr para fazer a leitura do peso e sempre estava retornando -2 independente da configuração, porém ao verificar o log notei que a balança estava retornando o peso normalmente. Ao fazer o debug da unit ACBrBALMagna reparei que a unit estava fazendo um copy de 1 até #10, deixando a resposta da balança com a seguinte informação "LSQ N/S:A500101[TAB] 1,790 kg " porém quando a unit busca a posição inicial ele acaba pegando o primeiro espaço logo após o LSQ e ai a unit não estaca conseguindo fazer o tratamento do valor. Alterei a forma em que a resposta é capturada passando a considerar as informações entre o [TAB] e o [CR] e a leitura do peso funcionou perfeitamente. O retorno da balança "RX <- LSQ N/S:A500101[TAB] 1,790 kg [CR][LF]" Não sei se os ajustes que realizei foram feitos da melhor forma e não sei se afetariam os demais usuários, estou deixando a unit com os ajustes e o log da balança em anexo para que fossem analisados.BalLog.txt ACBrBALMagna.pas BalLog.txt
    1 ponto
  19. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  20. Se não me engano "Alt Gr" é o mesmo que "Ctrl+Alt".
    1 ponto
  21. http://www.planetadelphi.com.br/dica/5845/códigos-das-teclas Aqui tem a lista com todas as teclas, para quando precisar.
    1 ponto
  22. Sim. Você pega os resultados como funções normais na sua linguagem de programação.
    1 ponto
  23. Pode acontecer de acontecer um erro de Access Violation (AV) ao abrir o Delphi após instalar o ACBr como na imagem abaixo: Esse erro se dá quando o Delphi carrega uma BPL do ACBr mas encontra uma outra versão da BPL que ela depende. Pode acontecer por exemplo quando você instala algum componente no Delphi diretamente por meio do pacote e depois executa o processo de instalação usando o ACBrInstall. Solução: Para corrigir o problema basta excluir as BPLs duplicadas. Geralmente elas estão no caminho padrão de BPLs do Delphi. Exemplo: Por exemplo assumindo o Windows 10 e versões do Delphi mais recente esse caminho seria: C:\Users\Public\Documents\Embarcadero\Studio\NN.N\Bpl Onde o NN.N é uma versão do Delphi Por exemplo, no erro que aconteceu da imagem acima haviam BPLs do ACBr na seguinte pasta: C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl Removendo essas BPLs o Delphi volta a funcionar corretamente.
    1 ponto
  24. Olá Pessoal, Hoje disponibilizamos mais um componente, o ACBrPagFor. A funcionalidade que ele permite é automatizar a autorização de pagamentos em um banco. Por exemplo, automatizar o pagamento de fornecedores que tenham emitidos contra seu cliente boletos, títulos, etc... O componente gera o arquivo para indicar aos bancos que um pagamento pode ser feito. Essa funcionalidade, de modo geral, é chamada pelos bancos de "Pagamento de Fornecedores" (veja alguns links no final do artigo). Como o componente funciona? Esse componente gera um arquivo texto segundo o padrão CNAB 240 para pagamentos de fornecedores. Ele também é capaz de fazer a leitura do retorno, de modo que você pode saber o resultado. Ele já existia antes e estava em outro repositório do ACBr chamado Branches com o nome ACBrCNAB. Resolvemos trocar o seu nome ao migrar para o Trunk2, pois assim acreditamos que os desenvolvedores estão mais familiarizados com o termo PagFor utilizado por diversos bancos. Para que bancos? Ele não contempla todos os bancos nesse momento de lançamento, mas é um pontapé inicial. Os testes iniciais foram realizados com os bancos: Itaú, HSBC, Santander, Sicred e Banco do Brasil. Contamos com a colaboração da comunidade ACBr para torná-lo mais completo e robusto. Então fique a vontade implementar no seu sistema essa nova funcionalidade e para testar e colaborar com melhorias e correções. ------- Links para essa funcionalidade em alguns bancos: https://banco.bradesco/html/pessoajuridica/solucoes-integradas/pagamentos/pag-for.shtm https://www.santander.com.br/servicos-financeiros/solucoes-de-pagamento/pagamento-a-fornecedores https://www.sicredi.com.br/site/pagamentos-e-recebimentos/para-sua-empresa/pagamento-a-fornecedores/ https://www.caixa.gov.br/empresa/pagamentos-recebimentos/pagamentos/fornecedor/Paginas/default.aspx https://www.daycoval.com.br/para-empresa/servicos/pag-for
    1 ponto
  25. Primeiro tem que criar os arquivo do certificado. No exemplo que vou postar tem que colocar no formcreate o numero da conta e o caminho de 3 dos arquivos criados. No memo3 tem que substituir alguns campos com os dados corretos: 1) Crie o aplicativo dentro do banco Inter a) Digite o seguinte comando no console (evite acentos): openssl req -new -newkey rsa:2048 -nodes -keyout nomearquivo.key -out nomearquivo.csr b) Nos campos solicitados, insira as informações: Country Name (código do país): as duas letras que representam o país internacionalmente. Ex: BR é Brasil State or Province Name (nome completo do estado): ex. Goias Locality Name (nome completo da cidade): ex. Goiania Organization Name (a razão social completa da sua empresa): ex. SuaEmpresa Organizational Unit Name (número de aplicação): copie a chave exclusiva gerada pelo Inter e cole-a no campo. Este é o "Número de aplicação" e é formado por letras, números e separado por hífens. Common Name (nome comum - campo opcional): o nome de domínio totalmente qualificado, ou URL que você deseja proteger. Exemplo: SEUDOMINIO.COM.BR E-mail Address (endereço de e-mail): insira seu e-mail A Challenge Password (uma senha forte): crie uma senha forte para este SSL c) Abra a CSR em um editor de texto e copie todo o texto gerado. d) Cole o texto gerado no campo "Assinatura do certificado (CSR)" e clique em "Confirmar". 2) Espere receber o e-mail do Inter avisando que sua aplicação foi Aprovada. Apos aprovação acesse suas aplicações no site do Inter e clique na seta que aparece do lado esquerdo no dome da aplicação. Clique no icone da nuvem para baixa o certificado (.crt). 3) Faça a seguinte conversão com o arquivo baixado: openssl x509 -inform PEM -in nomearquivo.crt > nomearquivo-publicchave.pem 4) Com o arquivo .KEY gerado anteriormente no passo 1 openssl rsa -in nomearquivo.key -text > nomearquivo-privatechave.pem BoletoInterAcbr.rar Desenvolvi tudo hoje... Ainda tem muito a fazer para uma implementação, mas como não conheço a fundo os moldes dos fontes do Acbr acho que alguém pode fazer bem melhor. ja tinha pensado o mesmo kkk
    1 ponto
  26. Bom dia.. Achei !! ehehhe Para que a tecla ENTER execute o evento onKeyDown é necessário que a propriedade ReturnKeyType:=Go O detalhe é que no TEdit essa propriedade aparece no Object Inspector, mas no TNumberBox não. No caso do TNumberBox deve-se setar essa propriedade via código dessa forma: NumberBox1.ReturnKeyType:=TReturnKeyType.Go ; Grande abraço !
    1 ponto
  27. Bom dia, KKK...só para descontrair um pouco, relato o que o atendimento da SEFAZ-PA respondeu a um cliente: ligue no telefixo do Sebrae Rio Grande do Sul 51 3211-1562 para falar sobre o erro que esta acontecendo já que eles são responsaveis pelas atualizaçoes... Parece piada, mas não é, confirmei com o cliente e foi isso mesmo que orientaram. Pode? Abraços.
    1 ponto
  28. Você está zerando a tecla no keydown? Porque se não zerar ele vai mesmo continuar a execução normal antes de fazer qualquer coisa.
    1 ponto
×
×
  • 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.