SlideShare una empresa de Scribd logo
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.

UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
GermnAurelioOrtizBal
 
Introduccion al desarrollo
Introduccion al desarrolloIntroduccion al desarrollo
Introduccion al desarrollo
carlosmaqueracori
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
turlahackers
 
case
casecase
Ciclo de vida
Ciclo de vidaCiclo 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
AderMogollonLuna
 
Presentaciã³n1
Presentaciã³n1Presentaciã³n1
Presentaciã³n1
saulgerardo21
 
Metodología de SI
Metodología de SIMetodología de SI
Metodología de SI
sullinsan
 
Metodología
MetodologíaMetodología
Metodología
Jose Solorzano
 
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
lizeth0331
 
Respuestas de analisis de sistema
Respuestas de analisis de sistemaRespuestas de analisis de sistema
Respuestas de analisis de sistema
Murcie Lago
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
mat3matik
 
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
nelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
Marilupe
 
Clase 11
Clase 11Clase 11
Clase 11
Julieta M
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
142918
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
samantha
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
erikapoh
 
7984
79847984

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 de SI
Metodología de SIMetodología de SI
Metodología de SI
 
Metodología
MetodologíaMetodología
Metodología
 
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
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
7984
79847984
7984
 

Último

Semana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdfSemana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdf
SandyCuenca
 
Aletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicosAletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicos
FrancelisFernandez
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
MONICADELROCIOMUNZON1
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
Clase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieriaClase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieria
leonidasbajalquepuch
 
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtualSESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
JuanGavidia2
 
Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...
Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...
Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...
andressalas92
 
Aletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptxAletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptx
jeffersoncolina427
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
elsanti003
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
KruggerCossio1
 
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Eliana Gomajoa
 
Estructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegaciónEstructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegación
AlvaroEduardoConsola1
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
BrusCiriloPintoApaza
 
Presentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdfPresentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdf
jdcumarem02
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de PlantasDISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
HalmarMiranda
 

Último (20)

Semana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdfSemana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdf
 
Aletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicosAletas (Superficies extendidas) y aislantes térmicos
Aletas (Superficies extendidas) y aislantes térmicos
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
Clase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieriaClase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieria
 
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtualSESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
SESIÓN 3 ÓXIDOS-HIDRÓXIDOS trabajo virtual
 
Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...
Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...
Libro Epanet, guía explicativa de los pasos a seguir para analizar redes hidr...
 
Aletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptxAletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptx
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
 
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
 
Estructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegaciónEstructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegación
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
 
Presentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdfPresentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdf
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de PlantasDISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
 

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