Archive for octubre, 2006

Tips: Error Type mismatch in "Atributo" in default parameter en Genexus

jueves, octubre 12th, 2006

Una de las causas puede ser que el “Atributo” que está dando el error, sea una fórmula find.

Syntax
Find(
Att, Cond, Def)

Att: Atributo en otra tabla que estamos buscando.
Cond: Condición de búsqueda
Def: Valor por defecto que devolverá, cuando no se cumple la condición.

y el valor “Def” que estamos devolviendo no coincide con el tipo del “atributo”.

Ejemplo: “Atributo” N(8)

find(AttBusq, condicion , ”);

Estamos devolviendo por defecto ‘ ‘ y el atributo de la fórmula es numérico.

Solución:
Poner el valor correcto o no poner el valor “Def” y Genexus asigna el valor por defecto del atributo.

find(AttBusq, condicion , 0);
o
find(AttBusq, condicion);

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

Tips: Performance programando en Genexus

miércoles, octubre 4th, 2006

Asignación rápida de una variable dependiente de 2 condiciones

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

Evitar el uso del when none en un for each.
Es mejor:

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

El when none lo que agrega en tiempo de generación es un IF al final del for each.
Entonces lo que terminas haciendo es elegir entre una asignación siempre y un if por si asignar o no… como las comparaciones pueden ser caras … prefiero la asignacion en ese caso. (Armin)

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

Tips: Explain Plan Optimizar consultas sql oracle

miércoles, octubre 4th, 2006

Cuando el resultado de una consulta demora demasiado y queremos saber por que, podemos ver un detalle de lo que la consulta está haciendo.

Pasos a seguir:
(probado en sql plus)

1)
alter session set sql_trace=true;

2)
explain plan for select …….

3)
select operation ||’ ‘||options||’ ‘||object_name from plan_table
connect by prior id=parent_id
start with id=1;

Info obtenida de: ADP

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

Tips: core dump AIX 4.3.2 dsmc / ora:01017 – 01034

miércoles, octubre 4th, 2006

Intentando correr procesos C generados con Genexus, se obtiene un error con el siguiente texto.

PCSS/SPI2 FLDS/ademonc SIG/11 FLDS/__modfini VALU/14 FLDS/exit

Encontramos que el sistema está generando un coredump

Posible problema: que la password de usuario para correr los procesos esté mal o el archivo donde se toma la password no se pueda leer y o esté corrupto.

Ejemplo de línea de archivo de coredump

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

Solución colocar el archivo correcto o la password correcta dependiendo del problema

Ayuda ubicada en: Mail Archive

Palabras de búsqueda:

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

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