Entradas

Mostrando las entradas de febrero, 2019

PiensoPienso: Diseño de grillas con Descripción.

Imagen
Tengo las tablas

Table Movimientos (100.000 registros)
Table Structure
NameDescriptionTypeFormula*ClaveAutonumber Clave AutonumberNumeric (8)Fecha  FechaDateTimeReferencia ReferenciaNumeric (4)ClaveDescripcion Clave DescripciónVarChar Table Referencia (10.000 registros)
Table Structure
NameDescriptionTypeFormula*ReferenciaReferenciaNumeric (4)
ReferenciaDescripcion  Referencia DescripciónVarChar
Tengo 2 Webpanels que muestran una grilla que tiene 20 renglones y deben mostrarse registros de la tabla de Movimientos. y se deben mostrar las mismas col

Cuantos commits a GeneXus Server va a tener este objeto?

Imagen
Decidimos hacer un primer experimento de algoritmos de inteligencia artificial para predecir la cantidad de commits que va a tener un objeto, teniendo algunas características del mismo. 
Hicimos un programa para leer una KB y sacar para los objetos ejecutables: 

//Información del objeto"Object",  "Description",  "Type",  "Module", //Información sobre los parámetros "#ParmIN", Cantidad de Parámetros IN "#ParamOUT",  Cantidad de Parámetros OUT "#ParamINOUT", Cantidad de Parámetros INOUT "#Parameters",  Cantidad total de parámetros. (suma de los anteriores) //Información sobre código "#Comments", Cantidad de lineas de código "#Lines",  Cantidad de lineas del codigo "Max Nest", Cantidad de anidaciones que tiene el código "Longest Code Block",   Bloque de código mas grande "Cyclomatic Complexity",  Complejidad ciclomática del código "#Rules", Cantidad de lineas en la…

PiensoPienso: Atributo formula : Conviene usar procedure o count?

Imagen
Tengo una Transacción con la estructura

*CabezalClave
 CabezalDescripcion
 CantidadDeLineas = Formula que cuenta la cantidad de líneas
  (
    *LineaClave
     LineaDescripcion
   )  

Se tiene un procedure CuentoLineas que hace
parm(in:&CabezalClave,out:&CantidadDeLineas);

&CantidadDeLineas=0
for each
   where CabezalClave=&CabezalClave
     &CantidadDeLineas += 1
endfor

Debo hacer un programa que liste todos los cabezales que tengan mas de 3 lineas y poner cuantas lineas tiene.

CabezalClave , #LineasDelCabezal.

Cual de estas opciones utilizaría ? Justifique la respuesta.

Opcion 1) VARIABLE LLAMANDO A PROCEDURE

for each
     &CantidadDeLineas = CuentoLineas(CabezalClave)
     if &CantidadDeLineas > 3 
          Msg(CabezalClave + "," + &CantidadDeLineas)
     endif
endfor

Opcion 2)  ATRIBUTO FORMULA CON PROCEDURE

Defino un atributo fórmula

*CabezalClave
 CabezalDescripcion
CantidadDeLineas = CuentoLineas(CabezalClave)
  (
    *LineaClave
     LineaDescripcion
   )  

y…