Arquivo da categoria ‘Curso Genexus’

Então, alterar um produto de C# pra java no genX é muito simples. Como ele é uma ferramenta geradora de código, ele fará isso tudo sem problemas, sem alteração, e o sistema que vc fizer em .NET será simples a conversão para Java, ou não.

Sei que se usarmos apenas Transactions, a premissa da introdução será com certeza verdadeira, pois o genexus gerará tudo, desde as telas até as validações. Mas sabemos que um sistema não é só CRUD, principalmente um sistema DIPAM. Tem leitura de arquivo txt e não o grava no BD, tem leitura de arquivos XLS, leitura de PDFs, validações e verificações desses arquivo antes de inserir os dados no BD.

Pensando nessas coisas, e somado a pouca experiencia da equipe com a ferramenta só poderia dar problema. Algum tipo de importação de arquivo, algum tipo de importação de dados, alguns tipos de leitura de arquivo… Isso tudo se não for feito da maneira que o genexus prevê, vc não conseguirá a conversão com a facilidade que se prega.

Explico, a aplicação foi iniciada em com compilação em C#, aí encontrei esse CODIGO NA INTERNET para realizar validação de arquivo antes de importar, um código bem simples. Quando a KB foi gerada em JAVA o problema começou.

No início, a kb não funcionava, erro pra cá, erro pra lá, e os desenvolvedores experientes aqui, todos em nossas máquinas, tentando fazer funcionar e isso levou o período da manhã todo para que algumas máquinas funcionassem. Depois do almoço a KB estava funcionando, porem o código que funcionava em C#, não funcionava em JAVA. Não estava entendendo o porquê, imaginava que eu tinha feito algo errado, mas, não, o codigo em C# funciona, mas em Java não.

No próximo dia vamos ver se consigo fazer esse código funcionar em código Java.

até lá.

Well, em um dia, estamos realizando o que foi acordado nos requisitos e com esse entendimento, em outro, estamos alterando os requisitos pois não haviam sido pensados em sua completude.

Os requisitos acordados são simples, já falei aqui. Fazer upload de um arquivo no genexus é realmente fácil, você pode ver aqui – Upload Genexus – mas realizar as validações é código a dar com pau, pois preciso validar coisas como: tentar importar aquivo vazio, tentar importar arquivo diferente de txt, tentar importar arquivo com conteúdo diferente do especificado e muito mais…

Ao alterar os requisitos coisas ruins acontecem e em qualquer linguagem, e no genexus não é diferente, principalmente da maneira que estamos trabalhando (exportar as alterações todos os dias alguém fica responsável por consolidar todos os arquivos gerando um único arquivo). Ao mudar um nome de campo, ou alterar um campo, alterar tabela, a programação terá que ser alterada, assim como nas outras linguagens, e o banco será alterado, assim como em qualquer linguagem.

A vantagem de reorganizar tabelas, talvez esteja comprometida pela forma que estamos usando a ferramenta, mas foi o jeito recomendado pela empresa, então vamos lá, e a cada mudança nas tabelas, exportamos os xpzs

fui

Saga GenX – Mapa Mental da Revisão

Publicado: 31 de janeiro de 2014 em Curso Genexus

Ao findar o treinamento, fizemos uma revisão como vimos no Post 7. Prometi um Mapa Mental, então tá aí.

Mapa mental da revisão do treinamento.

Mapa mental da revisão do treinamento.

Então, pagando o post que não fiz na quinta, hoje temos 2 posts.

Abraços

Saga GenX – 8 e 9 dia

Publicado: 31 de janeiro de 2014 em Curso Genexus, Trabalho
Tags:,

