SlideShare una empresa de Scribd logo
1 de 54
EXTENSIÓN PARA LA REALIZACIÓN DE BÚSQUEDAS DINÁMICAS Y GUÍA
DE IMPLEMENTACIÓN PARA DESARROLLADORES DE GENEXUS EV2.
UNIVERSIDAD CATÓLICA DE SANTA MARÍA
FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICASY
FORMALES
PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS
Tema:
Autor:
SONYYVAN GALLEGOS QUISPE
Asesor deTesis:
DR. GUILLERMO CALDERÓN RUIZ
 INTRODUCCIÓN
 EXTENSIÓN
 GUÍA DE IMPLEMENTACIÓN.
 VALIDACIÓN
 CONCLUSIONES
ESTRUCTURA
Introducción
¿Qué es GeneXus Ev2 y para qué
sirve?
Base de Conocimiento
Stakeholders
Analista y
programador
Genexus
Base de datos relacional
Código fuente
Problema
GeneXus presenta la restricción que no se
puede implementar aplicaciones que ayuden
al usuario final a realizar consultas a sus bases
de datos en forma dinámica.
• Consulta SQL
Select nombre, apellido, dni from persona
• Consulta GeneXus
For each
&nombre = nombre
&apellido = apellido
&dni = dni
endfor
¿Porqué existe el problema?
• Consulta SQL
Select nombre, apellido, dni from persona
where dni = ‘45056272’
• Consulta GeneXus
For each
where dni = ‘45056272’
&nombre = nombre
&apellido = apellido
&dni = dni
Endfor
Consultas con condicionales
• Consulta SQL
Select nombre, apellido, dni from persona
where dni in (‘A’, ‘B’ ,‘C’, ‘D’)
• Consulta GeneXus
For each
where dni in (‘A’, ‘B’ ,‘C’, ‘D’)
&nombre = nombre
&apellido = apellido
&dni = dni
Endfor
Consultas con condicionales
Que sucede si…
• Consulta SQL
Select nombre, apellido, dni from persona
where dni in
• Consulta GeneXus
For each
where dni in
&nombre = nombre
&apellido = apellido
&dni = dni
Endfor
Además…
• Select nombre, apellido, dni from persona
where dni in and ciudad in and ocupación in
• For each
where dni in and ciudad in and ocupación in
&nombre = nombre
&apellido = apellido
&dni = dni
Endfor
Solución
• La extensión debe permitir al desarrollador su fácil
instalación en el entorno de desarrollo integrado de
GeneXus Ev2.
• La extensión debe brindar al desarrollador una
solución fácil de implementar consultas dinámicas.
• La extensión debe utilizar objetos de la herramienta
GeneXus Ev2 en su propuesta de la solución.
Objetivos de la extensión
• Segundo problema:
No existe documentación formal que ayude a
desarrollar la extensión.
Pero…¿como se hace una
extensión?
• Objetivo:
– La guía de implementación debe ofrecer
ejemplos prácticos para su fácil
comprensión.
Guía de implementación
Extensión
– El Usuario podrá generar la consulta con las
tablas y atributos que elija.
– El Usuario podrá ejecutar la consulta en tiempo
de diseño.
– El Usuario podrá guardar la consulta.
Requerimientos funcionales
– El Usuario podrá visualizar las consultas que están
almacenadas.
– El Usuario podrá deshacer todas las acciones
realizadas, limpiando todos los objetos que se
muestran en pantalla.
– El Usuario podrá invocar la ejecución de la
consulta en tiempo de ejecución de la aplicación.
Requerimientos funcionales
– La invocación del método de ejecución de la consulta
debe ser programada según la lógica del desarrollador.
– El resultado de la consulta debe ser devuelto en formato
de lenguaje de marcas extensible.
– La consulta debe ser guardada en el objeto Procedure de
GeneXus para obtenerla cuando se le requiera.
– El resultado de la consulta debe ser tomado y mostrado
por el objeto GeneXus Structured Data Type.
Requerimientos no funcionales
Diagrama de caso de uso general
• Iniciar extensión
Diagramas de secuencia
• Definir consulta
Diagramas de secuencia
• Programar con extensión
Diagramas de secuencia
• Realizar consulta
Diagramas de secuencia
Diagrama de clases
Guía de
implementación
– ¿Para qué sirve?
– ¿Cómo conseguirlo?
Identificador único global
– El instalador se encuentra en el centro de descargas de
GeneXus:
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,8,
8,O,,0,,%202707
– Al instalarse se crean los siguientes directorios y archivos:
• Bin
• PackageBuilder
• PatternBuilder
• Patterns
• Samples
• Schemas
Instalación de la plataforma de
desarrollo.
–Folder
–Procedure
•Variables
•Source
•Rules
–Structured Data Type
–External Object
Objetos GeneXus
Artech.Architecture.Common.Objects
Artech.Architecture.UI.Framework.Services
1. if(UIServices.KB != null && UIServices.KB.CurrentModel != null){
2. Folder folder = Folder.Get(UIServices.KB.CurrentModel,
“iQueries”);
3. if (folder == null){
4. folder = new Folder(UIServices.KB.CurrentModel);
5. folder.Parent = Folder.GetRoot(UIServices.KB.CurrentModel);
6. folder.Name = “iQueries”;
7. folder.Save();
}
}
Folder
Artech.Architecture.Common.Objects
Artech.Architecture.UI.Framework.Services
Artech.Genexus.Common.Objects
Artech.Genexus.Common
1. Procedure procedure =
Procedure.Get(UIServices.KB.CurrentModel, “MiProcedimiento”);
2. if (procedure == null){
3. procedure = new Procedure(UIServices.KB.CurrentModel);
4. procedure.Name = “MiProcedimiento”;
5. procedure.Parent = folder;
6. procedure.Save();
}
procedure.Parent = Folder.GetRoot(UIServices.KB.CurrentModel);
Procedure
1. Variable variable = new Variable(procedure.Variables);
2. variable.Name = “query”;
3. variable.Type = eDBType.VARCHAR;
4. variable.Length = 9999;
5. procedure.Variables.Add(var);
6. procedure.Save();
Variables en un Procedure
Source
1. string source = “&query = ‘Hola mundo con
procedure’”;
2. procedure.ProcedurePart.Source = source;
3. procedure.Save();
 Rules
