Fabricio De los Santos

Gerência de Projetos – Consultoria GeneXus – ERP – Sistemas de Missão Crítica – Bancos de Dados

Archive for Agosto 2008

Saudades do velho GeneXus? SIM, pero no mucho.

sem comentários

A primeira vez que vi GeneXus na minha vida, foi quando fui convidado a participar na revisão do primeiro Tutorial de GeneXus na versão Windows 5.01.
Para mim não existia muita diferença o ambiente, porque estava cursando ainda a faculdade, e tinha feitos alguns programas em Visual C++. Depois disso fiz o curso de GeneXus e comecei a trabalhar na Administração Nacional de Correios de Uruguai e na empresa HEXA, sempre com a versão Windows.
Certo dia recebi uma proposta da empresa Equital, a qual tinha um sistema de Gerenciamento de Abonados de TVCable muito completo, e me pareceu fantástica a ideia de trabalhar ai.
No primeiro dia, O CHOQUE, tela azul no fundo quando cliquei no atalho para entrar a GeneXus… não, não, não foi problema de Windows, a versão de GeneXus era a 3.3 para MS-DOS!
Vou lhes contar, que aprendi muito rápido e logo me adaptei, era muito fácil, para fazer workpanels, não tinha que estar acomodando os campos com o mouse, eles caiam um do lado do outro e com a tecla enter conseguia baixar o campo e deixar todos alinhados.
Relatórios, nossa, uma maravilha, um campo do lado do outro, e ele já saia perfeito. Zero, preocupação. Definição de variáveis, era simples usar a regra “define” e copiar e colar para qualquer lugar.
NOSSA que saudades! Era tão simples!
Depois disso vivi todas as mutações de GeneXus, passei por todas as versões, números e nomes que podem parecer estranho para quem não é uruguaio, lembram de Solis, Ceibo….
Bem e no final meus amigos, chegou a Rocha, associada ao estado Rocha de Uruguai, mas para mim, sempre a associei com Pedro Virgilio Rocha (da cidade de Salto, como eu, jogador de Peñarol, São Paulo, Palmeiras e Coritiba) conhecido como o “Verdugo”.
E eu acho que realmente é a melhor associação, e me desculpem os rochenses, em especial Eugenio Garcia de ARTech.
A versão GeneXus X é o Verdugo das anteriores. Gente, na primeira impressão você não entende nada, cadê os objetos?, como faço para usar minhas velhas funcionalidades… O CHOQUE realmente é muito grande, o mesmo sentimento que tive quando passei da versão WIN para a versão DOS, você na primeira impressão sente que está ficando velho, que esse mundo já não é seu, e sente que não vai se adaptar, nem falar quando está escrevendo um procedimento e da aquele famoso “Control + A” para inserir um atributo e a tela fica toda azul, porque você na realidade agora com isso, você faz um “Select All”, são muitas coisas!
Mas… a versão GeneXus X tem centos de novas funcionalidades, e objetos novos, que ajudam e MUITO!.
DataProvider, DataSelector, o novo diagrama de tabelas, muito útil ter os campos no diagrama, antes eu tinha que fazer isso não mão, o novo tratamento das imagens, web panels em modal dialog (a solução para tanto código javascript), por fim tiraram o objeto relatório que todos concordávamos que poderia ser um procedure, e agora o novo objeto Query no preview do U2, que provavelmente vai causar revolução, tal vez seja parecido ao nosso gerador de relatórios que esperamos a muito tempo, ou pelo menos vai ajudar e muito.
Bem não vou falar o que realmente você vai descobrir quando usar, mas vale a pena.
GeneXus X, é SHOW DE BOLA!, eu recomendo.

Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 28, 2008 em 1:58 pm

Publicado em genexus, rocha

ORA-12899: VALUE TOO LARGE FOR COLUMN

sem comentários

Tiempo atrás había postado un link que resolvía este problema bajo algunas circunstancias.
Tiempo después me encontré con el mismo problema en una máquina con otro sistema operativo, y tuve que aplicar otra solución y en ese momento no publiqué como lo solucioné. A pedido de Carlos, amigo visitante de mi sitio, quien me preguntó por email si existia alguna otra forma de solucionar este problema, acudí a mis apuntes y estoy dejando aquí 2 pasos que solucionaron mi problema particular en aquella época.

Básicamente este problema está relacionado con la conversión de caracteres de oracle, de un banco para otro. Léase NLS_CHARACTERSET.
Por tal motivo pido atención a ver cual es su problema en particular, para saber cual procedimiento aplicar, es por eso que dejo links relacionados, que me ayudaron a encontrar la solución en aquel momento.

Problema 1:

c:\sqlplus /nolog
conn / as sysdba;

select parameter,value from nls_session_parameters where parameter=’NLS_LENGTH_SEMANTICS’;
alter system set nls_length_semantics=CHAR scope=both;

shutdown e startup para verificar.

Problema 2:

c:\sqlplus /nolog
conn / as sysdba;
shutdown;
startup restrict;
Alter database character set INTERNAL_USE WE8ISO8859P1;
shutdown;
startup open;

A continuación links de apoyo, que me ayudaron mucho y les estoy muy agradecido.

http://www.oracle.com/technology/oramag/oracle/03-mar/o23sql.html
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#g1015066
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/applocaledata.htm#i635016
http://users.telenet.be/oraguy.be/Characterset1.htm
http://www.oracle-base.com/articles/10g/CharacterSetMigration.php

Usted elija la opción y el character set que corresponda.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus -
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 27, 2008 em 3:37 pm

Publicado em ORA-12899, oracle

Erro de Oracle, reorganizando um atributo Caracter para um tamanho menor com GeneXus X

