SlideShare una empresa de Scribd logo
1 de 26
#GX23
Conaprole: Migrando KBs
de gran porte
Para que?
Pero si esta
funcionando!
Sera ahora el mejor
momento?
#GX23
DESTACADOS
Agenda
Escenario Conaprole
Metodología
Migraciones Win-Web
Tips y herramientas
Conclusiones
#GX23
DESTACADOS
Escenario Conaprole
Agenda
#GX23
DESTACADOS
Escenario Conaprole
Características
Escenario actual
Proceso: Gestión de Leche Fresca
Objetivo: Actualización tecnológica
#GX23
DESTACADOS
Escenario Conaprole
Características de las KBs
INFOLAC C/S 8 Win VB
INFOLAC WEB 7.5 Web VB
SECALE 7.5 Win VB
Comunicados 8 Win VB
GLF Central 7.5 Win VB
GXPortal 9 Web .Net
#GX23
GLF Central 5.744
GXPortal 1.412
SECALE 1.087
INFOLAC WEB 231
Comunicados 227
INFOLAC C/S 166
DESTACADOS
Escenario Conaprole
Características de las KBs
Historia
Objetos
Desarrollo
Mantenimiento
Más de 2600 usuarios
descentralizados
#GX23
DESTACADOS
Agenda
Escenario Conaprole
Metodología
#GX23
Metodología
Preparar la KB
Convertir la KB a GX Ev2
Análisis en detalle de la KB
#GX23
Preparar la KB
DESTACADOS
Conocer inicialmente los errores
Depurar
Verificar codigo nativo
Respaldar
KB < 9.0 Convertir a la 9.0
#GX23
Convertir la KB
DESTACADOS
Convertir la Kb a la nueva version
conversion.log y conversion.log.err
Errores Volver a Convertir
Workflow Object Workflow diagram
#GX23
Análisis en detalle de la KB
DESTACADOSDESTACADOS
Comparar Navegaciones, Nav. anidadas
Subtipos
Corregir warnings de Grupos
Subtipos sin grupo (grupo none)
Comparar DB Generadas
#GX23
Análisis en detalle de la KB(2)
DESTACADOSDESTACADOS
Limpieza
Borrar Obj/Att/Var/Dom no usados
Referencias a Styles (win-win)
Cod. Nativo Cod. GX o Obj. Externo
Cambio de nombre de objetos (main, ws)
#GX23
Análisis en detalle de la KB(3)
DESTACADOSDESTACADOS
Manejo de tipos mas estricto
VB/VFP Trns de 1 Nivel en forma de grilla
Variables que comienzan con numero o _
GXOffice Gxxlscre ExcelDocument
Gxmsend, gxmreceive
SMTPSession, POP3Sess, OutlookSess
#GX23
DESTACADOS
Agenda
Escenario Conaprole
Metodología
Migraciones Win-Web
#GX23
Migración Win-Web
DESTACADOSDESTACADOSDESTACADOS
Reingenieria de la aplicación
No hacer conversion objeto a objeto
Manejo de Estado (web session, variables
ocultas)
Disparo de Eventos y Reglas
Imprimir en el Navegador (Cliente)
#GX23
Migración Win-Web (2)
DESTACADOSDESTACADOSDESTACADOSDESTACADOS
Use Patterns
Definir Tema y customizar
MasterPage y Menu
UserControls
Compatibilidad en los diferentes browsers
#GX23
Migración Win-Web (3)
DESTACADOSDESTACADOSDESTACADOSDESTACADOS
Event ‘CallWorkPanelB
WorkPanelB( …..)
CalcularAlgo()
EndEvent
Invocacion a un WrkP desde otro WrkP
#GX23
Migración Win-Web (4)
DESTACADOSDESTACADOSDESTACADOSDESTACADOS
Event ‘CallWebPanelB
WebPanelB( …..) &ExecuteWebPanelB = true
EndEvent
Event ‘Refresh’
if (&ExecuteWebPanelB)
CalcularAlgo()
&ExecuteWebPanelB = false
EndIf
EndEvent
#GX23
DESTACADOS
Agenda
Escenario Conaprole
Metodología
Migraciones Win-Web
Tips y herramientas
#GX23
Tips
DESTACADOSDESTACADOSDESTACADOSDESTACADOS
Test y mucho test !
Instalación en paralelo
Use GXServer
Use herramientas que lo asistan
#GX23
Herramientas
DESTACADOSDESTACADOSDESTACADOSDESTACADOS
Comparador de Navegaciones
Comp. DB Atlantis Schema Inspector
SQL Developer
Limpieza -- KBDoctor
Windows Grep, diffdotnet
#GX23
DESTACADOS
Agenda
Escenario Conaprole
Metodología
Migraciones Win-Web
Tips y herramientas
Conclusiones
Encuentre
el momento !
Sea Proactivo!
Tercerice! Este Actualizado!
#GX23
¡GRACIAS!
pmusso@simplifica.com.uy
mporteiro@conaprole.com.uy
@SimplificaSoft
@Conaprole
facebook.com/simplifica
facebook.com/conaprole
Pablo Musso
Marcia Porteiro
#GX23
www.genexus.com/encuentro
@genexus#GX23

