SlideShare una empresa de Scribd logo
1 de 26
Como mejorar una KB:
Limpieza
Enrique Almeida
@ealmeida
Concepto
Abril 2020
Motivaciones de la charla
El problema
Las KB GeneXus duran muchos años
Con el pasaje del tiempo se acumulan objetos, variables, SDT, etc que
se usaron y ahora ya no se usan más.
En GeneXus es más fácil agregar objetos que borrarlos.
Motivos para la limpieza
● ~ 15 % de objetos que no se instalaban.
● Es más fácil encontrar errores en una KB limpia
● Enlentece el desarrollo, tiempos de Build All, Referencias Innecesarias
● No arreglar objetos que no se usen
Preparación
Partir de una KB con un BUILD ALL exitoso (sin errores)
Hacer un export de todos los objetos de la KB y sus propiedades, guardar el
xpz.
Crear una versión congelada
(View / Versions / Freeze)
Minimizar WARNINGS en especificaciones
Objetivo: Un build all sin errores y sin warnings.
A nivel de la KB
A nivel del Objeto
Variables no usadas
1) En cada objeto, intentar borrar todas las variables (solo va a dejar borrar las variables no
referenciadas).
Recordar hacer un BUILD ALL (SIN ERRORES)
2)
Atributos que no están en tablas
Pueden borrarse si no están referenciados.
Si están referenciados, hay que quitar la
referencia y borrar
● variables basados en atributos
● sdt basados en atributos
¿Preguntas?
Objetos main que no se usan más
Borrar o desmarcar de main todos los objetos que no se usan más.
Todos los objetos deben ser alcanzables desde un main.
Solo tener los main necesarios.
Objetos no referenciados
View / Knowledge Base Information / Not Referenced Objects
Objetos no referenciados
● Objetos BORRABLES
○ Procedures
○ Attributes
○ Domain
○ Webpanels
○ DataProviders
…
● Objetos NO BORRABLES
○ Transactions (Al borrarla puedo cambiar la estructura de la base de datos)
○ Llamados con Call Dinámico (las referencias no aparecen en la KB)
KBDoctor - Remove not referenced objects
Objetos no alcanzables
Objetos no alcanzables
spc0217 Object is unreachable.
Si no es util → BORRARLO
Si es útil → AGREGARLO EN UN MAIN
DUMMY.
Dominios no usados.
Work with objects con Type=Domain
Select All / Delete
Tablas no referenciadas
Aparecen en las lista de objetos no referenciados.
Hay que identificar las transacciones generan la tabla y borrarla o borrar el nivel que lo
genera.
Código comentado
KB Stats / Calculate KBDoctor complexity index
Otras cosas a borrar
● Eventos no invocados
● Borrar Class de Themes
● Minimizar colores de la paleta
● Transacciones no Generables
● Resetear el WIN FORM
● Imágenes no referenciadas
● Fórmulas no usadas
● Prompts generados por GeneXus, son necesarios?
● Objetos To_be_defined
Herramientas
Variables Cleaner - Dvelop
KBDoctor - Concepto
Recover Object - Luciano Silveira
¿Preguntas?
Ejemplo de Limpieza: KB TravelAgencyGX16
Como mejorar una KB: Limpieza
Enrique Almeida
@ealmeida
Concepto
Abril 2020
Muchas gracias!
Ejemplo: Limpieza KB TravelAgencyGX16

Más contenido relacionado

La actualidad más candente

Plny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesPlny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesDimas Prasetyo
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Zero Data Loss Recovery Appliance - Deep Dive
Zero Data Loss Recovery Appliance - Deep DiveZero Data Loss Recovery Appliance - Deep Dive
Zero Data Loss Recovery Appliance - Deep DiveDaniele Massimi
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate pptAneega
 
Java null survival guide
Java null survival guideJava null survival guide
Java null survival guideSungchul Park
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLMasahiko Sawada
 
Installation eclipse
Installation eclipseInstallation eclipse
Installation eclipsesrbhthkr
 
Report summer training core java
Report summer training core javaReport summer training core java
Report summer training core javaSudhanshuVijay3
 
PostgreSQL, performance for queries with grouping
PostgreSQL, performance for queries with groupingPostgreSQL, performance for queries with grouping
PostgreSQL, performance for queries with groupingAlexey Bashtanov
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...idsecconf
 
Análisis Forense de la Memoria RAM de un sistema
Análisis Forense de la Memoria RAM de un sistemaAnálisis Forense de la Memoria RAM de un sistema
Análisis Forense de la Memoria RAM de un sistemaEventos Creativos
 
