Archive for April, 2008

Error Type mismatch in "Atributo" in default parameter Genexus

Friday, April 25th, 2008

(Postado originalmente no dia 12/10/06)

Syntax

Find(Att, Cond, Def)

Att: Atributo em outra tabela que estamos procurando.
Cond: Condição da pesquisa
Def: Valor por default que devolve, quando não se cumpre a condição.

e o vlaor “Def” que estamos devolvendo não coincide com o tipo do “atributo”.

Exemplo: “Atributo” N(8)

find(AttBusq, condição , ”);

Estamos devolvendo por default ‘ ‘ e o atributo da fórmula é numérico.

Solução:

Por o valor correto ou não por o valor “Def” e Genexus designa o valor por default do atributo.

find(AttBusq, condição , 0);
ou
find(AttBusq, condição);

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

Run-time error 1060 GeneXus Invalid descriptor index

Friday, April 25th, 2008

(Postado originalmente no dia 04/10/06)

Basicamente este erro significa que um programa gerado com GeneXus faz referencia a um campo numa tabela que não existe.
Isto pode acontecer por vários motivos, um deles, pode ser algum tratamento que tenhamos feito com a tabela, tirando um campo na mão, algo que não deveria acontecer se controlamos sempre o modelo de banco de dados com GeneXus.
Outra das coisas que pode ter acontecido, que é um pouco mais fácil de cometer o erro, e ter definido um DataView em GeneXus com uma tabela associada, e que simplesmente na parte “Composition” não preenchemos o “external name” ou temos alguma diferencia no nome que colocamos no “external name” com o nome real da tabela na qual estamos fazendo a referencia com o DataView.

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

core dump AIX 4.3.2 dsmc / ora:01017 – 01034

Sunday, April 20th, 2008

(Postado originalmente no dia 04/10/06)

Tentando rodar processos C gerados com Genexus, obtive um erro com o seguinte texto:
PCSS/SPI2 FLDS/ademonc SIG/11 FLDS/__modfini VALU/14 FLDS/exit

Achamos que o sistema, está gerando um coredump.
Provavelmente o problema seja que a password do usuário que executa os processos este errada, ou o arquivo de onde pega a password seja impossível de ler por falta de permissão ou por estar corrompido.

Exemplo de linha de arquivo de coredump:
ÀZ M’Ð ÿÿÿÿÿïp y•h ÿÿÿÿÿïp(BHB L ÿÿÿÿÿóP KM ÿT ” LÌ@ F8 ÷ ÷ õ0 üORA-01017: invalid username/password;

A solução é colocar o arquivo correto o a password correta dependendo do problema achado.

Achei a solução baseandome na documentação da seguinte URL: Mail Archive

Procurando por as seguintes palavras em Google.

Trace/BPT trap(coredump)
core dump AIX 4.3.2 dsmc

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

Error ORA-01407 cannot update to null GeneXus Oracle

Sunday, April 20th, 2008

(Postado originalmente 25/04/07)

Este problema basicamente indica que está intentando fazer um update em uma tabela com um valor nulo, quando a coluna não permite isso.

As opções são modificar a fonte do programa ou a definição da transação GeneXus.
Se você verificou a fonte do programa, e acha que pode fazer o update a um valor nulo, e também verificou em GeneXus e está correta a definição, allownull=Yes, pode ter acontecido por algum motivo alguém mudou na mão no banco de dados a definição dessa coluna em particular.
Para verificar esta última possibilidade, faça um describe da tabela.
Verifique a coluna que indica o erro se está permitindo nulos ou não.

No caso que tenha sido mudada, corrija usando a seguinte sentencia SQL:

ALTER TABLE Nombre_de_Tabla MODIFY Nombre_de_Columna NULL;

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

performance genexus when none ou iif

Thursday, April 17th, 2008

(postado originalmente no dia 27/05/07)

Designação rápida de uma variável dependente de 2 condições

&valido = iif(&A=&B,’S’,’N’)

Evitar o uso do “when none” num “for each”.
É melhor:

&valido=’N’
For Each
Where …..
&Valido=’S’
EndFor

O “when none” adiciona em tempo de generação um “IF” no final do “for each”.
Então a escolha está entre uma designação sempre e um “if” por se designar ou não… e como as comparações podem ser caras … prefiro a designação. (Informação obtida conversando com Armin Suporte ARTech)

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

genexus

Thursday, April 17th, 2008

(Postado originalmente no dia 27/05/07)


GeneXus nasce em 1984 quando Breogán Gonda e Nicolás Jodal (presidente e vice-presidente da ARTech) enfrentavam um grande desafio em São Paulo, Brasil.
Era um projeto de reengenharia com mainframes na empresa Alpargatas.
A primeira análise constataram que precisavam umas 700 tabelas, algo que era para aquela época, impossível de manter para um projeto de um ano e duas pessoas.

Então buscando a forma mais inteligente de realizar este projeto, descobriram um nicho de mercado, “Geração inteligente de aplicação, baseadas em conhecimento”.
Em outras palavras, criaram uma ferramenta de desenvolvimento multiplataforma, onde o Analista, tem seu foco no conhecimento do negócio, deixando que GeneXus se dedique a programação de baixo nível.
Isto permite que o programador, não tenha que conhecer a linguagem de programação de baixo nível, já que GeneXus cria o código fonte necessário na linguagem desejada e para a base de dados que se decida.

Genexus conta com 3 ambientes, desenho, protótipo e produção.
A idéia de GeneXus, é automatizar todo o automatizável, normalização de base de dados, mantenimento da mesma, (o que usualmente se chama como “reorg”)

GeneXus tem evolucionado desde o início, quando em 1989 lançaram no mercado a primeira versão de GeneXus, com geradores COBOL e RPG para AS/400, até o dia de hoje que gera aplicações para as principais plataformas de software: Java, :NET,e dispositivos móveis (.NET); para os sistemas operativos Windows, Unix, Linux e OS/400; e suporta as bases de dados mais populares do mercado:DB2, Oracle, SQL Server, PostgreSQL, e mySQL. Atualmente em estudio Ruby.

Uma das coisas que mais destaco de GeneXus, é a facilidade de poder passar de uma plataforma a outra e ou uma arquitetura a outra, em questão de horas das quais 99% do trabalho é realizado por GeneXus.

Hoje GeneXus oficialmente tem uns 18 anos, porem leva um pouco mais por detrás, tem ganhado muito espaço no mercado, tem ganhado popularidade no exterior, ARTech, é reconhecida como a máxima exportadora de software do Uruguai, o que representa uma referência importante a ter em conta.

Particularmente, conhecemos GeneXus desde 1995, e trabalhamos em distintas partes do mundo, em distintas plataformas e arquiteturas e com bases de dados de mais de 600 tabelas, ou seja, o que parecia impossível no ano 1984, hoje é nosso dia a dia।

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