tesina shoensttath sainz trujillo

56
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

Upload: others

Post on 31-Jul-2022

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tesina shoensttath sainz trujillo

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

Page 2: tesina shoensttath sainz trujillo

2

Page 3: tesina shoensttath sainz trujillo

3

Page 4: tesina shoensttath sainz trujillo

4

Page 5: tesina shoensttath sainz trujillo

5

Page 6: tesina shoensttath sainz trujillo

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

Page 7: tesina shoensttath sainz trujillo

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

Page 8: tesina shoensttath sainz trujillo

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.

Page 9: tesina shoensttath sainz trujillo

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.

Page 10: tesina shoensttath sainz trujillo

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.

Page 11: tesina shoensttath sainz trujillo

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

Page 12: tesina shoensttath sainz trujillo

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.

Page 13: tesina shoensttath sainz trujillo

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:

Page 14: tesina shoensttath sainz trujillo

14

1.1.2 Organigrama.

Page 15: tesina shoensttath sainz trujillo

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.

Page 16: tesina shoensttath sainz trujillo

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?

Page 17: tesina shoensttath sainz trujillo

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.

Page 18: tesina shoensttath sainz trujillo

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].

Page 19: tesina shoensttath sainz trujillo

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.

Page 20: tesina shoensttath sainz trujillo

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.

Page 21: tesina shoensttath sainz trujillo

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

Page 22: tesina shoensttath sainz trujillo

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.

Page 23: tesina shoensttath sainz trujillo

23

Símbolos especiales

En PROGRESS se utilizan los siguientes símbolos en sus procedimientos:

Page 24: tesina shoensttath sainz trujillo

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

Page 25: tesina shoensttath sainz trujillo

25

Figura 2. Logotipo del lenguaje progress.

Figura 3. Aplicaciones de progress

Page 26: tesina shoensttath sainz trujillo

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

Page 27: tesina shoensttath sainz trujillo

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.

Page 28: tesina shoensttath sainz trujillo

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.

Page 29: tesina shoensttath sainz trujillo

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.

Page 30: tesina shoensttath sainz trujillo

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

Page 31: tesina shoensttath sainz trujillo

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.

Page 32: tesina shoensttath sainz trujillo

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

Page 33: tesina shoensttath sainz trujillo

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.

Page 34: tesina shoensttath sainz trujillo

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.

Page 35: tesina shoensttath sainz trujillo

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.

Page 36: tesina shoensttath sainz trujillo

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.

Page 37: tesina shoensttath sainz trujillo

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.

Page 38: tesina shoensttath sainz trujillo

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.

Page 39: tesina shoensttath sainz trujillo

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).

Page 40: tesina shoensttath sainz trujillo

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.

Page 41: tesina shoensttath sainz trujillo

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.

Page 42: tesina shoensttath sainz trujillo

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.

Page 43: tesina shoensttath sainz trujillo

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.

Page 44: tesina shoensttath sainz trujillo

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.

Page 45: tesina shoensttath sainz trujillo

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.

Page 46: tesina shoensttath sainz trujillo

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.

Page 47: tesina shoensttath sainz trujillo

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.

Page 48: tesina shoensttath sainz trujillo

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

Page 49: tesina shoensttath sainz trujillo

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.

Page 50: tesina shoensttath sainz trujillo

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

Page 51: tesina shoensttath sainz trujillo

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

Page 52: tesina shoensttath sainz trujillo

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]

Page 53: tesina shoensttath sainz trujillo

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.

Page 54: tesina shoensttath sainz trujillo

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.

Page 55: tesina shoensttath sainz trujillo

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.

Page 56: tesina shoensttath sainz trujillo

56

Anexos Manual práctico de progress

http://www.fime.uanl.mx/jcedillo/manualprogressmio.pdf