1. procedure.Rules.Source = “parm(out:&variable);”;
2. procedure.Save();
Source y Rules en un Procedure
Artech.Architecture.Common.Objects
Artech.Architecture.UI.Framework.Services
Artech.Genexus.Common.Objects
Artech.Genexus.Common.Parts.SDT
1. SDT miSdt = SDT.Get(UIServices.KB.CurrentModel, “miSdt”);
2. if(miSdt == null){
3. miSdt = new SDT(UIServices.KB.CurrentModel);
4. miSdt.Parent = folder;
5. miSdt.Name = “miSdt”;
6. SDTLevel sdtLevel = miSdt.SDTStructure.Root;
7. sdtLevel.Name = “Item”;
8. sdtLevel.Items.Clear();
9. sdtLevel.IsCollection = true;
10.sdtLevel.CollectionItemName = “Item”;
Structured DataType
11. SDTItem item = new SDTItem(sdtLevel.SDTStructure);
12. item.Name = “item1”;
13. item.Type = eDBType.VARCHAR;
14. item.Length = 9999;
15. item.IsCollection = false;
16. sdtLevel.AddItem(item);
17. miSdt.Save();
Structured DataType
• Permite al desarrollador agregar funcionalidad a su
aplicación.
Ejemplo:
namespace iLauncher{
public class CLauncher{
public string server;
public string dbname;
public string user;
public string password;
public CLauncher(){}
public String ExecuteQueryToXml(string query){}
}
}
External Object
External Object
• ¿Cómo utilizamos el external object?
• &sqlQuery = ‘select * from ros’
• &sqlResult = &clauncher.ExecuteQueryToXml(&sqlQuery)
External Object
• Obtenemos todas las tablas:
IEnumerator<Table> tables =
Table.GetAll(UIServices.KB.CurrentModel).GetEnumerator();
• Recorremos todas las tablas:
while(tables.MoveNext()){
Table table = tables.Current;
}
Tablas y Campos
• Obtenemos todos los campos:
BaseCollection<TableAttribute> atts =
table.TableStructure.Attributes;
• Recorremos todos los campos:
foreach(TableAttribute att in atts){
string nameTable = att.Table.Name;
string nameAttribute = att.Name;
string descriptionAtributte = att.Attribute.Description;
}
Tablas y Campos
Validación
– Extensión para la realización de consultas dinámicas.
– Guía de implementación de extensiones.
• Indicadores
– Fácil instalación de la extensión.
– Fácil implementación de consultas dinámicas con la
extensión.
– Fácil comprensión de la guía de implementación.
– Ejemplos prácticos en la guía de implementación.
– Utilidad de la extensión.
Variables dependientes
• ¿Qué le pareció la instalación de la extensión?
Muy Fácil Fácil RegularDifícil Muy Difícil
• ¿Qué le pareció la programación para realizar consultas
dinámicas con la extensión?
Muy Fácil Fácil RegularDifícil Muy Difícil
• ¿Cómo califica en grado de utilidad a la extensión?
Muy útil Útil Regular Improductivo
• ¿Cómo le pareció la compresión de la guía de extensiones?
Muy Fácil Fácil RegularDifícil Muy Difícil
• ¿Qué le pareció los ejemplos de creación de objetos GeneXus en
la guía de extensiones?
Muy útil Útil Regular Improductivo
Encuesta
Encuesta
Nombre Ocupación
Eduardo Jorge Jasaui Torres Distribuidor GeneXus
Alfredo Zea García Calderón Analista – Programador GeneXus
Fiorella Rivera Calderón Analista – Programador GeneXus
Ana Belén Arista Huenonte Analista – Programador GeneXus
Lilian Loayza Analista – Programador GeneXus
Virgilio José Torres Otoya Analista – Programador GeneXus
• ¿Qué le pareció la instalación de la extensión?
Fácil instalación de la extensión
• ¿Qué le pareció la implementación para realizar
consultas dinámicas con la extensión?
Fácil implementación de consultas dinámicas
con la extensión.
• ¿Cómo le pareció la comprensión de la guía de
extensiones?
Fácil comprensión de la guía de
implementación.
• ¿Qué le pareció los ejemplos de creación de objetos
GeneXus en la guía de extensiones?
Ejemplos prácticos en la guía de
implementación.
• ¿Cómo califica en grado de utilidad a la extensión?
Utilidad de la extensión.
• PRIMERA la instalación de la extensión es fácil de
realizar por las personas que se ocupan del análisis y
desarrollo de sistemas de información en GeneXus
Ev2.
• SEGUNDA la extensión ayuda a implementar con
facilidad consultas dinámicas en aplicaciones hechas
por la herramienta GeneXus Ev2
Conclusiones
• TERCERA la guía de implementación de extensiones
ayudará a personas interesadas en desarrollar su
propia extensión debido a su fácil comprensión y sus
ejemplos prácticos.
• CUARTA la extensión ayudará a desarrolladores
interesados en implementar consultas dinámicas en
aplicaciones GeneXus debido a su gran utilidad.
Conclusiones
• QUINTA la programación de extensiones para la
herramienta GeneXus Ev2 es bastante similar a la de
aplicaciones convencionales.
• SEXTA la utilización de las librerías GeneXus para la
implementación de nuevas extensiones no es
complicada.
Conclusiones
Preguntas
MUCHAS
GRACIAS!!!

Más contenido relacionado

Similar a EXTENSIÓN PARA LA REALIZACIÓN DE BÚSQUEDAS DINÁMICAS Y GUÍA DE IMPLEMENTACIÓN PARA DESARROLLADORES DE GENEXUS EV2.

Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareturlahackers
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxAderMogollonLuna
 
Metodología de SI
Metodología de SIMetodología de SI
Metodología de SIsullinsan
 
02 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga2
02 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga202 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga2
02 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga2lizeth0331
 
Respuestas de analisis de sistema
Respuestas de analisis de sistemaRespuestas de analisis de sistema
Respuestas de analisis de sistemaMurcie Lago
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software142918
 

Similar a EXTENSIÓN PARA LA REALIZACIÓN DE BÚSQUEDAS DINÁMICAS Y GUÍA DE IMPLEMENTACIÓN PARA DESARROLLADORES DE GENEXUS EV2. (20)

UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Introduccion al desarrollo
Introduccion al desarrolloIntroduccion al desarrollo
Introduccion al desarrollo
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
case
casecase
case
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
 
Presentaciã³n1
Presentaciã³n1Presentaciã³n1
Presentaciã³n1
 
Metodología
MetodologíaMetodología
Metodología
 
Metodología de SI
Metodología de SIMetodología de SI
Metodología de SI
 
02 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga2
02 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga202 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga2
02 gfpi f-019 guia de aprendizaje ofimatica-f1 ap2 ga2
 
Respuestas de analisis de sistema
Respuestas de analisis de sistemaRespuestas de analisis de sistema
Respuestas de analisis de sistema
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
7984
79847984
7984
 

Último

Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 

Último (20)

Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 

EXTENSIÓN PARA LA REALIZACIÓN DE BÚSQUEDAS DINÁMICAS Y GUÍA DE IMPLEMENTACIÓN PARA DESARROLLADORES DE GENEXUS EV2.

  • 1. EXTENSIÓN PARA LA REALIZACIÓN DE BÚSQUEDAS DINÁMICAS Y GUÍA DE IMPLEMENTACIÓN PARA DESARROLLADORES DE GENEXUS EV2. UNIVERSIDAD CATÓLICA DE SANTA MARÍA FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICASY FORMALES PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS Tema: Autor: SONYYVAN GALLEGOS QUISPE Asesor deTesis: DR. GUILLERMO CALDERÓN RUIZ
  • 2.  INTRODUCCIÓN  EXTENSIÓN  GUÍA DE IMPLEMENTACIÓN.  VALIDACIÓN  CONCLUSIONES ESTRUCTURA
  • 4. ¿Qué es GeneXus Ev2 y para qué sirve?
  • 5. Base de Conocimiento Stakeholders Analista y programador Genexus Base de datos relacional Código fuente
  • 6. Problema GeneXus presenta la restricción que no se puede implementar aplicaciones que ayuden al usuario final a realizar consultas a sus bases de datos en forma dinámica.
  • 7. • Consulta SQL Select nombre, apellido, dni from persona • Consulta GeneXus For each &nombre = nombre &apellido = apellido &dni = dni endfor ¿Porqué existe el problema?
  • 8. • Consulta SQL Select nombre, apellido, dni from persona where dni = ‘45056272’ • Consulta GeneXus For each where dni = ‘45056272’ &nombre = nombre &apellido = apellido &dni = dni Endfor Consultas con condicionales
  • 9. • Consulta SQL Select nombre, apellido, dni from persona where dni in (‘A’, ‘B’ ,‘C’, ‘D’) • Consulta GeneXus For each where dni in (‘A’, ‘B’ ,‘C’, ‘D’) &nombre = nombre &apellido = apellido &dni = dni Endfor Consultas con condicionales
  • 10. Que sucede si… • Consulta SQL Select nombre, apellido, dni from persona where dni in • Consulta GeneXus For each where dni in &nombre = nombre &apellido = apellido &dni = dni Endfor
  • 11. Además… • Select nombre, apellido, dni from persona where dni in and ciudad in and ocupación in • For each where dni in and ciudad in and ocupación in &nombre = nombre &apellido = apellido &dni = dni Endfor
  • 13. • La extensión debe permitir al desarrollador su fácil instalación en el entorno de desarrollo integrado de GeneXus Ev2. • La extensión debe brindar al desarrollador una solución fácil de implementar consultas dinámicas. • La extensión debe utilizar objetos de la herramienta GeneXus Ev2 en su propuesta de la solución. Objetivos de la extensión
  • 14. • Segundo problema: No existe documentación formal que ayude a desarrollar la extensión. Pero…¿como se hace una extensión?
  • 15. • Objetivo: – La guía de implementación debe ofrecer ejemplos prácticos para su fácil comprensión. Guía de implementación
  • 17. – El Usuario podrá generar la consulta con las tablas y atributos que elija. – El Usuario podrá ejecutar la consulta en tiempo de diseño. – El Usuario podrá guardar la consulta. Requerimientos funcionales
  • 18. – El Usuario podrá visualizar las consultas que están almacenadas. – El Usuario podrá deshacer todas las acciones realizadas, limpiando todos los objetos que se muestran en pantalla. – El Usuario podrá invocar la ejecución de la consulta en tiempo de ejecución de la aplicación. Requerimientos funcionales
  • 19. – La invocación del método de ejecución de la consulta debe ser programada según la lógica del desarrollador. – El resultado de la consulta debe ser devuelto en formato de lenguaje de marcas extensible. – La consulta debe ser guardada en el objeto Procedure de GeneXus para obtenerla cuando se le requiera. – El resultado de la consulta debe ser tomado y mostrado por el objeto GeneXus Structured Data Type. Requerimientos no funcionales
  • 20. Diagrama de caso de uso general
  • 23. • Programar con extensión Diagramas de secuencia
  • 27. – ¿Para qué sirve? – ¿Cómo conseguirlo? Identificador único global
  • 28. – El instalador se encuentra en el centro de descargas de GeneXus: http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,8, 8,O,,0,,%202707 – Al instalarse se crean los siguientes directorios y archivos: • Bin • PackageBuilder • PatternBuilder • Patterns • Samples • Schemas Instalación de la plataforma de desarrollo.
  • 30. Artech.Architecture.Common.Objects Artech.Architecture.UI.Framework.Services 1. if(UIServices.KB != null && UIServices.KB.CurrentModel != null){ 2. Folder folder = Folder.Get(UIServices.KB.CurrentModel, “iQueries”); 3. if (folder == null){ 4. folder = new Folder(UIServices.KB.CurrentModel); 5. folder.Parent = Folder.GetRoot(UIServices.KB.CurrentModel); 6. folder.Name = “iQueries”; 7. folder.Save(); } } Folder
  • 31. Artech.Architecture.Common.Objects Artech.Architecture.UI.Framework.Services Artech.Genexus.Common.Objects Artech.Genexus.Common 1. Procedure procedure = Procedure.Get(UIServices.KB.CurrentModel, “MiProcedimiento”); 2. if (procedure == null){ 3. procedure = new Procedure(UIServices.KB.CurrentModel); 4. procedure.Name = “MiProcedimiento”; 5. procedure.Parent = folder; 6. procedure.Save(); } procedure.Parent = Folder.GetRoot(UIServices.KB.CurrentModel); Procedure
  • 32. 1. Variable variable = new Variable(procedure.Variables); 2. variable.Name = “query”; 3. variable.Type = eDBType.VARCHAR; 4. variable.Length = 9999; 5. procedure.Variables.Add(var); 6. procedure.Save(); Variables en un Procedure
  • 33. Source 1. string source = “&query = ‘Hola mundo con procedure’”; 2. procedure.ProcedurePart.Source = source; 3. procedure.Save();  Rules 1. procedure.Rules.Source = “parm(out:&variable);”; 2. procedure.Save(); Source y Rules en un Procedure
  • 34. Artech.Architecture.Common.Objects Artech.Architecture.UI.Framework.Services Artech.Genexus.Common.Objects Artech.Genexus.Common.Parts.SDT 1. SDT miSdt = SDT.Get(UIServices.KB.CurrentModel, “miSdt”); 2. if(miSdt == null){ 3. miSdt = new SDT(UIServices.KB.CurrentModel); 4. miSdt.Parent = folder; 5. miSdt.Name = “miSdt”; 6. SDTLevel sdtLevel = miSdt.SDTStructure.Root; 7. sdtLevel.Name = “Item”; 8. sdtLevel.Items.Clear(); 9. sdtLevel.IsCollection = true; 10.sdtLevel.CollectionItemName = “Item”; Structured DataType
  • 35. 11. SDTItem item = new SDTItem(sdtLevel.SDTStructure); 12. item.Name = “item1”; 13. item.Type = eDBType.VARCHAR; 14. item.Length = 9999; 15. item.IsCollection = false; 16. sdtLevel.AddItem(item); 17. miSdt.Save(); Structured DataType
  • 36. • Permite al desarrollador agregar funcionalidad a su aplicación. Ejemplo: namespace iLauncher{ public class CLauncher{ public string server; public string dbname; public string user; public string password; public CLauncher(){} public String ExecuteQueryToXml(string query){} } } External Object
  • 38. • ¿Cómo utilizamos el external object? • &sqlQuery = ‘select * from ros’ • &sqlResult = &clauncher.ExecuteQueryToXml(&sqlQuery) External Object
  • 39. • Obtenemos todas las tablas: IEnumerator<Table> tables = Table.GetAll(UIServices.KB.CurrentModel).GetEnumerator(); • Recorremos todas las tablas: while(tables.MoveNext()){ Table table = tables.Current; } Tablas y Campos
  • 40. • Obtenemos todos los campos: BaseCollection<TableAttribute> atts = table.TableStructure.Attributes; • Recorremos todos los campos: foreach(TableAttribute att in atts){ string nameTable = att.Table.Name; string nameAttribute = att.Name; string descriptionAtributte = att.Attribute.Description; } Tablas y Campos
  • 42. – Extensión para la realización de consultas dinámicas. – Guía de implementación de extensiones. • Indicadores – Fácil instalación de la extensión. – Fácil implementación de consultas dinámicas con la extensión. – Fácil comprensión de la guía de implementación. – Ejemplos prácticos en la guía de implementación. – Utilidad de la extensión. Variables dependientes
  • 43. • ¿Qué le pareció la instalación de la extensión? Muy Fácil Fácil RegularDifícil Muy Difícil • ¿Qué le pareció la programación para realizar consultas dinámicas con la extensión? Muy Fácil Fácil RegularDifícil Muy Difícil • ¿Cómo califica en grado de utilidad a la extensión? Muy útil Útil Regular Improductivo • ¿Cómo le pareció la compresión de la guía de extensiones? Muy Fácil Fácil RegularDifícil Muy Difícil • ¿Qué le pareció los ejemplos de creación de objetos GeneXus en la guía de extensiones? Muy útil Útil Regular Improductivo Encuesta
  • 44. Encuesta Nombre Ocupación Eduardo Jorge Jasaui Torres Distribuidor GeneXus Alfredo Zea García Calderón Analista – Programador GeneXus Fiorella Rivera Calderón Analista – Programador GeneXus Ana Belén Arista Huenonte Analista – Programador GeneXus Lilian Loayza Analista – Programador GeneXus Virgilio José Torres Otoya Analista – Programador GeneXus
  • 45. • ¿Qué le pareció la instalación de la extensión? Fácil instalación de la extensión
  • 46. • ¿Qué le pareció la implementación para realizar consultas dinámicas con la extensión? Fácil implementación de consultas dinámicas con la extensión.
  • 47. • ¿Cómo le pareció la comprensión de la guía de extensiones? Fácil comprensión de la guía de implementación.
  • 48. • ¿Qué le pareció los ejemplos de creación de objetos GeneXus en la guía de extensiones? Ejemplos prácticos en la guía de implementación.
  • 49. • ¿Cómo califica en grado de utilidad a la extensión? Utilidad de la extensión.
  • 50. • PRIMERA la instalación de la extensión es fácil de realizar por las personas que se ocupan del análisis y desarrollo de sistemas de información en GeneXus Ev2. • SEGUNDA la extensión ayuda a implementar con facilidad consultas dinámicas en aplicaciones hechas por la herramienta GeneXus Ev2 Conclusiones
  • 51. • TERCERA la guía de implementación de extensiones ayudará a personas interesadas en desarrollar su propia extensión debido a su fácil comprensión y sus ejemplos prácticos. • CUARTA la extensión ayudará a desarrolladores interesados en implementar consultas dinámicas en aplicaciones GeneXus debido a su gran utilidad. Conclusiones
  • 52. • QUINTA la programación de extensiones para la herramienta GeneXus Ev2 es bastante similar a la de aplicaciones convencionales. • SEXTA la utilización de las librerías GeneXus para la implementación de nuevas extensiones no es complicada. Conclusiones