Más contenido relacionado

Similar a Conaprole: Migrando KBs de gran porte

JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4 César Pajares
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeQuito Lambda
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolJavier Abadía
 
Windows Server2008 R2 Overview
Windows Server2008 R2 OverviewWindows Server2008 R2 Overview
Windows Server2008 R2 OverviewPablo Campos
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEduardo Castro
 
Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016Guillermo González
 
Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016Guillermo González
 
0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasoluciones0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasolucionesGeneXus
 
cuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxcuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxIgor Rodriguez
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NETV Sanchez
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
 
Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009
Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009
Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009CA RMDM Latam
 
22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform
22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform
22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatformMiguel LLorca Gómez
 
Mi timeline programando desde el notepad a la nube
Mi timeline programando desde el notepad a la nubeMi timeline programando desde el notepad a la nube
Mi timeline programando desde el notepad a la nubeCarlos Longarela
 

Similar a Conaprole: Migrando KBs de gran porte (20)

JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nube
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
 
Windows Server2008 R2 Overview
Windows Server2008 R2 OverviewWindows Server2008 R2 Overview
Windows Server2008 R2 Overview
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
 
Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016
 
Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016Buenas prácticas GeneXus - GXTour Chile 2016
Buenas prácticas GeneXus - GXTour Chile 2016
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
S2-PD2.pptx
S2-PD2.pptxS2-PD2.pptx
S2-PD2.pptx
 
S2-PD2.pptx
S2-PD2.pptxS2-PD2.pptx
S2-PD2.pptx
 
0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasoluciones0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasoluciones
 
Bbr Cuore V3
Bbr Cuore V3Bbr Cuore V3
Bbr Cuore V3
 
cuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docxcuadro_comparativo_SGBD_top_10.docx (1).docx
cuadro_comparativo_SGBD_top_10.docx (1).docx
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
Headless Wordpress with React & GraphQL
Headless Wordpress with React & GraphQLHeadless Wordpress with React & GraphQL
Headless Wordpress with React & GraphQL
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009
Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009
Ca Ar Cserve Backup R125 Ca X Osoft R125 Evento Partners Ca 2009
 
22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform
22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform
22-Oct-2019 Sevilla: Reunión D365UG & PowerPlatform
 
Mi timeline programando desde el notepad a la nube
Mi timeline programando desde el notepad a la nubeMi timeline programando desde el notepad a la nube
Mi timeline programando desde el notepad a la nube
 
Optimización OnPage avanzada
Optimización OnPage avanzadaOptimización OnPage avanzada
Optimización OnPage avanzada
 

Más de GeneXus

After Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsAfter Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsGeneXus
 
Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!GeneXus
 
Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in ActionGeneXus
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...GeneXus
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?GeneXus
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroGeneXus
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y PlataformasGeneXus
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosGeneXus
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaGeneXus
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 StudentsGeneXus
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsiveGeneXus
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusGeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosGeneXus
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAPGeneXus
 