[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep DiveJi-Woong Choi
 
Explaining Explain
Explaining ExplainExplaining Explain
Explaining ExplainRobert Treat
 
Glass fish performance tuning tips from the field
Glass fish performance tuning tips from the fieldGlass fish performance tuning tips from the field
Glass fish performance tuning tips from the fieldPayara
 
Asp.net and .Net Framework ppt presentation
Asp.net and .Net Framework ppt presentationAsp.net and .Net Framework ppt presentation
Asp.net and .Net Framework ppt presentationabhishek singh
 
Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...
Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...
Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...DataStax
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVCIndicThreads
 
DB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerDB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerMaris Elsins
 

La actualidad más candente (20)

Plny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practicesPlny12 galera-cluster-best-practices
Plny12 galera-cluster-best-practices
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Zero Data Loss Recovery Appliance - Deep Dive
Zero Data Loss Recovery Appliance - Deep DiveZero Data Loss Recovery Appliance - Deep Dive
Zero Data Loss Recovery Appliance - Deep Dive
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
 
Java null survival guide
Java null survival guideJava null survival guide
Java null survival guide
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
 
Installation eclipse
Installation eclipseInstallation eclipse
Installation eclipse
 
Report summer training core java
Report summer training core javaReport summer training core java
Report summer training core java
 
PostgreSQL, performance for queries with grouping
PostgreSQL, performance for queries with groupingPostgreSQL, performance for queries with grouping
PostgreSQL, performance for queries with grouping
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
 
Análisis Forense de la Memoria RAM de un sistema
Análisis Forense de la Memoria RAM de un sistemaAnálisis Forense de la Memoria RAM de un sistema
Análisis Forense de la Memoria RAM de un sistema
 
[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive[오픈소스컨설팅]Atlassian JIRA Deep Dive
[오픈소스컨설팅]Atlassian JIRA Deep Dive
 
Explaining Explain
Explaining ExplainExplaining Explain
Explaining Explain
 
Glass fish performance tuning tips from the field
Glass fish performance tuning tips from the fieldGlass fish performance tuning tips from the field
Glass fish performance tuning tips from the field
 
Asp.net and .Net Framework ppt presentation
Asp.net and .Net Framework ppt presentationAsp.net and .Net Framework ppt presentation
Asp.net and .Net Framework ppt presentation
 
Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...
Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...
Maximum Overdrive: Tuning the Spark Cassandra Connector (Russell Spitzer, Dat...
 
Java and XML
Java and XMLJava and XML
Java and XML
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVC
 
DB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerDB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource Manager
 

Similar a Como mejorar una kb limpieza

Similar a Como mejorar una kb limpieza (20)

Tutorial cc (2)
Tutorial cc (2)Tutorial cc (2)
Tutorial cc (2)
 
Tutorial c++
Tutorial c++Tutorial c++
Tutorial c++
 
Este si 2
Este si 2Este si 2
Este si 2
 
Sql
SqlSql
Sql
 
Sql
SqlSql
Sql
 
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
 
Acces
AccesAcces
Acces
 
Microsoft Acces
Microsoft AccesMicrosoft Acces
Microsoft Acces
 
Access
AccessAccess
Access
 
Access
AccessAccess
Access
 
Access
AccessAccess
Access
 
Access.ppt
Access.pptAccess.ppt
Access.ppt
 
Manual Access
Manual AccessManual Access
Manual Access
 
Access
AccessAccess
Access
 
Presentación access
Presentación accessPresentación access
Presentación access
 
Visual foxpro
Visual foxproVisual foxpro
Visual foxpro
 
Soporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittSoporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKitt
 
Software netbeans-ide-7.2
Software netbeans-ide-7.2Software netbeans-ide-7.2
Software netbeans-ide-7.2
 
Software netbeans-ide-7.2
Software netbeans-ide-7.2Software netbeans-ide-7.2
Software netbeans-ide-7.2
 
Diapositivas Software netbeans-ide-7.2
Diapositivas Software netbeans-ide-7.2Diapositivas Software netbeans-ide-7.2
Diapositivas Software netbeans-ide-7.2
 

Más de Enrique Almeida

Modularización de KB GeneXus - lecciones aprendidas
Modularización de KB GeneXus -  lecciones aprendidasModularización de KB GeneXus -  lecciones aprendidas
Modularización de KB GeneXus - lecciones aprendidasEnrique Almeida
 
Porque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesPorque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesEnrique Almeida
 
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24Enrique Almeida
 
Repositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXusRepositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXusEnrique Almeida
 
Encuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEncuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEnrique Almeida
 
Encuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win WebEncuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win WebEnrique Almeida
 
Encuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative ProjectsEncuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative ProjectsEnrique Almeida
 
Nuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfNuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfEnrique Almeida
 
Desarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos NumerososDesarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos NumerososEnrique Almeida
 

Más de Enrique Almeida (15)

Modularización de KB GeneXus - lecciones aprendidas
Modularización de KB GeneXus -  lecciones aprendidasModularización de KB GeneXus -  lecciones aprendidas
Modularización de KB GeneXus - lecciones aprendidas
 
Cafe con deployment
Cafe con deploymentCafe con deployment
Cafe con deployment
 
Porque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesPorque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personales
 
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
 
Build and deploy
Build and deploy Build and deploy
Build and deploy
 
Repositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXusRepositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXus
 
Datos abiertos
Datos abiertosDatos abiertos
Datos abiertos
 
Migrando grandes KB
Migrando grandes KBMigrando grandes KB
Migrando grandes KB
 
Encuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEncuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta Testing
 
Encuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win WebEncuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win Web
 
Encuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative ProjectsEncuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative Projects
 
Nuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfNuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit Vf
 
GeneXus Kb Grandes
GeneXus Kb GrandesGeneXus Kb Grandes
GeneXus Kb Grandes
 
Desarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos NumerososDesarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos Numerosos
 
KBTools V2008
KBTools V2008KBTools V2008
KBTools V2008
 

Como mejorar una kb limpieza

  • 1. Como mejorar una KB: Limpieza Enrique Almeida @ealmeida Concepto Abril 2020
  • 3.
  • 4.
  • 5. El problema Las KB GeneXus duran muchos años Con el pasaje del tiempo se acumulan objetos, variables, SDT, etc que se usaron y ahora ya no se usan más. En GeneXus es más fácil agregar objetos que borrarlos.
  • 6. Motivos para la limpieza ● ~ 15 % de objetos que no se instalaban. ● Es más fácil encontrar errores en una KB limpia ● Enlentece el desarrollo, tiempos de Build All, Referencias Innecesarias ● No arreglar objetos que no se usen
  • 7. Preparación Partir de una KB con un BUILD ALL exitoso (sin errores) Hacer un export de todos los objetos de la KB y sus propiedades, guardar el xpz. Crear una versión congelada (View / Versions / Freeze)
  • 8. Minimizar WARNINGS en especificaciones Objetivo: Un build all sin errores y sin warnings. A nivel de la KB A nivel del Objeto
  • 9. Variables no usadas 1) En cada objeto, intentar borrar todas las variables (solo va a dejar borrar las variables no referenciadas). Recordar hacer un BUILD ALL (SIN ERRORES) 2)
  • 10. Atributos que no están en tablas Pueden borrarse si no están referenciados. Si están referenciados, hay que quitar la referencia y borrar ● variables basados en atributos ● sdt basados en atributos
  • 12. Objetos main que no se usan más Borrar o desmarcar de main todos los objetos que no se usan más. Todos los objetos deben ser alcanzables desde un main. Solo tener los main necesarios.
  • 13. Objetos no referenciados View / Knowledge Base Information / Not Referenced Objects
  • 14. Objetos no referenciados ● Objetos BORRABLES ○ Procedures ○ Attributes ○ Domain ○ Webpanels ○ DataProviders … ● Objetos NO BORRABLES ○ Transactions (Al borrarla puedo cambiar la estructura de la base de datos) ○ Llamados con Call Dinámico (las referencias no aparecen en la KB)
  • 15. KBDoctor - Remove not referenced objects
  • 17. Objetos no alcanzables spc0217 Object is unreachable. Si no es util → BORRARLO Si es útil → AGREGARLO EN UN MAIN DUMMY.
  • 18. Dominios no usados. Work with objects con Type=Domain Select All / Delete
  • 19. Tablas no referenciadas Aparecen en las lista de objetos no referenciados. Hay que identificar las transacciones generan la tabla y borrarla o borrar el nivel que lo genera.
  • 20. Código comentado KB Stats / Calculate KBDoctor complexity index
  • 21. Otras cosas a borrar ● Eventos no invocados ● Borrar Class de Themes ● Minimizar colores de la paleta ● Transacciones no Generables ● Resetear el WIN FORM ● Imágenes no referenciadas ● Fórmulas no usadas ● Prompts generados por GeneXus, son necesarios? ● Objetos To_be_defined
  • 22. Herramientas Variables Cleaner - Dvelop KBDoctor - Concepto Recover Object - Luciano Silveira
  • 24. Ejemplo de Limpieza: KB TravelAgencyGX16
  • 25. Como mejorar una KB: Limpieza Enrique Almeida @ealmeida Concepto Abril 2020 Muchas gracias!
  • 26. Ejemplo: Limpieza KB TravelAgencyGX16

Notas del editor

  1. Invitacion del GUG Hacer algo util durante la cuarentena Aprontarnos para lo que se viene. Metodologia de trabajo Practica y Habitos Forma de la charla (Deberia ser un Taller donde cada uno traiga su KB y le hacemos una limpieza) Voy a hacer una pausa en el medio para contestar preguntas). Al final hacemos preguntas y también una encuesta que los organizadores del GUG querian hacer.
  2. Tener todas las instancias de patterns actualizadas y aplicadas. Hacer un REBUILD ALL de ser posible. Hacer un CREATE DATABASE de ser posible.
  3. Importancia de borrar variables. Herramienta desarrollada por los amigos de Dvelop
  4. Atributos que no estan en ninguna tabla inducen a errores.