sem comentários

Simplesmente tinha um campo Character(40) onde o tamanho era muito grande para o string a ser guardado nele.
A decisão foi de mudar para Character(9).
Na hora de reorganizar tive um erro que não podia reorganizar para um campo menor porque os dados não entravam na coluna.
Olhando os dados nenhum deles era maior a 9.
Existe uma diferença no banco de dados no tratamento de atributos CHAR e VarChar, espacio reservado, etc, para o tipo Varchar é menor.
Solução sem entrar no detalhe de porque isso estava acontecendo (ja que depois não consegui reproduzir novamente o erro), simplesmente passei o campo CHARACTER(40) para VARCHAR(40), e depois para VARCHAR(9), para por ultimo passar para CHAR(9) e não deu problemas.
Conclusão: O erro não sei porque aconteceu, mas o que sim é seguro que o length do string antes da conversão, não era maior que 9, já que após esses 3 passos CHAR -> VARCHAR -> CHAR, a tabela ficou como desejava sem problemas.

Não reportei este caso porque não consegui reproduzir, então acho que é um workaround válido se volta a acontecer.

Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 25, 2008 em 6:21 pm

Publicado em genexus, oracle, rocha

Ser eficaz ou ser eficiente?

sem comentários

A primeira vez que me explicaram a diferença entre eficaz e eficiente, usaram o exemplo de uma pessoa que queria chegar a um lugar determinado no importando o caminho a seguir. Ela era eficaz por ter chegado, em quanto seria eficiente se tivesse escolhido a melhor rota, seja por caminho mais curto ou rápido.
A partir desse dia preferi ser eficiente, achei que era melhor, até que um dia li algo mais ou menos assim:

O eficiente faz as coisas da maneira correta, o eficaz faz aquilo que agrega mais valor.

É muito interessante este conceito.
Hoje em dias as empresas procuram as pessoas que agregam mais valor, mesmo parecendo contrario ao conceito de ser eficiente, na realidade hoje em dia tem muito valor que você chegue na empresa e imediatamente faça uma revolução positiva, as empresas precisam resultados e os precisam para ontem, então o melhor é ser eficaz e eficiente, mas se tem que escolher, meu conselho, seja eficaz, depois capriche na eficiência.

Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 22, 2008 em 3:10 am

Publicado em carrera

Renomear um atributo em GeneXus X

sem comentários

Quando queremos renomear um atributo em GeneXus X, dependendo da ordem ou da complexidade do que queremos fazer, podemos ter algumas dores de cabeça, por exemplo se estamos falando de um atributo foreign key.

Para evitar alguns problemas, o primeiro que temos que fazer é tirar a constraint de null nas trns onde sejam referenciados. Após isso, em Workwith Atributes, com F4 para cada atributo podemos renomear ele.
Logo F5 para gerar o impacto da base de dados.
Uma vez executada a reorganização novamente em GeneXus colocamos a propriedade para não permitir o atributo nulo.

Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 21, 2008 em 4:57 am

Publicado em genexus, rocha

Iphone objeto de desejo

sem comentários

O Iphone foi homologado finalmente o dia 13 de agosto aqui no Brasil pela Anatel.

Procurei informação de quando começa a venda aqui em São Paulo nas empresas Vivo e Claro.

Em junho na operadora Claro me disseram quem em julho começariam a vender.
O mesmo dia na Vivo não tinham informação.

Em julho voltei na operadora Claro, e me disseram que em agosto começariam a vender.
O mesmo dia na Vivo não tinham informação.

Em agosto (este fim de semana), após de ler que tinha sido homologado para o uso aqui no Brasil, na operadora Claro me disseram que tal vez em Novembro começariam a vender.

Obvio nem fui a perguntar, mas com certeza na Vivo a informação seria mais confiável, o seja:

Ninguém tem ideia de quando vão começar a vender oficialmente o iphone no Brasil.

Fico aguardando para testar um Sistema Web realizado com GeneXus X no iphone.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus -
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 21, 2008 em 4:49 am

Publicado em iphone

ORA-01400 GeneXus X e Oracle

sem comentários

Este erro está prometido para ser corrigido em GeneXus logo em breve.
O problema é porque criamos uma tabela com uma chave primaria numérica.
E depois decidimos que ela seja autonumérica.
Então fomos nas propriedades do atributo e marcamos ele para autonumber = true.
Executamos a reorganização e tudo parece certo.
Mas na hora de executar, nos encontramos com esse problema.
O que aconteceu e que GeneXus não criou o trigger correspondente, e sim a sequência.

Bem, a solução é entrar no GeneXus novamente e marcar esse atributo para autonumber = false.

Executar F5 e GeneXus vai mostrar a sequência e o trigger a ser apagado.

Só que não vamos a apagar nada, vamos pegar a sentencia do trigger por exemplo:

DROP TRIGGER AN$ZZZNossoAtributo

(tem que marcar e com botão direito copiar, senão não vai)

para criar a mão o trigger no oracle da seguinte forma.

create or replace TRIGGER AN$ZZZNossoAtributo BEFORE INSERT ON NossaTabela FOR EACH ROW BEGIN SELECT NossoAtributo.NEXTVAL INTO :new.NossoAtributo FROM DUAL; END;

ZZZ é o número interno que identifica o atributo en GeneXus.

Listo, agora voltamos a GeneXus, cancelamos a reorganização e colocamos o atributo novamente com a propriedade de autonumber = true.

Fabricio De los Santos
Gerência de Projetos – Consultoria GeneXus -
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Escrito por Fabricio De los Santos

Agosto 20, 2008 em 10:42 pm

Publicado em ORA-01400, genexus, oracle, rocha