tesina shoensttath sainz trujillo
TRANSCRIPT
1
UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE
INGENIERÍA EN INFORMÁTICA
Tesina “Implementación de un sistema para comunicados en el checador de la
empresa, con lenguaje progress 4gl”
Autor:
Sainz Trujillo Shoensttath Guadalupe.
Asesor: M. C. Andrés Echeagaray Osuna
Asesor OR:
Lic. Cesar Alberto López Bernal
Mazatlán, Sinaloa 8 de Diciembre de 2015
2
3
4
5
6
Contenido Índice de figuras ....................................................... ¡Error! Marcador no definido.
Resumen ................................................................................................................. 8
Abstract ................................................................................................................... 8
Introducción ............................................................................................................. 9
Capítulo I ............................................................................................................ 10
1.1 Antecedentes ........................................................................................... 10
1.1.1 Localización ........................................................................................... 10
1.1.2 Organigrama. ......................................................................................... 14
1.1.3 Misión .................................................................................................... 15
1.1.4 Visión ..................................................................................................... 15
1.2 Planteamiento del problema ............................................................................ 15
1.2.1 Propuesta de investigación. ................................................................... 15
1.2.2 Objetivos generales. .............................................................................. 16
1.2.3 Objetivos específicos. ............................................................................ 16
1.2.4 Preguntas de investigación. ................................................................... 16
1.2.5 Hipótesis. ............................................................................................... 17
1.1.6 Limitaciones y supuestos ....................................................................... 17
1.1.7 Relevancia. ............................................................................................ 17
Capitulo II .............................................................................................................. 18
2.1 Marco teórico ................................................................................................... 18
2.1.1 Antecedentes ......................................................................................... 18
8
Índice de figuras
Figura (1). Ejemplo de una interfaz de progress 16
Figura 2. Logotipo del lenguaje progress 20
Figura 3. Aplicaciones de progress 20
Figura 4. Ejemplo pantalla progress 23
Figura 5. Ejemplo 2 pantallas progress 23
Figura 6. Ejemplo pantalla del proyecto asignado por la empresa 24
Figura 7. Flujo de información 25
Figura 8. Entrada de datos 26
Figura 9.diseño del primer catálogo 27
Figura 10.diseño del primer catálogo 28
Figura 11. Interfaz de búsqueda en la base de datos 29
Figura 12. Interfaz donde se muestra lo tecleado en el browser 30
Figura 13. Ejemplo de la interfaz del catálogo 1 30
Figura 14. Base de datos 31
Figura 15. Base de datos relacional 34
Figura 16.paso1para Crear base de datos 34
Figura 17. Paso 2 35
Figura 18. Paso 3 35
Figura 19. Tablas progress 36
Figura 20. Crear campos en tabla 37
Figura 21.botones 39
Figura 22. Fil-in 40
Figura 23. Ejemplo de la hoja de Excel 41
Figura 24. Diseño final 42
9
Resumen
En el presente trabajo se realizará el desarrollo de un software para
la comunicación con los empleados en la empresa el hotel el CID resort,
utilizando principalmente el lenguaje de programación llamado progress el cual es
un lenguaje de desarrollo de aplicaciones de negocio de cuarta generación.
El presente documento estará orientado a presentar un software
dinámico con el cual los trabajadores podrán ver los más recientes eventos en la
empresa. Por medio de este sistema la empresa se comunicará con los
empleados. Cuando los trabajadores lleguen a checar su hora de entrada se les
mostrarán los mensajes.
.
Abstract
In this paper is about the development of software for communication with
employees in the resort of El Cid Company will take place mainly using the
programming language called progress which is a development language
Business Applications of fourth generation.
This document will aim to present dynamic software with which workers can
view the most recent events in the company. Through this system the company
will communicate with employees. When workers come to check their time of
entry they will be shown messages.
Palabras clave: Progress, 4GL, desarrollo, software, mensajes, base de datos.
10
Introducción
La empresa hotel el cid ocupa un sistema para informar a sus
empleados acerca de los eventos, informes y mensajes que ocurren u ocurrirán
en la empresa por lo que se estableció realizar el sistema para la creación de
mensajes en el control de asistencia de empleados puesto que así todos los
empleados podrán ser informados en el momento en que chequen su asistencia.
Se podrán dar mensajes por empresa, por departamento, por área o por unidad
de negocio en la cual el usuario debe decidir si lo mandara en general o si desea
enviarlo a una persona en específico.
El objetivo de este documento es proporcionar una vista de la
metodología que se utilizara para hacer el sistema y todo lo relacionado con el
lenguaje progress.
El documento dará información acerca de lo que es el lenguaje de
cuarta generación llamado progress, como también un poco de su historia y su
sintaxis ya que este lenguaje no es muy conocido para nuestra generación y del
cual es importante saber, ya que es un lenguaje muy robusto con su propia base
de datos lo que hace que sea utilizado en empresas grandes las cuales manejan
muchos datos.
Lo que se logra hacer con este proyecto es llevar un control en los mensajes que
se le dan a los empleados del hotel el CID. Así haciendo de manera más
organizada la comunicación en dicha empresa.
10
Capítulo I
1.1 Antecedentes
1.1.1 Localización
Macro localización
Extensión
Territorio: México abarca una extensión territorial de 1, 964,375 km2, de
los cuales 1, 959,248 km2 son superficie continental y 5,127 km2 son superficie
insular. A este territorio debe añadirse la Zona Económica Exclusiva de mar
territorial, que abarca 3, 149,920 km2, por lo que la superficie total del país es de
5,114,295 km2.
11
Fronteras
La República Mexicana tiene fronteras con: Estados Unidos de América,
Guatemala y Belice a lo largo de un total de 4,301 kilómetros distribuidos de la
siguiente forma:
∉ Con Estados Unidos de América, se extiende una línea fronteriza a lo largo
de 3,152 km desde el Monumento 258 al noroeste de Tijuana hasta la
desembocadura del Río Bravo en el Golfo de México. Son estados
limítrofes al norte del país: Baja California, Sonora, Chihuahua, Coahuila,
Nuevo León y Tamaulipas.
∉ Con Guatemala la frontera tiene una extensión de 956 km, siendo estados
limítrofes: Chiapas, Tabasco, Campeche y Quintana Roo.
∉ Con Belice la frontera terrestre es de 193 km y el límite marítimo es de
85.266 km, la Bahía de Chetumal. El estado fronterizo con Belice es
Quintana Roo.
Litorales
México tiene 11 122 km de litoral continental bañado por dos grandes
océanos, el Pacífico y el Atlántico, tanto a la parte del golfo de México como al
mar Caribe. Diecisiete entidades federativas tienen litoral y quince no lo
tienen: Chihuahua, Coahuila de Zaragoza, Nuevo León, Durango, Zacatecas, San
Luis Potosí, Aguascalientes, Guanajuato, Querétaro, Estado de Hidalgo,
Puebla, Estado de México, Distrito Federal, Tlaxcala y Morelos
12
Mazatlán Sinaloa
Mazatlán es una ciudad del noroeste de la República Mexicana y cabecera del
municipio del mismo nombre. Fundada en 1531 está situada en el estado de
Sinaloa y es la segunda en importancia de la entidad.
Actualmente este puerto es uno de los destinos turísticos de playa más
importantes de México. Se ubica a 21 kilómetros al sur del Trópico de Cáncer y
colinda al norte con el municipio de Concordia y al poniente con el litoral del
Océano Pacífico. Es también conocida como "La Perla del Pacífico" por el clima
cálido, el mar, su gente, sus riquezas naturales y sus paradisíacas playas.2 La
ciudad se ha ido extendiendo con nuevas colonias, infraestructura, complejos
turísticos y muchos kilómetros de playa localizada a lo largo de la zona costera
que recorre 17 kilómetros.
13
Micro localización. NOMBRE DE LA INSTITUCION:
El Cid Resorts
DOMICILIO:
El Cid Mazatlán, S.A. de C.V con domicilio en Av. Camarón Sábalo S/N, C.P.
82110, Mazatlán Sinaloa, México.
INFORMACION SOBRE LA INSTITUCION:
14
1.1.2 Organigrama.
15
1.1.3 Misión
Ofrecer insuperables experiencias vacacionales y residenciales
mediante la creación, adquisición, comercialización y operación de
productos y servicios turísticos integrales aportando siempre:
∉ Beneficio permanente para nuestros accionistas.
∉ Calidad de vida para nuestros empleados
∉ Y valor agregado a la comunidad en armonía con el medio
ambiente.
1.1.4 Visión
Triplicar nuestras ventas y diversificarnos en comercialización y/u
operación, en al menos cuatro diferentes destinos de playa,
manteniendo una estructura financiera sana que garantice una
rentabilidad adecuada con un periodo de recuperación no mayor a
cuatro años.
1.2 Planteamiento del problema
1.2.1 Propuesta de investigación.
Crear y mejorar los procesos dentro de la empresa por medio
de desarrollo de sistemas, además de ser de ayuda en el área de desarrollo
del departamento de sistemas en la empresa el hotel el cid, trabajando
principalmente en el lenguaje progress.
16
1.2.2 Objetivos generales.
En la empresa hotel el cid se tiene como objetivo crear un
sistema hecho a medida por medio de la programación en progress para dicha
empresa con el cual se optimizará el proceso de comunicación con los
trabajadores.
1.2.3 Objetivos específicos.
1. Crear un sistema con el cual los trabajadores del el hotel
el cid se podrán comunicar de manera más práctica y
sencilla por medio de su asistencia a la empresa.
2. El uso y entendimiento del lenguaje de programación de
cuarta generación “progress”.
1.2.4 Preguntas de investigación.
¿Qué herramientas se utilizara en el desarrollo del sistema?
¿Cuál será la importancia del sistema?
¿Qué es progress?
17
1.2.5 Hipótesis.
Si se desarrolla el sistema de mensajes en el control de
asistencia de empleados la comunicación de los altos mandos con sus
trabajadores será mejor, más fácil y más dinámica, mostrando una respuesta
inmediata ya que no tendrán necesidad de ir buscando a cada uno de sus
empleados.
1.1.6 Limitaciones y supuestos.
Una de las limitaciones es el poco conocimiento acerca del
lenguaje de programación porgress y su sintaxis.
Las políticas de la empresa acerca del manejo de la información
que se utilizará en el sistema.
1.1.7 Relevancia.
Creación de sistema útil en la empresa para hacer de los
procesos internos más dinámicos y de mejor ayuda a los trabajadores así
como también el crecimiento académico al aprender otro lenguaje de
programación.
18
Capitulo II
2.1 Marco teórico 2.1.1 Antecedentes
OpenEdge ABL (progress 4gl) es un lenguaje de cuarta generación para el
desarrollo de aplicaciones de negocio creada y mantenida por Progress Software
Corporation (PSC). El lenguaje utiliza una sintaxis en inglés para simplificar el
desarrollo de software [online].
Desde 1981 progress software ha estado comprometido con la entrega de
innovaciones de software líderes en el mercado que permiten a los socios y
clientes para mejorar dramáticamente el desarrollo, despliegue, integración y
gestión de sus aplicaciones de negocio.
Progress ayuda a los desarrolladores a crear aplicaciones opcionalmente
utilizando su propia base de datos relacional y la herramienta de programación,
estas aplicaciones son portables a través de sistemas informáticos y permite el
acceso a diversas fuentes de datos populares sin tener que aprender los
subyacentes de acceso a datos. Esto significa que el usuario final de estos
productos puede no ser consciente de la arquitectura subyacente.
Mediante la combinación de un lenguaje de cuarta generación y base de datos
relacional OpenEdge ABL permite el uso del desarrollo rápido de aplicaciones
modelo (RAD) para el desarrollo de un software. Un programador e incluso los
usuarios finales pueden hacer prototipos rápidos mediante las herramientas
integradas y GUI del entorno de desarrollo [online].
19
Las ventajas de los lenguajes de cuarta generación:
1. permiten elaborar programas en menor tiempo, lo que conlleva a un
aumento de la productividad.
2. El personal que elabora software sufre menos agotamiento, ya que
generalmente requiere escribir menos.
3. El nivel de concentración que se requiere es menor, ya que algunas
instrucciones, que le son dadas a las herramientas, a su vez,
engloban secuencias de instrucciones a otro nivel dentro de la
herramienta.
4. Cuando hay que dar mantenimiento a los programas previamente
elaborado, es menos complicado por requerir menor nivel de
concentración.
Desventajas:
1. Las herramientas prefabricadas generalmente son menos flexibles que el
lenguaje de bajo nivel.
2. A menudo no cumplen con estándares internacionales ISO ANSI. Por este
motivo invertir tiempo y dinero es un riesgo a futuro, porque no se sabe a
ciencia cierta cuanto tiempo permanecerá la herramienta y su fabricante en
el mercado.
Los lenguajes de cuarta generación o bien 4GL son herramientas encargadas de
optimizar el desarrollo de software automatizando la creación de este. Se han
utilizado principalmente en la generación de código para GUI y además en la
implementación de programas que facilitan las tareas de los desarrolladores y
clientes. La base de los 4GL es que el usuario no dice como se harán las cosas,
solo brinda parámetros y el programa se encargara de generar lo solicitado por el
usuario, sea esto desde generación de reportes de bases de datos a sol ucionar un
problema matemático.
20
El término “Lenguajes de Cuarta Generación” (4GL) fue primeramente usado para
describir a los lenguajes de especificación, que son lenguajes de alto nivel no
procedurales (el usuario define qué se debe hacer, no cómo debe hacerse), la
denotación 4GL fue utilizada por primera vez por James Martín en 1982. Los
lenguajes RPG de IBM e Informatics de IBM, y MARK-IV respectivamente pueden
ser considerados los primeros lenguajes de este tipo [online].
Los lenguajes de cuarta generación contemplan un gran grado de abstracción que
viene a crear una verdadera caja negra pues el programador no dice como se
realizaran las aplicaciones que se desee crear, nada más dará una serie de
parámetros que aunque dependen del programa que se quiera crear siempre van
a estar muy alejados de la máquina o hardware, esta ha sido la tendencia a seguir
con cada generación de los lenguajes de programación [online].
En progress se trabaja con: Windows: Contienen elementos de la interface de usuario. Estos se generan
cuando se usa el App Builder para crear la ventana principal del programa.
Browser: Es una lista de selección de registros de la base de datos. Frame: es un área rectangular que Progress usa para desplegar objetos a nivel de
campo.
Viewer: procedimientos, vista de la base de datos en campos etc.
21
Figura (1). Ejemplo de una interfaz de progress Aplicaciones de progress:
Data Dictionary
-Creación y manipulación de las estructuras de la base de datos.
-Permite administrar la conexión a la base de datos.
Procedure Editor:
Es un editor de texto con el cual se escribe el código del procedimiento, se corrige
la sintaxis, se compilan y se corren los programas.
Data Administration: Esta herramienta permite ejecutar diferentes tareas relacionadas con la
administración de datos tales como:
∉ Crear, conectar y desconectar base de datos.
∉ Descargar, cargar y exportar las definiciones de datos.
∉ Establecer la seguridad de la base de datos
∉ Así como proveer acceso a las utilerías del servidor de datos cuando está en uso.
Application Compiler:
-Permite compilar uno o varios programas asociados con una aplicación en un
simple paso.
Windows
Browser
Viewer
22
Pro tolos: -Ejecuta un grupo de utilerías para auxiliar en el desarrollo y ejecución de
aplicaciones en progress
AppBuilder: -Facilita la creación de objetos de interface con el usuario.
-Genera y administra el código involucrado con la interface desarrollada.
Report Builder:
Se usa para definir reportes de los usuarios. Permite incorporar reportes
predefinidos en una aplicación.
2.1.2 Sintaxis básica de progress
En la siguiente tabla se listan los componentes de la sintaxis del lenguaje de
PROGRESS.
23
Símbolos especiales
En PROGRESS se utilizan los siguientes símbolos en sus procedimientos:
24
Objetos de interface de usuario Un objeto de interface de usuario (UI) permite desplegar gráficamente los datos en
la pantalla. La siguiente tabla lista algunos de los elementos que se pueden usar
cuando se trabaja con objetos:
Uso de variables
Para poder usar una variable en PROGRESS, es necesario primero definirla,
declarando su tipo y opcionalmente la forma en que se desplegará y
posteriormente se le deben asignar los valores correspondientes. La definición de
una variable reserva espacio para ella en un buffer similar al buffer de registro
(llamado buffer de variable)
Definición de variables Cuando se define una variable, se debe especificar si es una sola variable o una
matriz describirla indicando el tipo de dato, valor inicial (si debe llegar alguno),
etiqueta y los colores del fondo y primer plano, así como la forma en que se
visualizará usando algún tipo de objeto de la U
25
Figura 2. Logotipo del lenguaje progress.
Figura 3. Aplicaciones de progress
26
Lenguajes de cuarta generación
Los Lenguajes de Cuarta Generación tienden a ser muy compatibles entre sus
mismas evoluciones lo que nos permite crear aplicaciones con la confianza de que
el trabajo realizado no será desechado más adelante.
Es importante resaltar que para utilizar un 4GL se debe tener claro que si se
desea manipular para sacarle un mayor rendimiento, se debe de hacer cambiando
la forma normal de hacer software. Para esto, los programadores deben de
volverse analistas, deben dominar técnicas estructuradas, conceptos de diseño de
interfaz gráfica, conceptos de arquitectura, conceptos de orientación a objetos y de
principios de diseño. Y todo esto para poder obtener una mayor productividad, una
mayor facilidad al dar mantenimiento y además una mejor apariencia de la
aplicación.
SheerPower4GL PowerBuilder
WinDev Progress4GL SQL
Oracle Reports MatLab
27
Capitulo III Diseño y desarrollo
3.1 Análisis
En este capítulo están plasmadas las necesidades que fueron identificadas
durante cada etapa de recolección de información, como los requerimientos del
sistema y con los cuales se pudo moldear el dominio de acuerdo al problema
planteado inicialmente.
Para el desarrollo del sistema de mensajería en el control de asistencia
para personal de la empresa que se realizó por medio del lenguaje de
programación progress y una base de datos la cual está incluida en el lenguaje, se
desarrollaron dos catálogos uno para crear los mensajes y el siguiente para
guardar dichos mensajes, en los cuales por privacidad de la empresa no se
pueden poner pantallas ni campos relacionados con los catálogos así mismo
realizar interfaz hacia el usuario en la cual ellos al poner su huella en el sistema
les aparecerá el mensaje que se les requieran comunicar, la cual por falta de
tiempo no se pudo realizar, con la ayuda de nuestro superior realizamos las
pantallas correspondientes ya que para nosotros era un lenguaje nuevo y con
diferente forma de manejar y diferente sintaxis.
El sistema que realizamos esta hecho a las especificaciones y necesidades de la
empresa, para realizarlo se nos asignó las tareas que debíamos cumplir, junto con
las herramientas necesarias para culminarlo, al analizar un lenguaje de
programación poco conocido se dificulto la realización de este por la falta de
información de dicho lenguaje además de las políticas de privacidad de la
empresa “el cid resorts”, ya que no podemos revelar información relacionada con
los campos trabajados.
28
Aquí se muestran algunos ejemplos de lo que es la interfaz de progres, estas
imágenes son sacadas de internet
Figura 4. Ejemplo pantalla progress.
29
Figura 5. Ejemplo 2 pantallas progress.
Figura 6. Ejemplo pantalla del proyecto asignado por la empresa.
3.2 Diseño de interfaces
En este capítulo Se realizan los diseños de datos, arquitectónico, de interfaz y
funcional. Este capítulo es el Documento para la Especificación del Diseño del
proyecto.
Para realizar el diseño de la interfaz del sistema se tienen en cuenta las posibles
conexiones que tendrá ésta, tanto las internas entre sus módulos o funciones,
como las externas como usuarios del sistema.
30
Interfaz interna La interfaz interna hace referencia al flujo de información que fluye entre los
módulos del sistema.
En nuestro caso la interfaz interna consistirá en especificar para cada función del
sistema los datos que acepta como entrada, los datos que produce como salida,
las tablas de la base de datos que utiliza o actualiza y las posibles excepciones o
mensajes de cualquier tipo que pueden producirse durante la ejecución de la
función.
Figura 7. Flujo de información
31
Figura 7. Entrada de datos.
Todos estos datos que constituyen la interfaz interna del sistema se recogen en la
especificación detallada de las funciones y procedimientos que se realiza al
momento de la interacción con los usuarios.
32
Interfaz externa La interfaz externa hace referencia a las conexiones del sistema con trabajadores
de información externos al programa. Una interfaz externa es la pantalla del
ordenador.
Todos los datos que entran o salen del sistema lo harán a través de la interfaz
mostrada en la pantalla. Para poder introducir y visualizar datos será necesario
habilitar una casilla de texto para cada campo de las tablas de la base de datos,
cada casilla irá acompañada de una etiqueta identificando dicho campo. Además
será necesario habilitar una lista para mostrar los resultados de consultas
consistentes en listados.
Una interfaz externa es la pantalla del ordenador, parte de un programa que
permite el flujo de información entre un usuario y la aplicación, o entre la
aplicación y otros programas o periféricos. Esa parte de un programa está
constituida por un conjunto de comandos y métodos que permiten estas
intercomunicaciones [online].
Figura 9.diseño del primer catálogo.
Campo 1
Campo 2
Tabla donde se muestra lo que está en la base de datos
33
Campo 1
Campo 2
Tabla donde se muestra lo que está en la base de datos
Campos llenados desde la base de datos
En este catálogo (figura 8) solo se ingresaran los mensajes para ser usados como
referencias y así agilizar la entrada de los mensajes.
Interfaz de usuario
A los usuarios del sistema se les supone el conocimiento informático mínimo para
saber rellenar campos con los datos adecuados y para moverse dentro del
sistema
Figura 10.diseño del primer catálogo.
34
Al ingresar un mensaje al segundo catalogo este se ira directamente a la base de
datos donde se guardara para que después sea mostrada en el sistema de control
de empleados.
3.3 Interfaz de los catálogos
Figura 11. Interfaz de búsqueda en la base de datos.
En esta pantalla se realizara la búsqueda de lo que se encuentra en la base de
datos para así reflejarlo en la tabla que se encuentra en el browser y así hacer los
procesos necesarios o que se requieran dentro del sistema , pero los campos de
la tabla se encuentran tachados por cuestiones de privacidad en la empresa.
35
Para esto estas pantallas llevan varios procedimientos con los cuales la
información se muestra en la tabla, para ello se utilizan lo que viene siendo for
each que en SQL es un SELECT FROM… y aquí mostrare su sintaxis.
FOR EACH xtabla WHERE xtable.xcampo= {&SELF-NAME} (ES LO QUE SE
INSERTO) NO-LOCK.
Figura 12. Interfaz donde se muestra lo tecleado en el browser.
En esta pantalla se refleja lo tecleado en el browser para así mostrarlo y poderlo
editar o en otro caso crear un nuevo registro pero antes de eso tiene que buscarlo,
como se mencionó arriba progress trabaja con tres partes que son Windows,
browser y viewer y cada uno de ellos se debe comunicar por lo tanto el browser
debe decir que metieron información y esa información el viewer la debe mostrar
para así hacer lo que el usuario requiera.
36
Figura 13. Ejemplo de la interfaz del catálogo 1.
Debido a las políticas de privacidad no se puede poner el catálogo de detalles,
pero este es un ejemplo en el cual solamente se llena una tabla con los registros y
con los detalles de los mensajes y hace de estos se utilicen otra vez.
37
3.4 Base de datos Base de Datos: es una colección de información interrelacionada así como un
conjunto de programas para tener acceso a dicho datos, usada para las
aplicaciones de una organización.
El objetivo de una base de datos es proporcionar un entorno que sea conveniente
y eficiente para extraer y almacenar información.
Figura 14. Base de datos.
38
3.4.1 problemas al no utilizar base de datos
Algunos de los problemas que se presentan cuando no se utiliza una base de
datos son:
• Redundancia e inconsistencia de los datos: Debido a que los archivos de
programas de aplicaciones son creados por diferentes personas a través del
tiempo, puede ocurrir que los archivos tengan diferente formato o se encuentren
duplicados, de la misma manera puede ocurrir que los programas para acceder a
la información se encuentre en más de un sitio.
• Desarrollos de múltiples aplicaciones para la recuperación de la información: Un sistema de información basado en Base de datos pretende desarrollar
aplicaciones de uso general para la recuperación de la información, tratando de
establecer estándares tanto en las aplicaciones como en la forma de almacenar
los datos.
• Proliferación de archivos: Pretende aislar los datos de las aplicaciones para un
mejor control de tal manera que no se tenga que modificar la estructura de la Base
de datos cuando se desarrolle una nueva aplicación.
• Evitar el acceso simultáneo de los usuarios a la misma información: Control de
acceso a la información para evitar su inconsistencia, permitiendo que solamente
un usuario tenga acceso a los datos y colocando candados hasta que estos sean
liberados.
• Problemas de seguridad: Implantar las restricciones de seguridad para tener
acceso a los datos.
• Problemas de integridad: Colocar restricciones de consistencia de datos.
39
3.4.2 Base de datos progress 4gl
Es una herramienta iterativa basada en ventanas con la que se puede crear,
modificar y eliminar base de datos de PROGRESS, también se pueden generar
reportes del esquema dela base de datos.
Cuando se mueven datos entre la Base de datos y la interface de usuario.
PROGRESS utiliza las buffers de memoria: El buffer de registro y el buffer de
pantalla. Los estatutos de PROGRESS mueven los datos entre la base de datos,
el buffer de registro, el buffer de pantalla y cualquier dispositivo de entrada / salida
que use el usuario.
Buffer de pantalla El buffer de pantalla es una abstracción para almacenar los
datos de todos los dispositivos de entrada / salida. Esto no indica que se
representan los datos únicamente en la pantalla, aunque en la mayoría de los
casos este sea el dispositivo de entrada / salida más usado. Por lo tanto, el buffer
de pantalla se usa para indicar entrada o salida desde: la pantalla. CRT o
cualquier otro monitor; la impresora o plotter el usuario, incluyendo el teclado, el
mouse o cualquier otro dispositivo de entrada [online].
PROGRESS utiliza una base de datos relacional. Base de datos relacional es un tipo de base de datos (BD) que cumple con el
modelo relacional (el modelo más utilizado actualmente para implementar las BD
ya planificadas).
40
Permite establecer interconexiones o relaciones entre los datos (que están
guardados en tablas), y a través de dichas conexiones relacionar los datos de
ambas tablas, de ahí proviene su nombre: "modelo relacional".
Figura 15. Base de datos relacional
3.4.3 Desarrollo de base de datos paso a paso.
41
Creación de Base de Datos: 1.- Creación de una Base de Datos en Progress:
• Seleccionar desde el Desktop el menú File.
• En el menú File seleccionar la opción New.
• Dentro de la opción New se selecciona la opción Data base.
Figura 16.paso1para Crear base de datos
La pantalla que aparecerá es Create Data base: • Proporcione el nombre físico de la nueva base de datos e indique que se creará
a partir de EMPTY.
• Dar OK.
Figura 17. Paso 2
• Automáticamente aparecerá la pantalla de conexión de base de datos.
42
Figura 18. Paso 3
Para Conectarse a una base de datos en Progress:
• Seleccionar desde el menú de File y la opción OPEN, después Data base.
Se busca la base de datos realizada.
• También para conectar la Tecla F3.
Para Desconectarse de una Base de Datos en Progress:
• En la Aplicación de Data Dictionary.
• Se selecciona la opción de data base
• Después elegir la opción de Disconnect. • También para desconectar la
Tecla F8.
3.4.4 tablas en una base de datos progress
Tablas Las tablas definen a las entidades que componen el diseño de Base de datos
relacional.
43
Figura 19. Tablas progress
Propiedades de los archivos:
• Hidden: Oculta un archivo para evitar que sea desplegado en la lista de archivos
del diccionario de datos.
• Frozen: Evita que las definiciones de campos e índices sean modificadas. No
incluyen los registros de datos.
• La opción de String Attrs, se utiliza para definir los atributos de las etiquetas de
un archivo que va a ser traducido por el Traslation Manager. • Validaciones:
Establece una expresión que si al ser evaluada, resulta falsa, evita que el archivo
sea eliminado.
• Triggers: Es un código 4GL que se ejecuta como resultado de un evento de
base de datos, como: borrar y crear archivos.
44
Campos
Los campos son los atributos de las tablas. En el diccionario de datos es posible
definirles, entre otras, las siguientes características:
Crear campos:
Figura 20. Crear campos en tabla.
Propiedades de los campos:
• Carácter: Contiene datos alfanuméricos.
• Integer: Acepta números enteros positivos o negativos. Rango: 2, 147, 483,648 a
2, 147, 483,647.
• Decimal: Es un dato compuesto de dígitos, incluyendo 10 dígitos a la derecha del
punto decimal.
• Logical: Almacena valores YES/NO o TRUE/FALSE. • Date: Representa datos de fechas.
• Recid: Almacena valores de identificadores de registro.
45
• Mandatory: Indica que el campo debe de ser capturado obligatoriamente • Case Sensitive: Es utilizado solamente para campos de tipo carácter. Si es falso
permite realizar comparaciones entre caracteres sin importar la forma en que son
escritas.
Ejemplo: Clave = clave = CLAVE • Extent: Indica que el campo es un arreglo de múltiples elementos.
Índices:
¿Qué es un Índice?
Es un dato elemental de un registro que se utiliza como criterio de identificación.
Razones para definir un índice:
∉ Identificación única.
∉ Ordenamiento de registros.
∉ Relación con otras tablas.
∉ Rápido acceso a registros.
Tipos de Índices
∉ Primario: Establece por default que el archivo será ordenado por este
campo a menos que se especifique el ordenamiento por otro índice.
∉ Activo: Índica si un índice está activo o no. En el caso de que se
establezca un índice en un archivo muy largo es más eficiente definirlo
como inactivo y solamente activarlo cuando sea necesario.
∉ Único: Indica que el contenido del índice debe de ser diferente. Ej. R.F.C.,
Matricula, Curp, etc.
∉ Word índex: Permite entrar búsquedas por palabras o por frases sobre el
campo.
46
∉ Abbreviated: Permite que el registro sea accesado utilizando los primeros
caracteres del Campo. Se utiliza solamente en campos de tipo carácter.
∉ Add: Sirve para declarar como índice el campo que se encuentra
seleccionado en el rectángulo del lado izquierdo. Al hacer clic sobre este
botón, dicho campo pasa al rectángulo del lado derecho.
∉ Remove: Sirve para eliminar el índice seleccionado en el rectángulo
derecho. Al hacer clic sobre este botón, se elimina dicho índice y pasa al
campo al rectángulo del izquierdo.
Secuencias Una secuencia es un objeto de base de datos que proporciona valores
incrementales a una aplicación. Puede generar valores secuenciales dentro de
cualquier rango de enteros, con valores positivos o negativos. Como crear una
secuencia
1. Desde la ventana de data diccionary, se selecciona el icono de Sequense para
que se despliegue la ventana de Create Séquense (nótese que las etiquetas de
los botones han cambiado), en donde se encuentran los botones Create
Sequense, Séquense Propieties y Delete Séquense.
2. Cuando se haya desplegado la ventana anterior, se hace clic en el botón de
Create Séquense, es el único que se encuentra activado cuando se despliega por
primera vez. El botón central, se usa para ver las propiedades de una secuencia
que anteriormente haya sido creada; estas propiedades se pueden cambiar. El
botón de la derecha, se utiliza para eliminar la secuencia que se encuentra
seleccionada.
47
3.5. Actividades realizadas.
Pasos para creación de las interfaces (figura 10):
∉ Crear un contenedor (SmartWindows)
∉ Crear un browser en el cual se crea la tabla por medio de un query, para
crear el query existen dos formas:
1. por medio de una ayuda de progress llamada QueryBuilder en el cual
tu eliges las tablas y los campos que quieres y como se relacionan.
2. por medio del freedomQuery en el cual tu puedes realizar el query
como lo desees.
∉ crear fil-in para los campos que se desean tener para la búsqueda (figura
10).
∉ Crear botones para el filtro en los fil-in
∉ Crear botón limpiar para borrar lo tecleado en los fil-in
∉ Llenar los fil- in con su respectivo campo por medFioigduera 21.botones Find
/*find first
No-lock no-error.*/
Figura 22. Fil-in.
48
∉ Crear un Smart Viewer y poner los campos correspondientes con data file
(campos directamente de la base de datos por medio de la selección de las
tablas y campos necesarios).
∉ Ligar todos los contenedores (Windows, browser y viewer) por medio de un
Smart link con el cual se comunicaran.
∉ Validar los campos por medio de los trigger
∉ Crear una tabla temporal que es parecido a como se trabaja con SQL
Ejemplo:
/**** Definitions ****/
DEFINE TEMP-TABLE Tmp-Tabla
FIELD Codigo AS INTEGER
FIELD Descrip AS CHARACTER
FIELD Cantidad AS DECIMAL.
/**** Procedures ****/
PROCEDURE _Carga_Informacion:
CREATE Tmp-Tabla.
ASSIGN Tmp-Tabla.Codigo = 1
Tmp-Tabla.Descrip = "Prueba"
Tmp-Tabla.Cantida = 5.5.
/*Haces un RUN _Carga_Informacion. En el initialize */
/* en el OPEN_QUERY de un BROWSER puedes mostrar el contenido*/
OPEN QUERY {&SELF-NAME} FOR EACH Tmp-Tabla.
∉ Crear un índex que sirve como un id único
49
∉ Crear una secuencia para recorrer la tabla
∉ Hacer pruebas
∉ Para finalizar hacer un botón llamado reporte con el cual se crea una hoja
de Excel con la información del sistema
Figura 23. Ejemplo de la hoja de Excel.
50
Capitulo IV Resultados y conclusiones
4.1 Resultados El resultado del sistema es una pantalla administrativa en la cual los empleados
de la empresa “el CID resorts” podrán trabajar de manera cercana con los demás
trabajadores por medio de teclear los mensajes que se les harán llegar a la otra
interfaz del control de empleados que por falta de tiempo no se pudo realizar en el
que verían los mensajes los trabajadores.
Se obtuvo mucho conocimiento ya que es un lenguaje nuevo para nuestra
generación.
4.2 diseño final de la aplicación
Figura 24. Diseño final
51
4.8 Conclusión
En este proyecto se abordó en forma clara y precisa el análisis conceptual de las
interfaces de usuario, módulos de código y acceso a bases de datos que
caracterizan a las aplicaciones desarrolladas con ABL.
Por lo tanto, dado los resultados positivos que se obtuvieron en la estadía, es muy
importante aclarar que el marco de modelado desarrollado en el capítulo 3 no solo
se aplica a la administración de mensajería, sino también a aquellas otras
aplicaciones de negocio desarrolladas con ABL, las cuales en conjunto forman
parte de un gran sistema informático de gestión denominado MATRIX.
Cabe mencionar las diferencias entre trabajar con SQL y con la base de datos de
progress que si bien SQL es muy funcional, la base de datos de progress es muy
robusta por lo cual su manejo es más satisfactorio y de una manera más dinámica
ya que se encuentra todo integrado.
Al trabajar en este proyecto aprendí a trabajar con el lenguaje progress ya que al
ser algo nuevo tuve algunas dificultades ya que no hay mucha información
relacionada
52
Bibliografía
https://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language [online]
Introducción a los Lenguajes de Cuarta Generación (4GL)
http://www.di-mare.com/adolfo/cursos/2007-1/pp-Intro4GL.pdf [online]
Definición interfaz externa.
http://www.alegsa.com.ar/Dic/interfaz.php#sthash.ED9z2vAA.dpuf [online]
53
Glosario 4GL: Los Lenguajes de Programación de Cuarta Generación son los lenguajes en
los cuales en lugar de escribir cómo deben obtenerse los resultados, se especifica
cuáles resultados son los que se quieren obtener. Por ejemplo, los lenguajes de
consulta de bases de datos (como el SQL) son considerados lenguajes de cuarta
generación.
ABL: Lenguaje de desarrollo de aplicaciones de negocio creado y mantenido por
Progress Software Corporation. Forma parte de la familia de los 4GL.
Buffer: Área de memoria utilizada para almacenar datos.
CHUI: Interfaz de usuario basada en caracteres. Enterprise Architect: Herramienta CASE (Computer Aided Software Engineering)
desarrollada por Sparx Systems para el diseño y construcción de sistemas de
software, para el modelado de procesos de negocios, y para objetivos de
modelado más generalizados. Ofrece una plataforma de modelado basada en
UML.
Frame: Área de presentación dentro de una ventana que ABL utiliza para mostrar
widgets a nivel de campo.
GUI: Interfaz de usuario basada en gráficos.
54
Ingeniería inversa: Es un método que avanza en dirección opuesta a las tareas
habituales de ingeniería, con el objetivo de obtener información a partir de un
producto accesible al público, para determinar de qué está hecho, qué lo hace
funcionar y cómo fue fabricado.
OpenEdge: Plataforma de desarrollo de aplicaciones de negocio creada y
mantenida por Progress Software. Paquete: Un contenedor lógico de elementos
de modelado. Agrupa elementos y también puede contener otros paquetes.
Plataforma: En informática y tecnología, plataforma se refiere al sistema operativo
o a sistemas complejos que a su vez sirven para crear programas, como las
plataformas de desarrollo.
Portabilidad: Se define como la característica que posee un software para
ejecutarse en diferentes plataformas.
Progress Software Corporation: Compañía de software responsable de la
plataforma de desarrollo OpenEdge y el lenguaje ABL, entre otros productos.
RDBMS: Un Sistema de Administración de Bases de Datos Relacionales es una
colección de hardware y software que organiza y proporciona acceso a bases de
datos relacionales.
Software: Es el conjunto de los programas de cómputo, procedimientos, reglas,
documentación y datos asociados que forman parte de las operaciones de un
sistema de computación.
55
SQL: El Lenguaje de Consulta Estructurado es un lenguaje formal declarativo,
estandarizado por ISO, para manipular información en una base de datos.
Trigger: Procedimiento que se ejecuta cuando se cumple una condición
establecida al realizar una operación de inserción, actualización, o eliminación de
registros en una base de datos.
UML: El Lenguaje Unificado de Modelado es un lenguaje gráfico estándar
respaldado por el OMG para visualizar, especificar, construir y documentar
“planos” (modelos) de software, incluyendo aspectos conceptuales tales como
procesos de negocio y funciones del sistema, y aspectos concretos como
expresiones de lenguajes de programación, esquemas de bases de datos y
componentes reutilizables. Actualmente es el lenguaje de modelado de sistemas
de software más conocido y utilizado.
Unidad funcional: Colección de archivos de procedimiento y/o archivos de
inclusión que trabajan en conjunto para realizar alguna función particular del
sistema. Variable: Una variable es una ubicación temporal de datos en memoria.
Widget: Combinación de las palabras Windows-gadget, que se interpretaría como
aparato, artilugio o dispositivo de ventana. Para una aplicación ABL, es un objeto
que proporciona capacidades visuales e interactivas.
56
Anexos Manual práctico de progress
http://www.fime.uanl.mx/jcedillo/manualprogressmio.pdf