Going mobile
Going mobileGoing mobile
Going mobileGeneXus
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusGeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusGeneXus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...GeneXus
 

Más de GeneXus (20)

After Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsAfter Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) Bots
 
Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!
 
Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in Action
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuro
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y Plataformas
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivos
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industria
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 Students
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsive
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAP
 
Going mobile
Going mobileGoing mobile
Going mobile
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
 

Conaprole: Migrando KBs de gran porte

Notas del editor

  1. Buenastardes mi Nombrees Pablo Musso, pertenezco a la empresaSimplifica, me acompaña Marcia Porteiroquienpertenece a la empresaConaprole y hoy les vamos a contarnuestraexperienciamigrando bases de conocimientosgrandes, o como el titulo de la charla lo indicamigrando bases de conocimiento de gran porteQusieracomenzarestacharlahaciendoles la siguientepregunta , cuandodigomigrarcuales la primer imagenque se les viene a la cabeza ?A veralguienquelevante la mano , vamos no seantimidos…..
  2. Bueno les voy a deciryo, a mi la imagenque me vienees la de una gran, enorme, voluminoza,pesada y gigantepiedra en el zapato.Todossabemosquealgundiapor mas quepateamos la piedraparaadelante, vamos a tenerquemigrar y cuandoestamos con la dudasirealmentehacerlo o no empezamos con Y paraquee……… ?Tratamos de autoconvencernosque no sirvepara nada aunquesabemos la verdad, y le damosvueltas y vueltas y finalmentegana la razon , y ahicuandocasiquenosdecidimos a migrardecimos ……Perosiestafuncionando……., es mas lo en enfatizamosdecimos “perosiestafuncionandobarbaro!”Y ahiempezamosotravez a darvueltas con el y si y no? interminables hasta que surge unatercerinterrogantematadoraSera ahora el mejormomento ? Y ahitaatiramostoda la estanteriaabajo y nosolvidamospor un tiempo, pateamos la gran piedraparaadelante y un tiempodespuesempezamos de nuevo y paraqueee?Y asicontinaumostirando la gran y enormepiedritaparaadelante.Buenoseñores lo quevamos a ver en estacharlaesjuntamentequesi se puede!, asi sin anesteciacomodiriamos en el futbol, si se puede ! Como todossabemoses fundamental poderlograrestaractualizadostecnologicamente y lo quevamos a contaresnuestraexperienciamigrandoestas bases de conocimientobiengrandotas.
  3. Estaes la agenda de los temasquevamos a ver .En primer lugar Marcia los va a situar en el Escenario de Conaproleparaquetenganuna idea del volumen de informaciónquemanejan los sistemas, y de la cantidad de objetosgenexusque lo componen.Luegovamos a contarlescualfue la metodologíaqueaplicamos en esteproceso de migración.En tercerlugarhablaremosalgunasconcideracionesespecialesquedebenrealizarsecuandoestamosmigrando bases de conocimiento de win a webEn cuartolugarveremosalgunos tips y alguansherramientasquepuedenayudarnos en el proceso de migraciónY Finalmente les contaremoscualesfueronlasconclusionesquehemosobtenidoAhorasi sin mas los dejo con Marcia
  4. Veamosahoracualfue la metodologiaqueaplicamos en esteprocesomigratorio
  5. Estas son las 3 etapasfundamentalesquedebemosaplicar o al menosquenosotroshemosaplicado con muybuenosresultados a la hora de migrar.Vamos a vercadauna de estas en detallepero la idea es la siguiente:En primer lugardebemospreparar la KB para el procesomigratorio.Luegovamos a Convertir la base de conocimiento a Genexus Evolution 2Y Finalmentesi con la base de conocientoyaconvertidavamos a realizar un análisis en detalle de la KB
  6. Preparar la KB Bueno en estaetapa , primeroque nada es fundamental conocer los erroresquetiene la KB, todossabemosque no hay KB perfectas asique en estaetapanosvamos a encargar de Depurarnuestra base de conocimiento.Esdecirvamos a borrartodosaquellosatributos, variables, dominios , objetos no utilzados, vamos a borrartodasesassubrutinasquenosaccesiblespornadie.Vamos a y esto lo quieroenfatizar, verificartodo el codigonativo y versi no puedemigrarseparaGenexus, yaque al migrar y sobretodosivamos a cambiar de lenguajecuantomenoscodigonativotengamosmenosdolores de cabezavamos a tener en el futuro.Luegoquetengamosnuestra KB lo mas prolijitaposiblevamos a respaldardicha KB, tengamos en cuentaque la migraciónesunaetara irreversibleTengamos en cuentaquesivamos a migrar de una KB queesmenor a la 9.0 , vamos a tenerqueconvertirlaprimero a la 9.0 con lo queestoimplicaEsdecirquesi la KB esmenor a la 9.0 vamos a hacertodosestospasos y luegopasar a la fase 2.
  7. Buenotenemosnuestra base de conocimientodepurada y respaldada y la vamos a convertir .Para esto lo quehacemosesabrirla en Genexus Evolution 2 y ahipodransaltarunaserie de errores y warnings.Todo el proceso de conversion quedaalmacenado en conversion.log mientrasque los errores y warnings quedanalmacenados en el archivoconversion.log.err , ambos archivosesencuentra en el la raiz de la KB.Si tenemoserrores, el proceso de conversion no se concideraexitoso, razonpor la cualvamos a tenerquecorregirdichoserrores en la version anterior de la KB quetenemosrespaldada y volver a convetir.Repetiremosesteproceso hasta que no tengamoserrores de conversion.Algoimportanteesquesitenemosobjetos de worklflow en nuestra KB a convertir , Genexus lo detecta y nosbrinda la chance de poderconvertirdichosobjetos a objetos de tipo Workflow DiagramEn otrascharlasque he dado de estetema me hanpreguntadosobrequeesmejorsiabrir la KB en nueva version de genexus y convertir o siesmejorexportar e importar en la nueva version de genexus.La respuestacomomuchascosas en la vidaesdepende, las 2 grandesdiferencias entre hacerunacosa u otra son: Conversion No trabaja con objetosquetienenerrores, esdecirquecuandoencuentra un objetoquetiene error , para .abortainmediatamente el procesoaborta. Porotra parte Import/Export no Conversion trata de mantenertodaslas preferences del “modelo” quefueronseteadaspor el usuario, además p cuandouna preference cambia su valor por default, el valor previoesmantenido en la KB convertida . Esto no ocurrecuandoimportamosobjetos en la nueva KB Asiquesobresiesmejorutilizar la conversion o el import/export dependera de cadacasoPorejemplosiqueremosmigrartodaunaaplicacion Web full lo mejor sera convertirporotroladosiqueremosmigrarunapequeña parte de una KB sera mejor export/import
  8. Analisis en detalle de la KBBuenoyatenemosnuestra KB migrada a Genexus y estiempo de hacer un analisis mas detallado de la KBI)Estiempo de compararnavegaciones. Tengamos en cuentaque en Genexus 8.0 se realizaronmejoras en lasnevagacionescuando se tienen for each anidados, yaque se resuelven de forma mas performante al evitarproductoscartesianos. Esdecirquesinuestra KB esmejor a la 8.0 , puedenhaberdiferencias en lasnavegaciones. Para esto lo mejoresusaralgunaherramienta (luegonosvamos a detener mas en esto) como el comparador de navegacionesquenospermitacompararobjeto a objeto y hacer los cambiosnecesarios. Generalmente los cambios en lasnavegaciones se deben a 2 motivosCambio en la tabla base del foreachanidado2) Cambio en las constraint del for each anidadoLo cualpodremossolucionar de la siguientemaneraUsandounaclasura defined by2) Colocando el for each anidado en unasubrutinaII)Tambien en genexus 8.0 se hizo un cambiogrande a nivel de subtiposesdecirquesi la Kb esmejor a 8.0 vamos a tenerquecorregirnuestrasdefiniciones a nivel de subtiposA) En primer lugar lo quedebemoshacerescorregir warnings a nivel de gruposLos contorlesrealizados a nivel de gruposexistentes son paragarantizarque los gruposestenbiendefinidos y son: 1) Cuandoexistegruposquetienenatributossecundariosque no puedenserdeterminadospor los atributosprimarios2) Grupos sin atributosprimarios3) Grupos con atributosque no identificanunatablaB) En segundolugar no se permitetenersubtipos sin grupos , por lo tantoporcompatiblidad al convertir se crea el grupo none. De todasformasesrecomendablecreargruposparaestossubtiposparaquenavegue de forma adecuadaIII)En tercerlugar lo quedebemosescomparar los esquemas de las DB generadaspor la KB antes y despues de migrar. Como veremosluego en detalleexistenherramientasquenosayudan a realizarestascomparaciones
  9. Bueno,yatenemoscomparadalasnavegaciones, resueltos los subitpos y generamos la misma BD.Estiempo de realizarunanuevalimpiezaahorasobre la KB yamigradaAnalizamossitenemosAtt/Var o Dom no usados. Tenemosheramientasquenosasisten en estepaso, comoser el KBDoctor, comoveremosluego.En el caso de migraciones win a win, los objetosmigradosquedan con referencia a Style. El objeto Style es un objeto deprecated en lasnuevasversiones de genexusperonuestrosWorkpanelscontinuaranteniendounareferencia a estosobjetos. Lo mas recomendable en estoscasoseshacer un export de todos los workpanelsquetenganreferncias a styles y borrarestasreferencias en el xml de la exportacion. Aquipodemosusarheramientascomo Windows GrepEs fundamental migrartodo el codigoNativo a codigogenexus (paratenerindependencia de la plataforma) y mas sipensamoscambiar de lenguajedurante la migración. Tengan en cuentaque al estar en unanueva version de genexus, cosasque antes teniamosque resolver a manolaspodremos resolver con genexus y Lo que no se puedadepurar a codigogenexus, lo mas saludableescrear un ObjetoExternoparaque de estamaneraquedeencapsulado en esteobjetoOtracosa a tener en cuentaesque al migrar los objetoscambian de nombre. Estopasa con los objetos win y con los web services. Porejemplositenemos un procque se llama A, en la Kb migrada se llamarapA.Estoquepodria no serrelevante, peropodriainteresarporejemplo con los objetos mains, o con los web services , siqueremosmantenerexactamente el mismonombre. Esdecirque lo mas saludableeshacerunalista con cadauno de los objetosqueinterese el cambio de nombre y tenerlo en cuenta, paramodificarcadauno de los mismos
  10. Tengamostambien en cuentaqueaparecenerroresproque el manejo de tiposes mas estricto en lasnuevasversiones de genexus.Porejemplositenemos un combobox o un dynamiccomboboxquehace un additem antes no se controlaba el tipo y ahorasi y esto da errores. Entonces lo mas saludableeshacerunalista de todosestoserrores e ircorrigiendo.Si estamosmigrando de VB o VFP un error muycomunesque antes se permitiantransacciones de un nivel en forma de grilla. Buenodebemosmigrar a trabajar con Otro error bastantecomun y dificil de detectarsiuno no se enfrento a esto antes es el tema de objetosquedan error, al abrir, consolidar o especificarporquetienenalguna variable quecomienza con un numero o con underscore. Bueno se debecorregirestas variables paraestosobjetos .Y podriacontinuarestalista con tips durante un buenbuenratoperocomo no los quieroaburrir, simplemente les voy a comentar de la GXOffice. Funcionesqueestan deprecated comoser la gxxlscre , y en lugar de estopodemosusar el tipo de datosExcelDocument.Lo mismoocurre con lasfunciones de envio y recepcion de mail gxmsend y gxmreceive , dondepodemosusar los tipos de datosSMTPSession, POP3SEssion, OutlookSession o MAPISessionsegun el protocoloquecorresponda---------------------------------------------------------Tipo de datos File, DirectorygxmreceivevsOutlookSession, MAPISession, POP3SessionGxmsend, gxmreceivevsOutlookSession, MAPISession, SMTPSession
  11. Veramos a continuaciónalgunosproblemasquedebemos resolver cuandoestamosmigrando de win a web. Si bien en esteproyectopuntual de conaprole no hemostenidoquerealizarunamigracion win-web, me parecioconvenientecontarlesnuestraexperiencia en migraciones de estetipoporquemerecentodo un capituloaparte
  12. Lo primeroquequierodecirlesesque en unamigracion de estetipopor lo general hay quehacerunareeingenieria de la aplicacion y de la KB Esdecir no debemospensar la migracioncomouna conversion objeto a objetosino mas biencambiarnuestra forma de pensar y programarpara web, programarparaunaarquitecturacliente-servidorUn ejemplo de esto , es lo que sera la navegacion de la aplicación , en unaaplicacion win se realiza con botonespertmitiendovolver al objeto anterior. Porotra parte en Web tendremosquetener un menu , links y un componente de Links RecientementevisitadosparapermitirvovlerhaciaatrasTambien cambia notoriamente lo quees el manejo de estado, comotodosyasaben, debido a queestamos en unaaplicacion web y unaaplicacion web estabasdada en el protocolo http el cuales stateless , tenemosquemanejar el estado a traves de la web session o a traves de variables ocultasqueviajen con cada GET de la paginaBueno al serunaplataformacompletamentediferente hay cambios en lo querespecta al disparo de eventos y reglas; sobretodo con lasreglasqueimplicanllamadas a objetos con interfaz (reglas de flujo)Al estar bajo una arquitectura cliente-servidor, la aplicación web está ejecutando en el servidor y en general no se tiene control de los dispositivos del cliente.La solución mas utilizada para imprimir, es generar los reportes con salida PDF y luego imprimir utilizando las funciones del navegador. 
  13. Mi mayorrecomendaciónesqueusen los Patterns lo mas puedan. El uso de patterns como el workwith les permitiragenerar los webpanelsquesustituiran los workpanels de la aplicacion a migrar.Es fundamental quedefinan un temapara la aplicación y lo customicenDe la mismamanejradefinir la MasterPage y el Menu de la aplicacionquedeterminará la navegacion, y haceruso lo mas que se pueda de UserControlsquemejorannotoriamente la UI (porejemplousar la imageGallery).Fundamental probar en diferentes browsers de forma talque la aplicaciónestedisponible en todos los browsers que se deseenquefuncione la aplicación.
  14. Tambiendebentener en cuentaquetendranquereemplazartodos Confirms y levantar los popups correspondientesAlgo a tenermuyencuentaescuando se quieremigrar la invocacion de un WorkPanel a otrodentro de un eventoPorejemplositenemos el siguientecodigo a migrar, al estar en win, cuando se ejecuta el eventoCallworkPanelB se llama al workpanelB y hasta que no se vuelve de B no se ejecuta el procedimientoCalcularAlgo(). En realidad el comportamiento en win depende de la propiedadModalDialogcuyo valor pordefectoesquees modal cuando el workpanelrecibeparametros y no modal cuando no los recibeAhorasi al migrar a Web simplementecopiamosestecodigo a un WebPanel , el resultadoquetendremos no sera el esperado, porque en un WebPanel el comortamientoesasincronico , esdecir en seguidaque se llame al webpanel B , se ejecuta el procedmientoCalcularAlgo() y por lo tanto no obtenemos el mismocomportamientoComo tenemosquehacerparamigraresto a web ?---------------------------------------------En unaaplicación win Ejecución de call a objetos con interfaz dentro de un evento.En una aplicación GUI, cuando se invoca a un objeto con interfaz, el hecho de que continúe la ejecución del evento luego del llamado al objeto con interfaz depende de la propiedad Modal Dialog. El valor por defecto de la propiedad es &quot;Yes, IfParametersSpecified&quot;, lo que significa que el comportamiento es modal cuando hay parámetros y no modal cuando no los hay. En el caso de las aplicaciones web, si se tiene: Event&amp;x = 2call(Hwebpanel, params) //sigue codigoEndEvent Se hace la llamada al webpanel, pero el código sigue ejecutando. Es decir, se llama al último objeto con interfaz que se invoque en el código, y todo el código batch posterior sigue ejecutando, siempre.
  15. Tenemosquehaceralgo del estilo:EsdecirtenemosnuestroeventoCallWebPanelB, que llama al WebPanel B y enseguida pone una flag en true.Esta flag tendraqueguardarse en la websession o manejarse con una variable oculta, lo importanteesquemantengasuestado.Luego en el evento refresh, el cual en particular se va a ejecutarcuando se vuelva del webpanel B se hace el if correspondienteparaque se ejecute el codigodeseado .
  16. Veamos a continuacióncuales son los principales Tips y herramientasquehemosutilzado
  17. Lo primero y mas importante hayquetestearbastante!. Es fundamental comparar y medir en cuanto a funcionalidadque la aplicacionmigrada se comporteexactamente de la mismamaneraque la aplicación originalBuenocuandoyatenemos la aplicaciongenerada, compilada y con todo lo necestarioparapoderejecutares fundamental hacerpruebas de instalación . Esdecirhacerpruebas de instalación en paralelo en diferentesmaquinas a fin de asgurarnosque no falteinstalarniconfigurar nada.Como dice en la ppt Use GXServer, realmenteesnotoriocomo el uso de GXServerpuedemejorar la forma de trabajotanto individual y niquehablar en equipo en unamigración.Como les conto Marcia al comienzo de estacharla en Conaproleellos en la 7.5 tenianunaunica KB en la red con la cualtodos los desarrolladorestrabajabandesdeestamisma KB , bueno gracias a GXServer al migrar la KB a la Evolution 2 pudimoscambiar el esquema de trabajo , de forma tal de quecadadesarrollador se hiciera un check-out del a KB y cadadesarrolladorpudieratesteardurante la migración los objetosque le correspondiaprobarComo ultimo tip,usted no esta solo! Use herramientasque lo asistanparaautomatizar la correccion de cadauna de los posiblesproblemasquehemosvisto y quepuedensurgirdurante la migración en particular ….
  18. Use el comparador de navegaciones de artech, relamenteesunaherramientamuyutilquenospermitiraasegurarque la KB original y la KB migradanaveguenexactamente de la mismamanera.Use herramientasparacompararquelas base de datosgeneradaspor la KB original y la KB Migrada. En particular 2 herrmientasmuyutilesquehemosutilzado son:El Atlantis Schema Inspector quepermitecompararesquemas de BD de SQLServer y el SQL Developer quepermitecompararesquemas de BD de OraclePara la limpieza de las KBs,esdecirparaborraratributos, dominios, variables , objetos no utilizados , use el KBDoctorPara buscar y remplazarunaexpresion regular use herramientascomo Windows Grep y diffdotnet . Estasherramientaspuedensermuyutilesporejemplo en unamigraciòn win-win cuandoqueremoseliminarlasreferncias a los styles
  19. Veamos a continuacionlasconclusiones….
  20. Como conclusiones: 1) En primer lugarquitese de unabuenavez la piedra del zapato y Busque el Momento se quesiempreparececomplicadoperosiempre hay algunmomento en el cualesposiblerealizarlo.2) Sea Proactivo – No espere a que la olatenologica lo paseporencima y sea demaciadotarde. 3) Tercerice, Las migraciones son procesosque se realizanpuntualmentecadatantotiempo y porestopuedensercomplejos y costososparaquienes no estanacosumbrados, sin embargo aproveche el know how y experiencia de quienestenemosunametodologiacomprobada y avaladapornuestrosclientes . Esto le permitirámantener el foco en sunegocio y ahorrartiempo y costos.4) Este Actualizado – esto le permitiragenerarnuevasoportunidadesparasunegocio