Quando se inicia numa linguagem nova existem muitos desafios, e quando o ecossistema é novo, os desafios são maiores.
Antes de ser alocado nessa atividade (desafio) estava focado em Java Com Framework Demoiselle. Mudar para uma linguagem não OO parece até mais dificil de outras pessoas que não estão acostumadas com o OO. Me senti programando pra android na versão 1.5. Mas estou seguindo a recomendação de uma palestra da CPBR6: “Aprenda 1 Linguagem por ano”.
O Ecossistema GenX é bem novo até para a empresa que passou o curso. Eles ainda não estão trabalhando com coisas que o GenX possui, tal como o SVN Genexus, ou não será aplicado nesse projeto pelo menos. Em Demoiselle, o projeto já começa com Maven e integração com GIt ou SVN.
Percebi que existem muitas configurações entre o GenX e o banco de dados, e essa configuração é muito dependente do computador que esta usando. No caso do Demoiselle, tudo começa simples, com um banco local no framework e vc vai evoluindo com o passar do tempo, conforme vai aprendendo da ferramenta, imagino q a adoção por essa questão seja um ponto para o demoiselle.
Nos dois dias citados foram pouco produtivos. Muita leitura de DLR, documentos de especificação do governo do estado e definições sobre os impostos ICMS e Gia. Mas sempre q cansava, faziamos alguma transaction no GenX.
Estamos usando um PC Core2Duo com 2GB de ram. A diferença de deseménho q vi no GenX é q este computador trava mais. Não sei se é a imagem, se é o computador, mas a ultima versão do demoiselle estava funcionando lento, mas o Eclipse trava menos que a IDE GenX.
Bem no total, acho que o computador usado pode influenciar bastante na experiência da ferramenta, mas sair do Visual Studio 6 para o Genexus isso ja é uma evolução sem muitas dores de cabeça e mudanças drásticas.

Saga GenX – Aula 7 – Fim do treinamento

Publicado: 29 de janeiro de 2014 em Curso Genexus

Último dia de treinamento de GenX, foi feito um resumão do que vimos, em seguida fizemos um exercício, arrumamos o ambiente fisico que vamos trabalhar e foi interessante ouvir dos analistas da empresa como será a forma de trabalho do projeto e como será realizado.

O resumão foi feito passando por todos os objetos que aprendemos, fui anotando e fazendo um MindMap que vou passar a limpo e publicar aqui.

O exercício era simples, mas com conceitos interessantes. Fiz e finalizei o documento de produção sem problemas. Mas notei q a nomenclatura dos campos de uma Transaction é bastante estranha no GenX. Se vc colocar a Description de um Atributo como: “Nome do Item”, na Sua tela aparecerá: “do Item” . E não é porque acabou o espaço pois coloquei na descrição: “Inconstitucionalicimamente” e apareceu. Ele deve usar algo que pega a ultima palavra, por padrão. Será q tem como mudar? rs

Eu sempre reclamei da tremedeira que era meu setor de trabalho, do arcondicionado barulhento e do computador. A frase que fica é “Não há nada tão ruim que não possa piorar”. Mas vamos desenvolver apenas o projeto inicial recebendo a ajuda dos analistas da empresa, e em seguida vamos dar continuidade em outro ambiente, então estamos improvisados em uma sala de reuniões.

A forma de trabalho deles é bem diferente da maneira que estou acostumado. Explico: Acostumei a trabalhar em grupo usando ferramentas de monitoramento de atividades Free ou OpenSource (clockintIT.com) e/ou burnDown, e/ou Kanbam. Sem contar o uso contínuo de SVN e GitHub, além de estar evoluindo bastante com o MAVEN. No GenX, não faremos assim, existe uma forma de compartilhar a KB, que é similar ao Solution do .Net, e todos os programadores tem acesso a mesma KB, não entendi direito como isso irá proceder, mas vamos ver. Uma coisa que gostei muito foi o exercício citado antes, pois, a especificação veio mamão com açúcar. Se todos os analistas fizessem especificações como essas o mundo seria muito mais feliz.

O que sabemos até então é que:

  • O sistema será desenvolvido em conjunto para que nós tenhamos a possibilidade de dar manutenção e talvez até evoluir a aplicação
  • Outros programadores da empresa também farão parte do desevolvimento, mas não na mesma equipe.
  • Está sendo realizado um aprofundamento nos requisitos e regras de negócio pelos analistas da empresa, que irão converter isso em especificações de produto.
  • Nós pegaremos essas especificações e as colocaremos em prática com a supervisão de um analista que irá nos ajudar a produzir código melhor e mais bonito. 🙂
  • No futuro iremos fazer os testes de aceitação interna e também as especificações (Espero que seja numa poltrona com um ultrabook sony Vaio).

Concluindo, amanhã deveremos receber as especs básicas e começar a trabalhar de verdade. Antes de dar uma posição sobre o GenX diferente do desciclopedia, vou esperar esse projeto acabar.

Encontrei estes materiais interessantes sobre a ferramenta:

Vamos ver o que acontece, a partir de hoje começo posts semanais, sempre as sextas feiras.

Abraços

Saga GenX – Aula 6

Publicado: 28 de janeiro de 2014 em Curso Genexus

Último dia de aula, ou não. Na aula de hoje, tivemos uma apresentação do sistema GIA-DIPAM, em seguida vimos como ler um XML e salva-lo no BD.

A apresentação do projeto foi um tanto superficial, mas pelo que parece, existem pessoas da empresa contratada para realizar a analise deste sistema. Percebi que é essencialmente um acordo de cavalheiros entre a prefeitura e as indústrias geradoras de ICMS do município. Estas empresas, geram um arquivo mensal para o Governo do Estado e enviarão este arquivo também para o município. Eu fiquei com várias dúvidas e uma única certeza: Vou fazer um sistema desses e colocá-lo sob licença GPL, será que rola? 🙂

A leitura e gravação do xml no GenX é simples, mas não muda muito em relação a outras linguagens como Java-Android que já trabalhei. Para ler, é necessário abrir o arquivo, ler cada tag e depois fechar o arquivo. Quer ver um tutorial em Genexus? Clique Aqui. Gravar o arquivo numa pasta é relativamente simples: Procedure grava e WebPanel chama a procedure.

Salvar um XML no banco, é realmente simples: Crie um atributo blob e atribua a variável que contém o xml nesta variável. Simples assim.

Bem, amanha teremos uma revisão do que vimos, e em seguida, vamos montar a estrutura para começar a desenvolver o sistema. Vamos ver no que dá.

Saga Genexus – Dia 4

Publicado: 25 de janeiro de 2014 em Curso Genexus

//
Um novo dia de treinamento que fez minha ideia sobre a ferramenta mudar um pouco, trabalhando efetivamente com as transactions e seus modos de edição, as Grids e free style grid mais personalizável, o Pattern, relatórios com procedures e gravar arquivo TXT.

Bem este dia foi bastante intenso, pois tivemos uma pincelada sobre bastante coisa. Já trabalhamos muito com transaction e webPanels, e hoje fizemos uma mistura disso, montando a edição de dados através de uma transação, bem eu fiz assim, mas na realidade era pra fazer uma webpanel e fazer de forma manual a edição, programando o load e tudo mais. Mas ao conseguir colocar um botão de edição na grid simples que levava para uma tela de edição já foi uma vitória. Mas agora sei que podemos fazer edição com os Atributos e com as variáveis sendo o primeiro menos trabalhoso e mais fechado e o segundo mais customizável e mais trabalhoso (Mas nem tanto).

As grids usamos de todas as formas hoje, grid disso, grid daquilo… Tudo relacionado, e usamos a free style grid também para mostrar os dados do banco.

Após aprender como faz tudo programando, o programador nos mostrou o Pattern. Esse é o jeito fácil de fazer em GenX. É pegar uma transaction e aplicar um pattern nela. Isso irá criar outras telas para essa transaction, gerando mais código, porem mais simples, sem deixar editar muita coisa. è possivel deixar campos invisíveis, aplicar variaveis, mas bem limitado ao que ele propõe  e é bem satisfatório para todos os “cadastrinhos” (entendedores entenderão) que programamos por aí.

O relatório foi bastante simples de fazer, vou tentar fazer um tutorial algum dia desses, mas é muito simples com uma interface parecida com o iReports e os conceitos bem próximos. Exceto que para chamar a informação deve-se programa-la no source do procedures.

Para gravar arquivos TXT segue a regra da maioria das linguagens, abra o arquivo passando onde ele está, escreva, passe para a próxima linha e feche o arquivo. Não há mudança nessa regra, e é só aplicar a sintaxe. Fiz até um WebComponent que escreve no arquivo txt toda vez que for chamado, praticamente um logger do SFL4J, mas bem simples.

Depois de hoje, já é possível criar alguma coisa com o GenX. Mas sabendo que será limitado ao conhecimento adquirido. Percebi que existem muitas outras facilidades na ferramenta, basta procurar um pouco e usa-las. No finalzinnho do dia meu diretor apareceu para fazer uma visita, que foi bem rápida. Só restam 2 dias de treinamento, após isso vamos aprender fazendo um projeto. fui!