Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin...

68
Proyecto Fin de Carrera Ingeniería Superior en Informática Rediseño Módulo Selección de Personal EPSILON - RRHH Autor: Antonio Martínez de Castro Tutor Universidad: Dr. Sergio Gómez Tutor Empresa: Oriol Domingo Año académico: 2005 / 2006

Transcript of Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin...

Page 1: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de CarreraIngeniería Superior en Informática

Rediseño Módulo Selección de PersonalEPSILON - RRHH

Autor: Antonio Martínez de CastroTutor Universidad: Dr. Sergio GómezTutor Empresa: Oriol DomingoAño académico: 2005 / 2006

Page 2: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Antonio Martínez de Castro 2

Page 3: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

INDICE

1.EMPRESA........................................................................................................ 51.1.DESCRIPCIÓN GENERAL................................................................................... 51.2.CAPITAL HUMANO............................................................................................. 61.3.SEDE CENTRAL....................................................................................................71.4.CANAL DE DISTRIBUCIÓN................................................................................71.5.PRODUCTOS......................................................................................................... 8

1.5.1.RECURSOS HUMANOS................................................................................ 81.5.1.1.DESCRIPCIÓN GENERAL:.................................................................... 81.5.1.2.RECURSOS HUMANOS:........................................................................ 91.5.1.3.MÓDULOS:.............................................................................................. 91.5.1.4.ASPECTOS TECNOLÓGICOS:............................................................ 111.5.1.5.ARQUITECTURA INTERNA:.............................................................. 121.5.1.6.CONECTIVIDAD:..................................................................................12

2.UBICACIÓN DEL PROYECTANTE DENTRO DE LA EMPRESA................ 142.1.EMPRESA CCI..................................................................................................... 14

3.DESCRIPCIÓN DEL TRABAJO REALIZADO.............................................. 163.1.INTRODUCCIÓN.................................................................................................163.2.CONCEPTOS........................................................................................................16

3.2.1.IDEAS PRINCIPALES..................................................................................173.3.FUNCIONALIDAD DE LOS MÓDULOS EXISTENTES..................................17

3.3.1.FUNCIONALIDAD DEL MÓDULO DE CONVOCATORIA (Oferta Pública)....................................................................................................17

3.3.2.FUNCIONALIDAD DEL MÓDULO DE SELECCIÓN (Empresa Privada)203.3.3.IDEAS DESPRENDIDAS DEL ANÁLISIS DEL FUNCIONAMIENTO... 22

3.4.OBJETIVOS..........................................................................................................223.5.MODIFICACIÓN MÓDULO DE SELECCIÓN..................................................23

3.5.1.FUNCIONALIDAD.......................................................................................233.5.2.INTERFICIES DEL PROCESO DE SELECCIÓN......................................25

3.5.2.1.INTRODUCCIÓN...................................................................................253.5.2.2.DEFINICIÓN DE LAS FASES.............................................................. 263.5.2.3.DEFINICIÓN DE LAS SUBFASES.......................................................273.5.2.4.DEFINIR EL ORIGEN DE LA VALORACIÓN................................... 283.5.2.5.EVALUACION DE LAS FASES........................................................... 293.5.2.6.EVALUAR SUBFASES......................................................................... 303.5.2.7.AÑADIR CANDIDATO.........................................................................313.5.2.8.CONCLUSIÓN....................................................................................... 32

3.5.3.MODIFICACIÓN DE LA ESTRUCTURA DE LA BASE DE DATOS DEL MÓDULO DE SELECCIÓN.................................................................. 32

3.5.4.FASE DE PRESELECCIÓN..........................................................................323.5.4.1.PRESEL. UTILIZANDO UN PERFIL................................................... 323.5.4.2.PRESEL. UTILIZANDO UNA EXPRESIÓN SOBRE LA

TRANSPUESTA.......................................................................... 333.5.4.3.MANTENIMIENTO DE LA TABLA TRANSPUESTA.......................343.5.4.4.INTERFICIES DEL MANTENIMIENTO DE LA TABLA

TRANSPUESTA PARA EL PROCESO DE PRESELECCIÓN.343.5.4.5.MANTENIMIENTO DE LAS EXPRESIONES.....................................36

4.HERRAMIENTAS UTILIZADAS.................................................................... 39

Antonio Martínez de Castro 3

Page 4: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

4.1.ERWIN 394.1.1.FUNCIONALIDADES.................................................................................. 394.1.2.MULTISISTEMA.......................................................................................... 40

4.2.SQLSERVER........................................................................................................ 404.3.VISUAL STUDIO 6.0 – VISUAL BASIC........................................................... 41

4.3.1.PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS...............................................................................................42

4.3.2.PROGRAMAS PARA EL ENTORNO WINDOWS.....................................424.3.3.MODO DE DISEÑO Y MODO DE EJECUCIÓN........................................434.3.4.FORMULARIOS Y CONTROLES...............................................................434.3.5.OBJETOS Y PROPIEDADES.......................................................................434.3.6.EVENTOS......................................................................................................444.3.7.MÉTODOS.....................................................................................................444.3.8.PROYECTOS Y FICHEROS........................................................................ 444.3.9.EL ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0.....................44

4.4.CRYSTAL REPORTS.......................................................................................... 454.4.1.SECCIONES.................................................................................................. 464.4.2.ELEMENTOS................................................................................................ 48

4.5.CONTROLES PROPIOS DE GRUPO CASTILLA.............................................484.5.1.BLOCK.......................................................................................................... 494.5.2.DbTextBox / DbCheckBox /DbCombo /DbMemo ....................................... 534.5.3.GRID.............................................................................................................. 564.5.4.TOOLBAR..................................................................................................... 56

4.5.4.1.MANTENIMIENTOS.............................................................................574.5.4.2.CAPA 1 (Objeto de acceso a datos)........................................................ 584.5.4.3.CONTROL DE ERRORES.....................................................................604.5.4.4.FICHERO DE RECURSOS.................................................................... 60

4.6.MICROSOFT HTML HELP WORKSHOP......................................................... 604.7.MICROSOFT OFFICE......................................................................................... 62

4.7.1.Microsoft Office Visio................................................................................... 624.7.2.Microsoft Office WORD................................................................................634.7.3.Microsoft Office Access.................................................................................63

4.7.3.1.OBJETOS DE LA BASE DE DATOS................................................... 645.APORTACIONES DEL PROYECTO A LOS CONOCIMIENTOS DEL

ALUMNO................................................................................................... 656.APORTACIONES DE LOS ESTUDIOS REALIZADOS AL PROYECTO......66

6.1.Ingeniería Técnica en Informática de Gestión.......................................................666.2.Ingeniería Superior Informática............................................................................ 66

7.CONCLUSIONES.......................................................................................... 68

Antonio Martínez de Castro 4

Page 5: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

1. EMPRESA

1.1.DESCRIPCIÓN GENERAL

Grupo Castilla nace en 1979 como empresa informática orientada al desarrollo de software de gestión. El primer proyecto fue el diseño de una aplicación de Gestión de Nóminas para algunas grandes cuentas de HP. Durante aquella época se realizaron implantaciones de considerable envergadura en importantes empresas como General Motors, Ferrocarriles de la Generalitat de Cataluña, Ginés y Navarro, etc.

La carta de presentación de la empresa es la experiencia y el conocimiento adquiridos durante más de 20 años, con más de 5.000 instalaciones realizadas en todo tipo de actividades y sectores económicos, así como el grado de especialización. Gracias a ello, hoy puede presentar al cliente una organización de reconocido prestigio en el mercado nacional de las empresas de software.

El canal de distribución durante las primeras etapas fueron los grandes fabricantes y distribuidores de hardware como Siemens Nixdorf, NCR, Unisys… Se llevaron a cabo muchos proyectos y se ha introducido también en el mundo UNIX. Aparece el RM/Cobol y se adopta como lenguaje de programación con el objetivo de acceder también a un mercado de empresas un poco más pequeñas, que trabajaban con el nuevo sistema operativo que presentó Microsoft, el MS/DOS. Se inicia entonces la expansión geográfica hasta llegar a la cifra de 16 delegaciones técnicas por toda España con el fin de prestar un servicio mejor y más próximo a los clientes.

Durante los años 90, Grupo Castilla complementa su oferta de soluciones con el desarrollo de nuevos módulos para Recursos Humanos, ya en Windows. Paralelamente, el Departamento de I+D trabaja de lleno en una renovación integral de productos a partir de un gran cambio tecnológico.

La última generación de productos conjuga la experiencia inicial en grandes empresas con las últimas tecnologías y se presenta como solución definitiva para la Gestión Integral de los Recursos Humanos. Se trata de un producto modular potente y flexible que, sobre una única base de datos, gestiona toda la problemática que gira en torno a personas y puestos de trabajo (Salarios, Formación, Competencias, Prevención de Riesgos Laborales, etc.). En 1999 se llevan a cabo las primeras instalaciones y numerosos clientes comienzan a trabajar con los productos a partir de enero de 2000. Empresas y organismos de la Administración Pública que, de forma inteligente y muy previsora, se aseguraban ya entonces también una transición al EURO con todas garantías a partir de un producto multidivisa.

En estos momentos, Grupo Castilla comercializa sus soluciones a través de su canal de distribución mediante una red de partners y mantiene relaciones y colaboraciones de todo tipo con los principales fabricantes de sistemas

Antonio Martínez de Castro 5

Page 6: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

informáticos, bases de datos, herramientas de gestión, controles de presencia, fabricantes e implantadores de ERP's, consultoras, etc.

Actualmente, Grupo Castilla prepara la nueva versión Web de sus productos, investiga en nuevas tecnologías y, por otra parte, analiza la futura expansión por Hispanoamérica, dadas las numerosas propuestas que se han recibido.

1.2.CAPITAL HUMANO

Grupo Castilla cuenta, entre uno de los principales activos de su empresa, con un gran número de profesionales en todos los campos que se encargan de estudiar, desarrollar y programar cada una de sus aplicaciones.

Son más de 170 profesionales repartidos por toda España, a través de la red de delegaciones que cubre todo el territorio.

La misión de todas las personas que integran Grupo Castilla tiene dos apartados principales. Por un lado, desarrollar y crear las aplicaciones de las que ya disponen nuestros clientes y por otro, mantener los programas permanentemente actualizados. La legislación vigente marca en algunos casos el desarrollo de algunas aplicaciones y el continuo trabajo de mejora para adaptarlos a las novedades del mercado, en otros.

El contacto personal entre nuestros desarrolladores y los clientes es permanente. La interacción entre ellos ha contribuido en gran manera a mejorar cada una de las aplicaciones.

Grupo Castilla apuesta por las personas y pone a su alcance las últimas tecnologías. El resultado es una solución a sus problemas de gestión.

Antonio Martínez de Castro 6

Page 7: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

1.3.SEDE CENTRAL

Carlos Castilla Ingenieros S.A., sede central de Grupo Castilla, está situada en Reus (Tarragona) carretera Castellvell, 16. En sus instalaciones de 600 m2, más de 50 profesionales desarrollan su actividad repartidos en los siguientes departamentos:

Gerencia y AdministraciónMarketingProgramación de la Gestión FiscalProgramación de NóminaProgramación de Recursos HumanosInvestigación y DesarrolloSistemas

En la sede central de Grupo Castilla se lleva a cabo la programación y el desarrollo de todas las aplicaciones. También se planifica y organiza la asistencia a las ferias más importantes del sector, como Expooracle, Capital Humano, Expojial, etc. y la presencia en otros medios de comunicación, siempre en colaboración con nuestras delegaciones.

1.4.CANAL DE DISTRIBUCIÓN

Grupo Castilla cuenta con un gran número de colaboradores para realizar la implantación de sus aplicaciones. Aunque una parte de ellas se realizan de manera directa, la gran mayoría de las ventas realizadas cuentan con un importante canal de distribuidores.

Dentro de este canal de distribución se encuentran los principales ERP's del mercado nacional. La colaboración entre los distribuidores de las soluciones informáticas de Grupo Castilla y nuestra empresa se realiza a un nivel de calidad total.

Los distribuidores reciben, por una parte, toda la información necesaria para los potenciales clientes y, por otra, una formación exhaustiva sobre los productos que les permite realizar cualquier tipo de demostración práctica sobre ellos. Grupo Castilla también les ofrece sus recursos técnicos y humanos como soporte y complemento a las acciones comerciales que se realicen para potenciar nuevas implantaciones.

Grupo Castilla y su canal de distribuidores trabajan juntos con un objetivo común, ofrecer al mercado más amplio y de la manera más efectiva, todas las aplicaciones y soluciones informáticas que necesita su empresa.

Antonio Martínez de Castro 7

Page 8: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Navision AdonixScala Latina Exact SoftwareCTI Soft AbsisDimoni AytosCLS Control Logistics Systems DragmarAqua e-Solutions Oracle (Oracle Financials)RPS Red para la Producción de sistemas, s.a. IBM (PG 400)

Paralelamente, Grupo Castilla colabora de manera totalmente activa con los principales constructores de bases de datos como: Oracle, Microsoft, IBM e informix.

1.5.PRODUCTOS

1.5.1.RECURSOS HUMANOS

1.5.1.1.DESCRIPCIÓN GENERAL:

La aplicación de Recursos Humanos agrupa en un único producto toda la funcionalidad requerida para dar una solución global al departamento de personal de cualquier empresa. De esta forma, se ofrece una gestión integral de todos los aspectos que conciernen al capital humano tanto para empresas como para administraciones públicas.

La aplicación de RRHH se compone de unos módulos básicos y necesarios (Gestión empleados, Estructura y organización) y de unos módulos complementarios a los básicos para gestionar otros temas diferentes y a la vez relacionados como son Gestión de formación, Gestión de selección, Gestión de competencias...

La aplicación informática contempla los siguientes módulos con alguno de los procesos más importantes de cada uno de ellos:

Antonio Martínez de Castro 8

Page 9: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

1.5.1.2.RECURSOS HUMANOS:

La aplicación de Recursos Humanos agrupa en un único producto toda la funcionalidad requerida para dar una solución global al departamento de personal de cualquier empresa. De esta forma, se ofrece una gestión integral de todos los aspectos que conciernen al capital humano tanto para empresas como para administraciones públicas.

La aplicación de RRHH se compone de unos módulos básicos y necesarios (Gestión empleados, Estructura y organización) y de unos módulos complementarios a los básicos para gestionar otros temas diferentes y a la vez relacionados como son Gestión de formación, Gestión de selección, Gestión de competencias...

La aplicación informática contempla los siguientes módulos con alguno de los procesos más importantes de cada uno de ellos:

1.5.1.3.MÓDULOS:

• Gestión empleados (módulo básico) Módulo que nos permite gestionar todo lo relacionado al personal que forma parte de la empresa: datos personales, currículum, evolución salarial (cálculo del bruto anual), históricos, ratios (rotación del personal, movimientos del personal, estabilidad en la empresa, antigüedad del personal, edad media, etc.), gráficos...

• Estructura y organización (módulo básico)Módulo que nos permite gestionar la estructura de la empresa o grupos de empresas. Creación del árbol del organigrama, definición de puestos de trabajo con sus características/requisitos (perfiles) para cubrirlos. Histórico de movimientos, cambios, bajas/altas de asignaciones de trabajadores a los puestos de trabajo.Impresión gráfica del árbol del organigrama.

• Gestión de formaciónMódulo que nos permite gestionar todos los elementos referentes a la formación: cursos, empresas formadoras, ofertas de cursos. Necesidades de formación individual o colectiva (por puestos de trabajo, niveles del organigrama, edades...).Convocatorias de los cursos, inscripciones, seguimiento.Evaluaciones de los cursos, empresas y los monitores. Costes de formación por acción formativa, por alumno o por empresa.Presupuestos/planificación de acciones formativas.

Antonio Martínez de Castro 9

Page 10: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• Salud LaboralContempla los aspectos más destacados de la FORCEM (Fundación para la formación continuada en la empresa). Se lleva el control de las revisiones médicas, vacunaciones, accidentes de trabajo, enfermedades comunes y profesionales, etc.

• Selección de PersonalMódulo que nos permite gestionar los procesos de selección.Candidatos (currículum, datos personales y familiares, datos académicos, idiomas, cursos, pruebas, valoraciones...).Creación de convocatorias, especificando características de los puestos a cubrir y la selección de candidatos que cumplan los perfiles y requisitos de los puestos de trabajo.Proceso de selección: eliminación de los candidatos a medida que no cumplen los requisitos (perfiles) de las diferentes fases del proceso.Resúmenes de costes, resultados de procesos de selección.

• Gestión de competenciasMódulo que nos permite gestionar las competencias para un puesto de trabajo y las competencias del empleado.Cálculo de índices de cobertura y vectores de diferencias entre empleados y puestos.Selección de los mejores empleados para un puesto de trabajo.Selección del mejor puesto de trabajo para un empleado.Detección de necesidades de formación.

• Vestuario y herramientas Módulo que nos permite gestionar todo tipo de vestuario, herramientas y equipos de protección individual.Control de entregas por empleado/puesto, control de revisiones, control de devoluciones...Gestión y revisión de inventario.

• Gestión de plantilla y RPT (módulo básico)Módulo que nos permite gestionar la plantilla que compone la estructura del organismo. Las plazas, los puestos (características), la situación en que se encuentran (vacantes, ocupadas, en provisión...).RPT (listado de relación de puestos de trabajo, con sus perfiles).

• Ayudas socialesMódulo que gestiona las ayudas concedidas a los empleados de la entidad pública. Gestión y control del fondo social.Gestión de todo tipo de ayudas (parametrizable por el usuario): ayudas anuales, indefinidas, pago único...

• Partidas presupuestariasMódulo que nos permite gestionar a partir de un organigrama teórico los presupuestos anuales, trimestrales o mensuales de la administración; previsión de creación de nuevos puestos-plazas, previsión de jubilaciones, de finalizaciones de contrato.Cambio automático de conceptos salariales.Cambio automático para que el organigrama teórico pase a ser el organigrama funcional.

• Expedientes administrativos (RCP)

Antonio Martínez de Castro 10

Page 11: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Módulo que nos permite gestionar toda una serie de expedientes tanto para funcionarios como para laborales y tener el histórico de todos los expedientes realizados a un empleado como toma de posesión, cambio de puesto, cambio de grupo, anotación de sanción disciplinaria...

• Convocatorias de SelecciónMódulo que permite gestionar todo lo referente a las convocatorias tanto provisión de puestos como oferta pública de plazas. Procesos de selección, definición de perfiles, requisitos del puesto de trabajo...

Ilustración 1 Pantalla inicial de la aplicación EPSILON de Grupo Castilla para la empresa privada.

1.5.1.4.ASPECTOS TECNOLÓGICOS:

La aplicación está diseñada en arquitectura cliente/servidor y para entornos Windows. En la parte cliente es operativa en estaciones de trabajo que ejecuten un sistema operativo Microsoft Windows y la parte servidor en distintos Sistemas Gestores de Bases de Datos Relacionales (SGBDR): Oracle, SQL Server, Informix, DB2 UDB para NT/2000 o AS/400.

Antonio Martínez de Castro 11

Page 12: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

La base de datos está totalmente integrada entre los aplicativos de nómina, RRHH y prevención de riesgos laborales.

1.5.1.5.ARQUITECTURA INTERNA:

La aplicación no utiliza ningún componente de terceros, sino que se apoya íntegramente en herramientas Microsoft y tecnología propia de Grupo Castilla. El desarrollo propio de componentes de interfaz gráfica y acceso de datos permite:

• No depender de terceros desarrolladores.

• Aislar al máximo el desarrollo de nuestras aplicaciones de los cambios de tecnologías Microsoft, pero sin tener que renunciar a su utilización.

• "Empaquetar" la complejidad multiplataforma en unos componentes muy concretos.

El acceso a las bases de datos se efectúa a través de OLE DB, esta tecnología es la que presenta el mejor compromiso entre tiempos de acceso y portabilidad entre distintos fabricantes de bases de datos. También es la tecnología que mejor se integra a ADO (Active Data Objects de Microsoft).

Los listados de la aplicación están desarrollados con Crystal Reports, lo que garantiza un alto nivel de compatibilidad y una garantía continua de evolución.

1.5.1.6.CONECTIVIDAD:

La tecnología utilizada por la aplicación nos permite:

• Acceder a los datos desde otras herramientas que tengan acceso al SGBDR (herramientas ofimáticas, de desarrollo, de terceros, etc.).

• Los listados se pueden exportar a distintos formatos: word, excel, html, texto, rtf, lotus, odbc.

Antonio Martínez de Castro 12

Page 13: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Posibilidad de interactuar con aplicaciones externas que posean tecnología ActiveX exe: Office, VBA, VB, VC++.

Antonio Martínez de Castro 13

Page 14: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

2. UBICACIÓN DEL PROYECTANTE DENTRO DE LA EMPRESA

Grupo Castilla desarrolla proyectos de gran envergadura. Es por eso que se hace necesario, como en cualquier empresa, tener una estructura jerarquizada con el objetivo de organizar la distribución de las tareas entre los diferentes miembros del equipo.Cada componente del equipo tiene asignadas unas funciones y responsabilidades, dependiendo del cargo que ocupa.

2.1.EMPRESA CCI

Grupo Castilla se compone de tres empresas o departamentos diferentes que realizan proyectos con tecnologías y mercados diferentes.Una de ellas en CCI S.A.

La organización de los diferentes departamentos de programación de CCI es muy similar.

Globalmente podemos diferenciar los siguientes cargos y funciones:

• Jefe de proyecto: Es el que dirige y coordina todo el equipo de trabajo del departamento. Comprueba que las especificaciones de requerimientos realizados por el analista funcional sean correctas, completas, sin ambigüedades, etc. Una vez aprobado este documento, distribuye las tareas entre los diferentes programadores, establece los términos temporales en los que se tendrán que conseguir los diferentes objetivos y realizar de manera continuada la supervisión del trabajo realizado.

• Analista funcional: Se encarga de redactar el Análisis Previo y el Análisis de Requerimientos del Proyecto. Estos documentos son resultado de diferentes entrevistas con el cliente, donde se recogen de manera clara, exhaustiva y detallada todas las funciones y procesos que tiene que realizar la aplicación. Una vez aprobado y aceptado el proyecto por parte de los clientes, el Analista realiza la Especificación de Requerimientos, documento que será revisado por el jefe de proyecto. Posteriormente se asignan las diferentes tareas a los programadores.

• Programadores: Su función principal es la de desarrollar la aplicación, generando código fuente en un lenguaje de programación que haga posible la implementación de todas y cada una de las funciones y procesos descritos en la Especificación de Requerimientos. También realizan tareas propias de un Analista Orgánico, consistentes en la especificación de las Pruebas Unárias que se tienen que realizar en

Antonio Martínez de Castro 14

Page 15: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

cada mantenimiento, pantalla y modulo. Una vez pasan a este nivel, realizan pruebas entre diferentes módulos.

Dentro de los programadores podemos encontrar diferentes categorías que están en función de la experiencia y antigüedad dentro de la empresa:

Becarios: Estudiantes de Informática que todavía no han finalizado la carrera y contratados vía convenio de colaboración con la universidad.

Programador en Prácticas: Una vez acabados los estudios de Informática, se renueva la situación del programador con un contrato laboral en prácticas.

Programador “Junior”: Después de haber estado seis meses trabajando como programador en prácticas, pasa a ser programador “Junior”.

Programador “Señor”: Medio año después, tu experiencia es suficiente como para ser tratado como programador “Señor”.

Analista-Programador: cuando se tienen que desarrollar un proyecto de grandes dimensiones, se hace necesario dividirlo en diferentes partes independientes, asignando a grupos de programadores coordinados por un Analista-Programador. De esta manera, cada parte del proyecto evoluciona y progresa paralelamente. Este es el máximo cargo al que puedes aspirar como programador y se otorga en función de los conocimientos y responsabilidades de cada persona.

Todo el trabajo que he realizado en Grupo Castilla ha sido con convenio de prácticas con colaboración con la universidad como becario.

Antonio Martínez de Castro 15

Page 16: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

3. DESCRIPCIÓN DEL TRABAJO REALIZADO

Esta es una pequeña explicación de mi trabajo realizado en Grupo Castilla. No es todo lo que he hecho y no profundizo en las partes técnicas ni en código de programa por respetar la confidencialidad entre estudiante-empresa.

3.1.INTRODUCCIÓN

En selección de personal las personas no se fabrican: vienen hechas. La tarea de los responsables de Recursos Humanos es comprender tanto necesidades como posibilidades, para orientar a la empresa sobre la mejor forma posible de dar solución a su pedido.El diseño compartido del PERFIL, que muchas veces debe ser precedido por el diseño compartido del PUESTO, es el comienzo de una ardua tarea en la cual lo deseado debe conjugarse con lo posible. Hacer selección de personal es una tarea artesanal donde asistimos a otros en la delicada tarea de saber con quienes compartirán sus jornadas de trabajo y, en última instancia, construirán el edificio social de la empresa.Por este motivo, cualquier esfuerzo que ayude al personal encargado en la difícil tarea de la selección, no será despreciado. Es aquí donde entran los programas de gestión de RRHH, ayudando en todo este proceso en la medida de lo posible para facilitar el trabajo.

Hay que diferenciar entre los procesos de selección en la empresa privada y en los organismos públicos, pues la aplicación de Grupo Castilla EPSILON implementa las dos opciones.

Ya que estos temas eran nuevos para mi tuve que aprender los conceptos más importantes en la teoría de los procesos de selección.

3.2.CONCEPTOS

La función del módulo de selección de personal es el de agrupar, filtrar y seleccionar posibles candidatos desde una base de datos, para facilitar las decisiones al encargado de recursos humanos. La forma de proceder en la empresa pública es diferente a la de la empresa privada ya que tiene un carácter más oficial. Por eso en la oferta pública se publican las convocatorias y sus bases al acceso de todo el mundo.

En la oferta privada, las fases y los criterios de filtrado es decisión del empresario o encargado de la selección, siendo más flexible el proceso y susceptible a cambios durante y después, que en la oferta pública.

Los criterios de selección que cada empresa necesita son de los más variados, necesitando que el programa compruebe desde la puntuación de un idioma

Antonio Martínez de Castro 16

Page 17: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

hasta la experiencia profesional en un campo determinado, pasando por la puntuación objetiva en una entrevista o si tiene coche o no.Es posible que haya empresas que tengan en sus bases de datos a 10.000 o 20.000 candidatos, y es función del usuario del programa crear todos los criterios necesarios lo suficientemente discriminatorios para que al final del proceso se tenga una lista no muy extensa con los mejores candidatos para ese puesto de acuerdo con dichos criterios. Estos criterios de selección, llamados perfiles, consisten en expresiones lógicas o aritméticas más o menos extensas, donde pueden intervenir todos los datos guardados en los currículos de los candidatos. Estos perfiles se crean teniendo en cuenta reglas lógicas y aritméticas, y pueden llegar a tener una complejidad y abstracción muy elevada en función de la cantidad de candidatos que hay que seleccionar. Muchas veces el usuario encargado de crear dichos perfiles no está preparado o familiarizado con estas reglas lógicas o aritméticas y le cuesta mucho trabajo su creación con la posibilidad de incurrir en errores que afecten al proceso de selección o que cunda el desanimo en el usuario por su dificultad provocando la no utilización de dicho módulo y la utilización de herramientas paralelas más fáciles y flexibles.En cuanto a los perfiles, siendo expresiones con un gran número de valoraciones a comprobar de los campos del currículo de cada candidato y pudiendo haber una cantidad considerable de candidatos dependiendo de la empresa (imagínese 10.000 candidatos), puede llegar a provocar un número tal de accesos a la base de datos que sature el sistema o tarde un tiempo inviable en ofrecer los resultados.

3.2.1.IDEAS PRINCIPALES

• Diferencias entre el módulo de la Pública y el de la Privada.• Dificultad en la creación de filtros (perfiles) para las diferentes fases por

parte del usuario Gran cantidad de accesos a BD coste tiempo y recursos.

3.3.FUNCIONALIDAD DE LOS MÓDULOS EXISTENTES

La finalidad de un proceso de selección tanto en la empresa pública como en la privada es la misma, pero cada una tiene su forma de proceder y sus características. En este apartado explicaremos como ha solucionado la presentación de los datos y la creación de sus fases el módulo de convocatorias (Pública) y selección (Privada) el programa Epsilon de Grupo Castilla.

3.3.1.FUNCIONALIDAD DEL MÓDULO DE CONVOCATORIA (Oferta Pública)

Nos fijamos en la pantalla final para escoger a los candidatos.

Antonio Martínez de Castro 17

Page 18: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

La descripción de la fase con código 18 (fase 18) es FASE 4 y está en la columna 4.La puntuación de la FASE 4 (fase 18) es 4,50 (1º candidato) y viene calculada de las puntuaciones de sus bases. Las otras fases tienes puntuación directa, lo que significa que no tienen bases (es puesta por el usuario seleccionando el botón de radio de puntuación directa).

Las bases de la fase 4 (Ilustración 3) tienen diferentes puntuaciones calculadas automáticamente por el programa según el currículo del candidato.Una base seria una equivalencia a lo que es un perfil en la selección de la empresa privada. La forma de crear una base es seleccionando un tipo de valoración y según el tipo de valoración podremos escoger un tipo de Méritos/Pruebas/Requisitos.

La puntuación total (Ilustración 2) del candidato en una convocatoria viene dada por una formula en la que intervienen todas las puntuaciones de las diferentes fases, pero también puede ser modificada y puesta por el usuario.

Ilustración 2 Evaluación de los candidatos por fases.

Las características más atractivas de la forma de trabajar del módulo de convocatorias de la Oferta Pública es el echo de tener en una misma ventana los candidatos seleccionados con la puntuación que han tenido en cada una de sus fases, y el echo de poder modificar las puntuaciones de cada candidato manualmente tanto en la puntuación final de una fase como en la puntuación final en la convocatoria.

Antonio Martínez de Castro 18

Page 19: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Ilustración 3 Bases (subfases) de una fase por candidato.

Ilustración 4 Resumen de la convocatoria por fases.

Aquí se ve la creación de la fase con sus características:Detallada calculando la media de sus subfases. Las funciones Suma y media simplemente recorren todas las puntuaciones del candidato teniendo en cuenta el peso sumándolas y dividiendo en el caso de la media. Si la base era lógica se salta al siguiente y no computa para la división. La descripción detallada de la FASE 18 es FASE 4.

Antonio Martínez de Castro 19

Page 20: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

3.3.2.FUNCIONALIDAD DEL MÓDULO DE SELECCIÓN (Empresa Privada)

En el módulo de selección de candidatos de la privada hay tres tipos de fases:

1. preselección2. filtro3. clasificación

Las “bases” de la pública serian los perfiles de la privada. Las fases tienen que ser calculadas en orden empezando por la de preselección. Una fase solo puede tener un perfil.La preselección seria un perfil el cual tienen que cumplir primeramente los candidatos para entrar en la selección. La fase de filtro se puede dividir en evaluaciones dependiendo del perfil que se ha creado para el filtro en cuestión. Si un perfil tiene varias condiciones se pueden agrupar por el tipo de condiciones que tiene en diferentes evaluaciones. Para calcular una fase hay que primero calcular y cerrar las evaluaciones que pertenecen a dicha fase.Hay dos fases más que no son fases propiamente dichas pero que se tratan como si lo fueran. Son la fase de notificación y la fase de alta. Un ejemplo seria una selección con todas las fases cerradas en la ilustración 5.Seleccionando el registro del grid vemos las puntuaciones de cada candidato si en una fase cerrada (evaluación, notificación o clasificación) o apto o no si se trata de una fase calculada (preselección, filtro o alta).

La característica positiva de la funcionalidad de la privada es la potencia (comparados con la pública) y facilidad para crear perfiles según la fase y compartirlos con otros procesos de selección.

Antonio Martínez de Castro 20

Page 21: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Ilustración 5 Las distintas fases definidas por el usuario en un proceso de selección de la empresa privada.

Ilustración 6 Situación de los candidatos que han cumplido el proceso de preselección en una fase determinada.

Antonio Martínez de Castro 21

Page 22: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Ilustración 7 Perfil de un puesto de trabajo.

3.3.3.IDEAS DESPRENDIDAS DEL ANÁLISIS DEL FUNCIONAMIENTO

En el módulo de la empresa privada:

• Poco detalle en las puntuaciones de los candidatos por fases.• Poca flexibilidad en la modificación de cálculos y puntuaciones de

candidatos.

3.4.OBJETIVOS

• Objetivo->Incrementar la utilización del módulo por parte del usuario final.

• Aumentar la flexibilidad, usabilidad y sencillez de uso.• Mejorar el rendimiento en el acceso a la base de datos.

Por eso no está de más intentar encontrar una solución que mejore el rendimiento del programa en este sentido buscando formulas que requieran menos recursos del sistema y tiempo para generar los resultados y faciliten la utilización del módulo al usuario.

Antonio Martínez de Castro 22

Page 23: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Otro punto a mejorar es la presentación de los datos y puntuaciones en las diferentes fases del proceso por parte de los candidatos, haciéndolas visibles y ofreciendo la posibilidad de modificación de dichas puntuaciones por parte del usuario y a criterio y cuenta de él.

3.5.MODIFICACIÓN MÓDULO DE SELECCIÓN

El usuario podrá ver las selecciones anteriores con el sistema ya existente, y para crear un proceso de selección nuevo empleará el nuevo sistema.

3.5.1.FUNCIONALIDAD

Se trata de tener en una misma pantalla un grid que nos muestre las puntuaciones de cada candidato en las diferentes fases como se hace en el módulo de la pública, a medida que se van añadiendo fases. Se quiere que el usuario pueda crear fases a modo de columnas rápidamente clickeando sobre el grid o utilizando la barra de herramientas de Grupo Castilla, y que una vez creada, pueda modificar el valor que tiene cada candidato en esa fase-columna específica. Para aprovechar los datos que hay guardados en los currículos de los candidatos, el tipo de fase se puede definir manualmente o que se trate de un dato precargado desde el CV.

DIRECTA-DETALLADA

COND. AV. OPERADOR

CREAR SUBFASES

TIPO FASEFILTRO

oNOTIFICACIÓN

oALTA

DIRECTA DETALLADA

OK

CREAR FASE

VENTANA VALORES

SUMA MEDIA

(Evaluaciones)

EVALUACIÓN

COND. AV.

COND. AV.

Habilitar subfases Habilitar subfases

Ilustración 8

Las fases de Notificación y Ata siguen teniendo la misma funcionalidad. Estas no pueden tener subfases y son siempre fases lógicas que en el grid aparecen como una casilla de verificación. Su resultado se puede calcular mediante una

Antonio Martínez de Castro 23

Page 24: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

condición avanzada sobre las fases anteriores y después puede ser modificado de forma manual por el usuario.

MANUAL-PREARGADA

APTO/NOPUNTUABLE

ESCALA

ELEGIR ESCALA PESO

ESCALA

MANUAL

OK

VENTANA SELECCIÓN DE

VALORES

PRECARGADA C.V.

CREAR FASE DIRECTA

PUNTUABLE

VALORES PESO

APTO/NO APTO

Fases y Subfases

En el caso que sea Subfase: Si es

MANUAL, no se dejara crear APTO/NO APTO.Si es CV, no se dejara

tipo de valores checkbox.

Ilustración 9

Según el tipo de fase (Evaluación, Filtro, Notificación o Alta) de que se trata o si se trata de una Fase o Subfase, el resultado tendrá unas restricciones sobre su tipo. El usuario tendrá que ser consciente de ellas a la hora de crear una fase o subfase y valorarla.

Habilitar Subfases TIPO FASE C.A./Origen Manual/C.V. Tipo de resultado

FASES

NO

EVALUACIÓN ORIGENMANUAL Sin restricciones

C.V. Sin restricciones (No hay peso)

FILTRO C.A. Resultado lógico.

NOTIFICACIÓN C.A. Resultado lógico.

ALTA C.A. Resultado lógico.

SIFILTRO C.A.

Resultado lógico (Sobre sus subfases).

EVALUACIÓNOPERADO

R Resultado puntuable (Sobre sus

subfases).

SUBFASES ORIGEN MANUAL Solo puntuable o escala.

C.V. Solo tipos de valor puntuables.Tabla 1 Posibles configuraciones de las fases dependiendo de los parámetros escogidos.

Antonio Martínez de Castro 24

Page 25: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

En la tabla CAMP_PERF viene la información si un tipo de valor es puntuable o no y si es multivalor o no.

3.5.2.INTERFICIES DEL PROCESO DE SELECCIÓN

Como quedarán las interficies y menús después de la modificación:

3.5.2.1.INTRODUCCIÓN

Las modificaciones se centran en el proceso de selección. En primer lugar se distingue entre la configuración de las fases y la evaluación de los candidatos. Por este motivo, se habilitará un submenú en la opción de proceso de selección.

Ilustración 10 La nueva opción es un desplegable.

Para evitar la migración de los datos antiguos de los usuarios, se mantendrán operativos los formularios antiguos para la consulta de los procesos creados con versiones antiguas de la aplicación. Por este motivo el programa distingue cuales están creadas con el sistema antiguo y se visualizarán con el formulario oportuno.

Ilustración 11 Se despliegan 2 nuevas opciones.

Proceso de selección - DEFINIRProceso de selección - DEFINIR

AÑO Nº CONV. DESCRIPCIÓN F. INI. ESTADO

DEFINIRBuscar convocatoria:

Seleccione una convocatoria :

Ilustración 12 Opción “Definir Fases”.

Antonio Martínez de Castro 25

Page 26: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Proceso de selección - EVALUARProceso de selección - EVALUAR

EVALUAR

AÑO Nº CONV. DESCRIPCIÓN F. INI. ESTADO

Buscar convocatoria:

Seleccione una convocatoria:

Ilustración 13 Opción “Evaluar Fases”.

Desde esta ventana se escoge la convocatoria de selección a definir o evaluar.

3.5.2.2.DEFINICIÓN DE LAS FASES

Al presionar el botón “Definir” se da paso a la ventana de configuración de las fases y subfases.

Proceso de selección - FASESProceso de selección - FASES

Año: Código: Convocatoria:

AltaNotaCP

N.Est.

DSCRP. BREVE

000400030002

0001

ORDEN

AltaNota subjetivaCódigo Postal

Nivel de estudios

DESCRIPCIÓN

Juan Nadie

RESPONSABLE

AltaFiltro

Evaluación

Evaluación

TIPO FASE

Habilitar subfases Condiciones avanzadas: ...

Origen de la valoración: ...

EVALUACIÓNTipo de fase:

FILTRONOTIFICACIÓNALTA

2005 00009 Prueba convocatoria

Ilustración 14 Interficie para la configuración de fases. En ella aparecen las diferentes opciones de cómo puede ser. El checkbox Hab. Sub. Aparece desactivado, lo que implica que “Condiciones

avanzadas” aparezca también desactivado dependiendo si el tipo de fase es Evaluación o no.

Descripción breve: Descripción de la fase que se usará para etiquetar las columnas de cada fase en la ventana de evaluación de candidatos.Orden: Orden de la fase dentro del proceso de selección.Descripción: Descripción de la fase.

Antonio Martínez de Castro 26

Page 27: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Responsable: Es la persona responsable de la fase. Este campo no es requerido. Habilitar Subfases: Permite indicar si la fase se evalúa como resultado de varias subfases.

Cuando la fase no requiere la valoración de subfases, se muestran los siguientes controles:Tipo de fase: Los posibles valores a seleccionar son:

• Evaluación: Tipo de fase usado para evaluar a los candidatos• Filtro: El objetivo de esta fase es limitar los candidatos a evaluar en las

siguientes fases. Para ello se deberán establecer unos criterios basados en las fases anteriores.

• Alta: El objetivo de este tipo de fase es determinar qué candidatos se han seleccionado para cubrir las plazas vacantes. Esta fase es única en todo el proceso y al igual que la fase de filtro permite definir una condición sobre las fases anteriores.

• Notificación: El objetivo de esta fase es el envío de comunicados a los candidatos. Para ello, al igual que las fases de filtro y alta, se podrá definir una condición sobre las fases anteriores.

Condición avanzada: Se activa sólo para las fases de tipo filtro, alta o notificación.Origen de la valoración: En el se selecciona y muestra el origen de los valores de las fases de evaluación.

Cuando la fase requiere la valoración de subfases, se muestran los siguientes controles en la parte inferior de la ventana de fases:

DEFINIR SUBFASESOperador: SUMA

MEDIA

Habilitar subfasesCondiciones avanzadas: ...

Tipo de fase: EVALUACIÓN

Ilustración 15 Cuadro de configuración con el checkbox activado. Esto implica que la fase tiene subfases. Se escoge el operador y aparece el botón para definir las subfases. El tipo de fase siempre

será en este case Evaluación.

Definir subfases: Abre la ventana de configuración de las subfases de una fase en concreto.Condición avanzada: Permite definir una condición sobre las evaluaciones de las subfases. Esta opción es excluyente con la selección de un operador. Esta opción implica un tipo de fase Filtro.Operador: Permite definir una función de agregado (suma, media) sobre las evaluaciones de las subfases. Esta opción es excluyente con la definición de condiciones avanzadas y implica un tipo de fase Evaluación.

3.5.2.3.DEFINICIÓN DE LAS SUBFASES

Antonio Martínez de Castro 27

Page 28: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Al presionar el botón “DEFINIR SUBFASES” se da paso a la ventana de configuración de las subfases. Las subfases pertenecen a la fase que estaba seleccionada anteriormente.

Proceso de selección - SUBFASESProceso de selección - SUBFASES

EVAL3EVAL2EVAL1

DSCRP. BREVE

000300020001

ORDEN

ComplexiónPersonalidadApariencia

DESCRIPCIÓN

Juan Nadie

Pepito grilloRESPONSABLE

MANUALMANUALMANUALMNL/CV

Fase:Año: Código: Convocatoria:

2005 00009 Prueba convocatoria Nota

Origen de la valoración: ...

Ilustración 16 Interficie de configuración de las subfases. En este caso solo se puede configurar el origen de la valoración.

Origen de la valoración: En el se selecciona y muestra el origen de los valores de las fases de evaluación.Las subfases son puntuaciones como resultado de una evaluación. No podrán ser apto/no_apto o valores no puntuables del currículo.

3.5.2.4.DEFINIR EL ORIGEN DE LA VALORACIÓN

Se escoge el tipo de valor que va a ser la fase en cuestión. Se decide si la fase o subfase va a ser precargada desde el currículo o evaluada de forma manual por el usuario.

Antonio Martínez de Castro 28

Page 29: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Origen de la valoraciónOrigen de la valoración

Tipo valor:

Valor:

Operador:

ACEPTAR

Cursos

Curso Informática

MAX

MANUAL

CURRICULUM

1Peso:

Tipo de valor:APTO/NO APTO

ESCALAEscalas de valoración :

Ilustración 17 El Origen de la valoració puede ser Manual o precargada desde el curriculo del candidato.

Manual: La fase o subfase es evaluada directamente por el usuario.• Tipo de valor: Existen las siguientes opciones:

o Puntuable: Cuando se haga una valoración numéricao Escala: La valoración se hará escogiendo un grado de una escalao Apto/no apto: La valoración se hace mediante una casilla de

verificación• Escalas de valoración: Sólo estará disponible si el tipo de valor es

Escala. La escala seleccionada determinará los grados con los que se efectúa la valoración.

Curriculum: La fase o subfase es precargada desde la base de datos del currículo.

• Tipo valor: Se escoge entre los diferentes conceptos curriculares. (Ej.: Títulos, Idiomas, experiencia, etc. )

• Valor: Se escoge entre los diferentes valores que puede tener el tipo de valor escogido previamente. (Ej.: Idiomas: Inglés, Francés, etc. Títulos: Arquitecto, Médico, etc. )

• Operador: Si el tipo de valor tiene más de un posible elemento en el currículo, se tendrá que seleccionar una función de agregado (máximo, suma, media, … ) para obtener una única puntuación.

• Peso: Sólo visible cuando se están definiendo subfases. Es el peso que se aplica a una subfase para obtener la suma o media asociada a la fase principal.

3.5.2.5.EVALUACION DE LAS FASES

Al presionar el botón “Evaluar” en la lista de convocatorias (Ilustración 11) se da paso a la ventana de evaluación de los candidatos.

Se muestran tantas hileras como candidatos, tantas columnas como fases hay definidas.

Antonio Martínez de Castro 29

Page 30: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Proceso de selección – PUNTUACIONES FASES CANDIDATOSProceso de selección – PUNTUACIONES FASES CANDIDATOS

CÓDIGO NOMBRE ALTAN.Est. CP Nota

DATOS CANDIDATO RECALCULAR

Excluir no aptos en la fase:

AÑADIR CANDIDATO VER SUBFASES

Año: Código: Convocatoria:

2005 00009 Prueba convocatoria

Ilustración 18 Nueva interficie con las puntuaciones de los candidatos por fases. Botones disponibles:

• Añadir candidato: Abre una ventana que permite añadir candidatos a la convocatoria.

• Datos candidato: Abre la ficha del candidato.• Recalcular: Actualiza las fases cuyo origen sea un valor del currículo.

Igualmente, recalcula las fases/subfases que tengan una condición avanzada asociada.

• Ver subfases: Abre la ventana con las puntuaciones de las subfases de la fase seleccionada.

La lista desplegable “Excluir no aptos en la fase” permite ocultar los candidatos no aptos en una fase de filtro anterior.

3.5.2.6.EVALUAR SUBFASES

Desde esta ventana se evalúan las subfase pertenecientes a una fase. Al igual que la evaluación de fases se muestra una hilera por candidato y una columna para cada subfase.

Antonio Martínez de Castro 30

Page 31: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Evaluaciones – PUNTUACIONES SUBFASES CANDIDATOSEvaluaciones – PUNTUACIONES SUBFASES CANDIDATOS

CÓDIGO NOMBRE EVAL1 EVAL2 EVAL3

DATOS CANDIDATO RECALCULAR

Fase:

Nota

Año: Código: Convocatoria:

2005 00009 Prueba convocatoria

Ilustración 19 Nueva interficie con las puntuaciones de los candidatos por subfases (evaluaciones)

Nota: Dentro de las subfases no se puede añadir candidatos ni cambiar el perfil de la preselección.

3.5.2.7.AÑADIR CANDIDATO

La primera vez podemos elegir un perfil para introducir una lista de candidatos automáticamente.También se pueden ir añadiendo candidatos de forma manual uno a uno mediante la función de búsqueda.

AÑADIR CANDIDATOAÑADIR CANDIDATO

Candidato:

(Nuevo)Perfil:

(Nuevo)Se escoge un perfil para añadir candidatos . También se puede

crear uno nuevo .

Aparece la ventana BUSCAR…. El candidato seleccionado se

añadirá a la lista .

ACEPTAR

Año: Código:

Convocatoria:

2005 00009

Prueba convocatoria

Ilustración 20 Interficie para añadir un nuevo candidato manualmente.

Antonio Martínez de Castro 31

Page 32: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

3.5.2.8.CONCLUSIÓN

La complejidad de esta tarea ha sido que con el módulo anterior las opciones las decidía automáticamente el perfil cuando se iba creando para cada fase (operadores, condiciones avanzadas, etc.) y era también el perfil el que dividía automáticamente las fases en evaluaciones si se daban unas condiciones.

El reto ha sido intentar cambiar la interficie para que el usuario no tuviera que crear perfiles para definir las fases. Eso ha supuesto un gran estudio de los parámetros necesarios para configurar una fase y sus relaciones entre ellos.

De todos modos, el diseño se ha hecho teniendo en cuenta la compatibilidad con el formato anterior y el diseño de perfiles aun se sigue utilizando para crear la primera fase de preselección, con el objetivo de en el futuro cambiar el diseño para usar expresiones, que son más fáciles de crear por el usuario.

Para eliminar la utilización de un perfil en la fase de preselección se ha pensado en un complejo diseño de tablas desnormalizadas que incremente el rendimiento y disminuya la complejidad al usuario.

3.5.3.MODIFICACIÓN DE LA ESTRUCTURA DE LA BASE DE DATOS DEL MÓDULO DE SELECCIÓN

Con la utilización de los perfiles, la información de las fases se guardaba en una estructura de árbol, describiendo los datos que se tenían que consultar del currículo para cada fase. Este sistema es muy potente pero implica un gran número de accesos a la base de datos para ver los valores concretos de los candidatos en una fase determinada. Para aumentar el rendimiento y el mantenimiento de la BD, se realizó un diseño en que se tuvieran todos los valores de los candidatos para cada fase de una convocatoria, guardados de de forma plana en un solo registro. Esto implica que con solo una sentencia SQL plana se pueden estudiar dichos datos.

3.5.4.FASE DE PRESELECCIÓN

3.5.4.1.PRESEL. UTILIZANDO UN PERFIL

La lista de candidatos inicial se carga a través de la selección de un perfil creado previamente. Nos aprovechamos de la funcionalidad de perfiles ya que es una herramienta muy potente para crear filtros de candidatos cuando la lista es muy extensa. En la ventana de “puntuaciones fases candidatos” hay un botón de añadir candidato, donde sale otra ventana donde se puede elegir un perfil. El mantenimiento de los perfiles se hace con las funcionalidades ya existentes. El transponer las puntuaciones de las fases por proceso de selección no interfiere en la estructura de perfiles.

Antonio Martínez de Castro 32

Page 33: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

3.5.4.2.PRESEL. UTILIZANDO UNA EXPRESIÓN SOBRE LA TRANSPUESTA

Esta primera fase es la que se encarga de hacer un primer filtro de posibles candidatos. Tiene que ser lo bastante potente como para filtrar una gran cantidad de candidatos en el menor tiempo posible teniendo en cuenta las características (del currículo) necesarias para que la lista de posibles candidatos sea lo mas corta posible y ajustada a nuestros especificaciones.

Tenemos la opción de los perfiles que es una herramienta muy potente pero de alta dificultad de aprendizaje para el usuario y realiza un gran número de consultas a la DB para calcular la lista de candidatos.

Para facilitarle la vida al usuario, una posible solución seria tener una tabla desnormalizada predefinida por el usuario (en la instalación y después con su mantenimiento) con todos los campos (características del currículo) que el usuario quiere valorar para la preselección. En la tabla se tendrían el campo NIF del empleado con los otros valores (un registro por empleado). Estos valores se actualizan desde el currículo con TRIGGERS sobre la BD. La tabla incluso puede estar particionada por fecha de actualización para una búsqueda más rápida de los candidatos. Así la creación de la primera lista de candidatos seria resultado de una simple sentencia plana.

Teníamos dos opciones para crear la tabla transpuesta:

• Que todos los campos de la transpuesta fuesen boléanos, implicando que se guardaba una expresión lógica para cada campo que definiera si un candidato la cumplía o no.

• Que los campos contuviesen los valores del currículo de los candidatos para después aplicarles una expresión lógica.

Nos decidimos por la segunda opción por ser más flexible.

La creación de esta tabla transpuesta implica entre otras características:

• Cada tabla hija de CANDIDATO sobre la que se pueda hacer un filtro de preselección deberá tener un TRIGGER, que lanzará un STORED PROCEDURE pasándole el nombre de la tabla y las PK’s fijadas del registro que se ha modificado.

• Debe existir unas tablas para guardar la configuración de los campos realizada por el usuario.

• Debe existir unas tablas precargadas de fábrica con las tablas y campos susceptibles de ser transpuestos.

• Puesto que al transponer se está pasando una tabla con relación 1-N con el candidato a una tabla con un solo registro por candidatos, el usuario deberá fijar un criterio para limitar el número de registros a uno o

Antonio Martínez de Castro 33

Page 34: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

bien seleccionar una operador de agregado (SUM, MAX, MIN, AVG, ULTIMO_CRONOLÓGICO)

• La tabla transpuesta tendrá relacion 1-1 con la tabla de candidatos.• Los valores ha guardar en la transpuesta pueden ser numéricos,

boléanos o pertenecientes a un grado de una escala, como lo son los del currículo.

• Requiere la utilización de expresiones y su posterior mantenimiento.

3.5.4.3.MANTENIMIENTO DE LA TABLA TRANSPUESTA

También diseñe las interficies necesarias para que el usuario pudiese configurar los campos de la transpuesta.

Esta fase del diseño fue la más complicada y motivadora, pues en ella se encerraban grandes obstáculos a batir.Se necesitaba toda una estructura precargada de fábrica para saber todos los tipos de atributos que podían ser valorados del currículo en la tabla transpuesta. También se necesitaba saber de que tipo eran y lo que ocupaban.Un ejemplo seria la tabla Idiomas, que podía tener la puntuación del idioma en cuestión o un grado sobre una escala. En la tabla transpuesta se tenia que poder definir un campo con cualquier de los dos atributos.Otro problema con el que me enfrente era que una tabla podía tener varias PKs implicando con ello diferentes configuraciones para una misma tabla.Un ejemplo de este caso seria la tabla Cursos, en la que aparte de la clave curso, también está la clave fecha, que dice cuando se ha realizado ese curso. Pues bien, el sistema tiene que poder ser capaz de fijar todas las claves o dejar algunas sin fijar, para lo que se define una función de agregado. Un ejemplo de esto seria poder coger la media de las puntuaciones de los cursos de “X” hechos el último año.

3.5.4.4.INTERFICIES DEL MANTENIMIENTO DE LA TABLA TRANSPUESTA PARA EL PROCESO DE PRESELECCIÓN

Un usuario puede ver los campos que hay creados en la tabla transpuesta mediante la pantalla TABLA DE PRESELECCIÓN:

Antonio Martínez de Castro 34

Page 35: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

TABLA DE PRESELECIÓNTABLA DE PRESELECIÓN

CAMPO1

COLUMNA

Conocimientos de Inglés.

DESCIPCIÓN VALOR AGR.

EXPRESIONES

Ilustración 21 Lista de todos los campos creados en la tabla transpuesta.

En ella están listados todos los campos que se pueden tener en cuanta en una expresión. Cada campo tiene una descripción rellenada por el usuario para su mejor compresión de lo que evalúa, y un valor agregado para el caso en que ese atributo a valorar necesite mas de una clave a fijar para ese encontrar el valor de ese atributo.

Si apretamos en la barra de herramientas de GC “crear nuevo” nos sale la pantalla para crear un campo nuevo de la tabla transpuesta.

CREAR COLUMNA PRESELECCIÓNCREAR COLUMNA PRESELECCIÓN

COLUMNA:

Idiomas.CONCEPTO:

Puntuación idioma.

SUMFUNCIÓN AGREGADO:MULTIVALOR

CAMPO1

IDIOMACLAVES DE LA COLUMNA

INGLÉSVALORES

VALORES FIJOS

ATRIBUTO A VALORAR

DESCRIPCIÓN: Conocimientos de Inglés.

Ilustración 22 Interficie de creación de un campo nuevo de la transpuesta.

Cuando el concepto es multivalor se activa el combobox para elegir el agregado:

Antonio Martínez de Castro 35

Page 36: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Dependiendo del concepto los tipos de agregados pueden cambiar. Estos agregados para cada concepto estarán guardados en una tabla rellenada de fábrica.En el caso que el agregado escogido no actúa sobre el atributo escogido (ejemplo: máx. sobre PUNTUACIÓN), sino que actúa sobre una clave no fijada (ejemplo: última puntuación, que actúa sobre la fecha del último examen o curso), en una tabla rellenada de fabrica con las configuraciones se le dirá el agregado a utilizar y el campo al que se aplicará.

3.5.4.5.MANTENIMIENTO DE LAS EXPRESIONES

Otra dificultad con la que me topé era la de crear de forma dinámica las expresiones sobre los campos pero se resolvió con una aplicación de condiciones avanzadas modificada en la que se pueden ir eligiendo los campos y los operadores lógicos.

Una expresión es una formula en la que intervienen los diferentes campos de la tabla transpuesta para dar lugar a una lista mas o menos reducida de candidatos para la fase de preselección.Un usuario puede ver las diferentes expresiones que hay definidas en la ventana de preselección, apretando el botón de EXPRESIONES.

EXPRESIONESEXPRESIONES

EXPRESION1

EXPRESIÓN

dd/mm/aaaa

FECHA DESCRIPCIÓN

CONDICIONES AVANZADAS

Ilustración 23 Lista de expresiones para poder hacer una preselección. Trabajan sobre campos de la transpuesta.

Antonio Martínez de Castro 36

Page 37: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

El usuario puede ver la expresión desarrollada clickeando el botón de CONDICIONES AVANZADAS. Para crear una expresión nueva se hace apretando el botón nuevo de la toolbox y aparecerá también la ventana de CONDICIONES AVANZADAS.En esta ventana el usuario puede escoger los campos con los que va a trabajar. Se puede dar la opción de poner también campos del currículo que no han sido creados en la tabla transpuesta dando así más opción y flexibilidad al usuario.

CONDICIONES AVANZADASCONDICIONES AVANZADAS

EXPRESIÓN1

CAMPOS:

INGLÉS

OPERADORES:

ES NULOIGUALDISTINTOMAYORMAYOR O IGUALMENORMENOR O IGUALYONO

VALORES:

EXPRESIÓN:

LIMPIAR CONSULTA ACEPTAR CANCELAR

=

CURRICULUM:

DESCRIPCIÓN EXPRESIÓN:

Ilustración 24 Interficie de creación de expresiones. Aparece un listado con los campos de la transpuesta y atributos básicos del currículo y todos los operadores lógicos que se pueden aplicar

para obtener un resultado booleano.

El funcionamiento de la ventana de condiciones avanzadas es el mismo que en los otros módulos, devolviendo una consulta para su posterior ejecución.Una posible funcionalidad más seria tener una ventana que mostrase en forma de lista todos las descripciones de todos los campos utilizados por una expresión seleccionada, teniendo el usuario en una sola vista los campos que se utilizan, sin que tenga que estar analizando los campos que hay en la expresión, ya que en ella aparecen dentro de expresiones lógicas con sus condiciones y operadores.

Antonio Martínez de Castro 37

Page 38: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Antonio Martínez de Castro 38

Page 39: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

4. HERRAMIENTAS UTILIZADAS

4.1.ERWIN

ERWIN es una herramienta CASE con una interfície gráfica que permite crear nuevas Bases de Datos y modificar las ya existentes (Ilustración 25).

Ilustración 25: Entorno de trabajo de la herramienta ERWIN. Se puede observar el diseño lógico entidad-relación de una parte de la Base de Datos del módulo de selección de

personal de la aplicación EPSILON.

4.1.1.FUNCIONALIDADES

Gracias a su completa y amigable interfície gráfica, mediante ERWIN podemos diseñar Diagramas de Entidad – Relación de cualquier grado de complejidad. Este modelo lógico puede ser modificado con las diferentes herramientas internas de ERWIN, permitiendo:

• Crear nuevas tablas y eliminar existentes.• Modificar el nombre de tablas ya existentes.• Crear y eliminar campos de una determinada tabla.• Modificar el nombre, el tipo, la longitud, la precisión, los valores por

defecto, … de cada uno de los campos de la tabla.• Crear y eliminar Constraints (Primary Key, Foreign Key, etc.)

Antonio Martínez de Castro 39

Page 40: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• Definir propiedades para cada una de las inter-relaciones que hay entre las diferentes tablas de la Base de Datos.

• Etc.

Una característica muy importante de esta herramienta CASE es que nos permite realizar la Ingeniería del Diseño de las Bases de Datos Relacionales en los dos sentidos:

• Por un lado, a partir del diseño del Diagrama de Entidad – Relación, nos confeccionará un script con todos los comandos necesarios para crear la Base de Datos física.

• Por otro lado, podemos hacer el proceso inverso: a partir del script nos permite generar de forma automática el correspondiente Diagrama de Entidad – Relación.

Cuando hemos de realizar cambios en una determinada Base de Datos, lo que hacemos es modificar el modelo lógico; a partir de este, generamos de nuevo el script. Entonces bien, esto solamente lo podemos hacer cuando todavía no se está utilizando esta Base de Datos; pero si ya hay clientes que tienen datos guardados, hemos de crear nosotros mismos los scripts que incluyen las modificaciones en el lenguaje SQL estándar.

Esta herramienta de trabajo es muy útil para entornos de trabajo Cliente/Servidor, ya que puede trabajar con cualquier tipo de Base de Datos, independientemente del Sistema Gestor que la administra.

4.1.2.MULTISISTEMA

De esta forma, dado un determinado Diagrama de Entidad – Relación correspondiente a una Base de Datos, se genera el correspondiente script con un lenguaje de definición de datos (DDL). Entonces, si ejecutamos el script desde un gestor como Plus Oracle, se genera la Base de Datos en Oracle, si lo ejecutamos en otro sistema gestor como por ejemplo SQLServer, se genera la Base de Datos dentro del SQLServer.

NOTA: He comprobado que puede ser posible que se tengan que cambiar algunos caracteres especiales o quitarlos (ejemplo paréntesis).

4.2.SQLSERVER

As aplicaciones de ultima generación de Grupo Castilla soportan las principales Sistemas Gestores de Bases de Datos del mercado como son ORACLE, SQLServer, Informix, DB2 y Microsoft Access.

En el departamento de Recursos Humanos se utilizan principalmente ORACLE y SQLServer. Para hacer las pruebas de software yo utilice principalmente

Antonio Martínez de Castro 40

Page 41: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

SQLServer. Con el implemente la base de datos y realice todo tipo de pruebas para comprobar el correcto funcionamiento. También implemente funciones de almacenamiento y desencadenadores, que son funciones que se disparan cuando se modifica algún valor de la base de datos que tú previamente has programado y son específicas para una tabla de la base de datos determinada. Estas últimas me fueron extremadamente útiles para implementar una solución final de la base de datos.

Ilustración 26 En la captura se ve a la izquierda las tablas de la base de datos; Arriba y a la derecha la ventana de consultas y abajo la visualización de resultados.

4.3.VISUAL STUDIO 6.0 – VISUAL BASIC

Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre los programadores de PCs, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo (comparado con lo que cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones.

Visual Basic 6.0 es un lenguaje de programación visual, también llamado lenguaje de 4ª generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla.

Antonio Martínez de Castro 41

Page 42: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Visual Basic 6.0 es también un programa basado en objetos, aunque no orientado a objetos como C++ o Java. La diferencia está en que Visual Basic 6.0 utiliza objetos con propiedades y métodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++.

4.3.1.PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS

Existen distintos tipos de programas. En los primeros tiempos de los ordenadores los programas eran de tipo secuencial (también llamados tipo batch) Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los resultados. De ordinario, mientras un programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este tipo de programas se les llama también programas basados u orientados a procedimientos o a algoritmos (procedural languages). Este tipo de programas siguen utilizándose ampliamente en la actualidad, pero la difusión de los PCs ha puesto de actualidad otros tipos de programación.

Los programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús. Los programas interactivos limitan y orientan la acción del usuario. Un ejemplo de programa interactivo podría ser Matlab.Por su parte los programas orientados a eventos son los programas típicos de Windows, tales como Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas ha arrancado, lo único que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos.El usuario dice si quiere abrir y modificar un fichero existente, o bien comenzar a crear un fichero desde el principio. Estos programas pasan la mayor parte de su tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momento determinado son variadísimas, y exigen un tipo especial de programación: la programación orientada a eventos. Este tipo de programación es sensiblemente más complicada que la secuencial y la interactiva, pero Visual Basic 6.0 la hace especialmente sencilla y agradable.

4.3.2.PROGRAMAS PARA EL ENTORNO WINDOWS

Visual Basic 6.0 está orientado a la realización de programas para Windows, pudiendo incorporar todos los elementos de este entorno informático: ventanas, botones, cajas de diálogo y de texto, botones de opción y de selección, barras de desplazamiento, gráficos, menús, etc.Prácticamente todos los elementos de interacción con el usuario de los que dispone Windows 95/98/NT pueden ser programados en Visual Basic 6.0 de un modo muy sencillo. En ocasiones bastan unas pocas operaciones con el ratón

Antonio Martínez de Castro 42

Page 43: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

y la introducción a través del teclado de algunas sentencias para disponer de aplicaciones con todas las características de Windows 95/98/NT. En los siguientes apartados se introducirán algunos conceptos de este tipo de programación.

4.3.3.MODO DE DISEÑO Y MODO DE EJECUCIÓN

La aplicación Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de diseño y en modo de ejecución. En modo de diseño el usuario construye interactivamente la aplicación, colocando controles en el formulario, definiendo sus propiedades, y desarrollando funciones para gestionar los eventos.

La aplicación se prueba en modo de ejecución. En ese caso el usuario actúa sobre el programa (introduce eventos) y prueba cómo responde el programa. Hay algunas propiedades de los controles que deben establecerse en modo de diseño, pero muchas otras pueden cambiarse en tiempo de ejecución desde el programa escrito en Visual Basic 6.0, en la forma en que más adelante se verá.También hay propiedades que sólo pueden establecerse en modo de ejecución y que no son visibles en modo de diseño.

4.3.4.FORMULARIOS Y CONTROLES

Cada uno de los elementos gráficos que pueden formar parte de una aplicación típica de Windows 95/98/NT es un tipo de control: los botones, las cajas de diálogo y de texto, las cajas de selección desplegables, los botones de opción y de selección, las barras de desplazamiento horizontales y verticales, los gráficos, los menús, y muchos otros tipos de elementos son controles para Visual Basic 6.0.

En la terminología de Visual Basic 6.0 se llama formulario (form) a una ventana. Un formulario puede ser considerado como una especie de contenedor para los controles. Una aplicación puede tener varios formularios, pero un único formulario puede ser suficiente para las aplicaciones más sencillas.

4.3.5.OBJETOS Y PROPIEDADES

Los formularios y los distintos tipos de controles son entidades genéricas de las que puede haber varios ejemplares concretos en cada programa. En programación orientada a objetos (más bien basada en objetos, habría que decir) se llama clase a estas entidades genéricas, mientras que se llama objeto a cada ejemplar de una clase determinada. Por ejemplo, en un programa puede haber varios botones, cada uno de los cuales es un objeto del tipo de control command button, que sería la clase.

Cada formulario y cada tipo de control tienen un conjunto de propiedades que definen su aspecto gráfico (tamaño, color, posición en la ventana, tipo y tamaño

Antonio Martínez de Castro 43

Page 44: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

de letra, etc.) y su forma de responder a las acciones del usuario (si está activo o no, por ejemplo). Cada propiedad tiene un nombre que viene ya definido por el lenguaje.

Casi todas las propiedades de los objetos pueden establecerse en tiempo de diseño y también -casi siempre- en tiempo de ejecución. En este segundo caso se accede a sus valores por medio de las sentencias del programa, en forma análoga a como se accede a cualquier variable en un lenguaje de programación.

El departamento de I + D de Grupo Castilla ha creado componentes propios que aumentan la rapidez de programación y la calidad del producto. Estos componentes se pueden ver en el apartado 4.5.

4.3.6.EVENTOS

Son acciones del usuario sobre el programa se llaman eventos. Son eventos típicos el clickear sobre un botón, el hacer doble clic sobre el nombre de un fichero para abrirlo, el arrastrar un icono, el pulsar una tecla o combinación de teclas, el elegir una opción de un menú, el escribir en una caja de texto, o simplemente mover el ratón.

4.3.7.MÉTODOS

Los métodos son funciones que también son llamadas desde programa, pero a diferencia de los procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas con el lenguaje.

4.3.8.PROYECTOS Y FICHEROS

Cada aplicación que se empieza a desarrollar en Visual Basic 6.0 es un nuevo proyecto. Un proyecto comprende otras componentes más sencillas, como por ejemplo los formularios (que son las ventanas de la interface de usuario de la nueva aplicación) y los módulos (que son conjuntos de funciones y procedimientos sin interface gráfica de usuario).

4.3.9.EL ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0

En el entorno de programación se distinguen los diferentes elementos:

• La barra de títulos, la barra de menús y la barra de herramientas de Visual Basic 6.0 en modo Diseño.

• Caja de herramientas (toolbox) con los controles disponibles.• Formulario (form) en gris, en que se pueden ir situando los controles.

Antonio Martínez de Castro 44

Page 45: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

• Ventana de proyecto, que muestra los formularios y otros módulos de programas que forman parte de la aplicación.

• Ventana de Propiedades, en la que se pueden ver las propiedades del objeto seleccionado o del propio formulario.

• Ventana FormLayout, que permite determinar la forma en que se abrirá la aplicación cuando comience a ejecutarse.

Ilustración 27 Entorno de programación de VB 6.0. En la izquierda el se ven los objetos propietarios de Castilla.

4.4.CRYSTAL REPORTS

En todas las aplicaciones desarrolladas en Grupo Castilla hay un gran nombre de listados y informes, los cuales se desarrollan mediante la herramienta Crystal Reports. Crystal Reports de Seagate es una herramienta muy simple pero potente que permite crear de manera rápida listados profesionales.

Los listados que se hacen con CR son accesibles desde Visual Basic gracias a un control que este último dispone. CR dispone de un sistema de ayuda de listados, que te ayuda a seleccionar las tablas del listado, a colocar las relaciones, insertar campos i ordenar los registros por los campos indicados. Para poder establecer la relación entre las diferentes tablas que forman el listado, CR dispone de un sistema de ayuda a la Vinculación Visual, donde se muestran todas las tablas y de una manera muy sencilla se pueden establecer las relaciones entre ellas.

Al relacionarse dos tablas, se configura que la consulta sea:

Antonio Martínez de Castro 45

Page 46: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• Por equivalencia, si los registros resultantes son todos aquellos donde el campo vinculado en las dos tablas es igual.

• Izquierda externa si el conjunto de registros resultantes son todos los registros de la tabla principal (izquierda) aunque el valor del campo vinculado no exista en la tabla de búsqueda (derecha).

• Derecha externa si el conjunto de registros resultante son todos los registros de la tabla de búsqueda (derecha) aunque el valor del campo vinculado no exista en la tabla principal (izquierda).

4.4.1.SECCIONES

Cada Cristal Reports contiene las siguientes secciones (Ver ilustración 28):

• Cabecera del report: Cada objeto que introducimos en esta sección solo se repetirá una sola vez al inicio del listado.

• Cabecera de la página: Los objetos introducidos aquí se repiten al inicio de cada página del listado.

• Detalles: Los objetos que ponemos en esta sección se repetirán para cada registro que se obtenga de la consulta hecha, siempre y cuando en la sección haya algún campo de un registro de la Base de Datos o alguna fórmula donde intervenga alguno.

• Pie de página: Los objetos introducidos en esta sección se repiten al pie de cada página del listado.

• Pie del report: Los objetos que se colocan en esta sección solo se repiten una vez al final del listado al pie de página.

Antonio Martínez de Castro 46

Page 47: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Ilustración 28 Captura de CR donde se aprecian las diferentes secciones y elementos.

Estas son las secciones que aparecen por defecto en cada ficha de diseño del listado. Cada sección se puede subdividir en otras secciones. Las secciones se pueden ocultar o suprimir siempre o solamente cuando se cumpla una fórmula introducida.

Cada grupo que se crea hace aparecer en el listado dos nuevas secciones:

• Cabecera del grupo: Donde se colocan los objetos que queremos que aparezcan cada vez que el campo o fórmula por el/la agrupamos cambia de valor.

• Pie de grupo: Donde colocamos los objetos que queremos que aparezcan al final del grupo. Se repetirá tantas veces como valores diferentes tenga el campo por el que se ha hecho la agrupación.

Cada sección o grupo tienen unos campos de control que se pueden activar o no. Estos son:

• Ocultar: Lo activamos cuando no queremos que la sección se imprima.• Nueva página antes: Inserta un salto de página antes de imprimir el

grupo o sección.• Nueva página después: Inserta un salto de página después de imprimir

la sección o el grupo.• Imprimir al final de página: El grupo de valores solamente será impreso

al final de la página.• Restablecer el número de páginas después: Pone a ‘1’ el número de

página de la siguiente página, después de imprimir un total de grupo.

Antonio Martínez de Castro 47

Page 48: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• Mantener justo: Mantiene juntas todas las líneas de una sección, en la página actual si hay espacios o en la siguiente si no los hay.

• Suprimir sección en blanco: Si no hay datos en la sección, esta no se imprime.

Estos controles que hay en cada sección o grupo pueden estar siempre activados, siempre desactivados o se pueden activar y desactivar dependiendo de los valores de una fórmula asociada.

4.4.2.ELEMENTOS

En un listado de Crystal Reports puede haber los siguientes elementos:

• Campos de las tablas de las bases de datos.• Campos de formulas: Cristal Reports dispone de un editor de fórmulas

mediante el cual estos campos son creados. Las formulas son campos calculados normalmente a partir de los campos de la base de datos, donde dependiendo del valor haces que aparezca un valor u otro en el listado.

• Parámetros: Son variables, el valor de las cuales se introduce en tiempo de ejecución del listado. Cada vez que se ejecuta el report, CR te pregunta si quieres cambiar el valor y si no pone el valor por defecto.

• Campos de texto: Son los utilizados para las etiquetas y títulos del listado.

• Campos especiales: Pueden ser el número de página, la fecha actual, etc.

Un listado puede contener a su vez otros subreports. Un subreport es un listado con secciones, grupos y elementos como otro listado, con la diferencia que se muestra cada vez que se ejecute y se muestre la sección donde se encuentre ubicado. El listado principal y el subreport pueden tener o no campos que hagan unión entre ellos. Un subreport no puede tener a su vez otros subreports.

4.5.CONTROLES PROPIOS DE GRUPO CASTILLA

Los controles utilizados en el modelo son los siguientes:

• Block• DbTextBox• DbChexkBox• DbMemo• DbCombo

Antonio Martínez de Castro 48

Page 49: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

• DbFlexGrid

A continuación se detallarán las propiedades, métodos y eventos más utilizados de cada control.

4.5.1.BLOCK

Es quien lleva el control de todo. Mediante este objeto se puede acceder y modificar una tabla. El Block te permite consultar un registro existente, modificar un registro o cuando se lanza una búsqueda, si detecta que el registro no existe entra en estado de alta permitiéndote introducir ese nuevo registro.

Las Propiedades y Métodos más utilizados del Block son:

• ADDFIELD: Este método se utiliza para enlazar un control (dbtexbox, dbcheckbox, dbcombo) a un campo de la Base de Datos. Este control pasa a formar parte de la lista de controles del Block. Su sintaxis es la siguiente:

block.AddField nombre, “campo”, “etiqueta”, PK, Requerido, IdHElp, M.Ent, M.Sal, ReadOnly

Donde nombre es el nombre del control, campo el campo de la Base de Datos, etiqueta es la etiqueta que saldrá en el formulario, PK es un bolean donde le decimos si este campo es clave primaria, requerido es un booleano donde se le indica al bloque si el campo puede dejarse vacío o no, IdHelp para la ayuda, M.Ent introduces la máscara que quieres que se visualice en este campo, M.Sal introduces la máscara de salida que llevará el campo ej (si introduces 12 y la máscara es “000” al salir del campo tendrás “012”), ReadOnly si su valor es true valor del campo, una vez dado de alta no se podrá modificar (por defecto de fase)

• CURSOR: Devuelve el cursor que utiliza el bloque. Este contendrá los campos de la tabla que se le hayan indicado en el setblock

• CxODBC: Devuelve la conexión.• HASTOOLBARATTACHED: Si su valor es true, el Block tiene la

toolbar en su poder, es decir, las acciones que refleja la barra de herramientas corresponden a ese Block.

• HOLDAFTERADD: Si su valor es true, después de dar de alta un registro se mantendrán los datos en el formulario. Por defecto es false por tanto al dar de alta se borrarán los datos del formulario para poder ejecutar una nueva alta, búsqueda,…

• PSEUDOMASTERDETAIL: Propiedad donde se le indica al Block si es pseudomasterdetalle. Más adelante está explicado qué es un pseudomasterdetalle.

• SETBLOCK: Método donde se liga el bloque a una tabla. Por tanto un bloque sólo puede mantener una tabla. Su sintaxis es la siguiente:

Antonio Martínez de Castro 49

Page 50: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Block.SetBlock cx, “tabla”, “campos”, “condición”, “orderby”, toolbar

Donde cx es la conexión a la base de datos, tabla es el nombre de la tabla, campos son los campos que quieres leer de la tabla, condición es la condición de búsqueda de los registros (por defecto todos), orderby campos por los que ordenar, toolbar barra de herramientas.

• SETFOCUSATFIRSFIELD: Envía el foco al primer campo la lista que tiene el bloque.

• SETMASTER: Método donde se le indica al bloque, que él es detalle de otro bloque master también se le indican los campos por los que van ligados. La sintaxis es la siguiente:

Bloque.SetMaster bloque1, “campod_1,…,campod_n”, “campom_1,…,campom_n”

Donde Bloque es el bloque detalle, bloque1 es el bloque master, campod_x campos de bloque detalle con los que se liga con el master, campom_x campos del bloque master con los que se liga con el detalle.

• STATUS: Nos indica en que estado se encuentra el Block. Hay cuatro posibles estados del Block. Estos valores son:

BkUnSynAdd (estado de alta): Estado al que entra el bloque después de haber detectado que todos los campos de la clave primaria han sido introducidos y el registro no existe. En este estado es donde se introducen nuevos registros. Se termina cuando grabas, que pasa al estado bkunsyncfind o cuando anulas el alta que pasa al estado anterior al del alta

BkSyncModify (estado de modificación): Estado al que entra el bloque después del estado edición (donde tienes datos en la pantalla) y modificas algún campo. Se termina cuando grabas, que pasa al estado bkunsyncfind o cuando anulas la modificación que pasa al estado de edición.

BkSyncEdit (estado de edición): Estado que se produce después de haber hecho una búsqueda y detectado que hay valores con esa edición, estos valores serán mostrados en el formulario por el bloque. (Dicho de otra forma, cuando hay cargados uno o más registros en pantalla).

BkUnSyncFind (estado de búsqueda): Estado al que entra el bloque cuando se le da a la tecla de nuevo de la barra de herramientas. Al entrar en estado, todos los controles que estén legados al Block se limpiarán. El bloque está preparado para hacer una nueva búsqueda. A este estado también se llega después de haber dado de alta un registro,

Antonio Martínez de Castro 50

Page 51: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

siempre y cuando la propiedad holdafteradd no esté activada.

• TABLE: Propiedad que contiene la tabla que utiliza el Block.• TOOLBAR: Propiedad que apunta a la toolbar que el Block utiliza.• VACIAGRID: Método que te permite limpiar los datos del gris (si hay

un gris ligado al bloque)

Los eventos del Block son los siguientes:

• BEFOREADDNEW: Se lanza cuando se han llenado todos los campos PK del bloque y este detecta que el registro no existe en la base de datos. El Block después de lanzar el evento pasa al estado bkunsyncadd. Permite efectuar operaciones previas a la grabación de un registro siempre y cuando la actualización proceda de una Alta. En este evento no se puede modificar directamente ningún dato del cursor.

• BEFOREEDIT: Se lanza justo después de que el Block ha detectado que algún campo de los que hay en pantalla ha sido modificado. El Block después de lanzar el evento pasa al estado bksyncmodify. Permite efectuar operaciones previas a la grabación de un registro siempre y cuando la actualización proceda de una Modificación. En este evento no se puede modificar directamente ningún dato del cursor.

• BEFOREUPDATE: Se lanza justo antes de que se actualice el cursor del bloque. Es el momento idóneo para hacer alguna comprobación sobre los campos que hay en pantalla antes de grabar el registro y anular la acción si estos no son correctos (block.currentaction=bkcancel) tanto si esta actualización procede de un Alta o de una Modificación. En este evento no se puede modificar directamente ningún dato del cursor.

• ONUPDATE: Es el evento idóneo para actualizar directamente campos del cursor. Se da tanto si estás modificando un registro como si lo estás dando de alta.

• AFTERUPDATE: Se lanza justo después de que se actualicen los datos en el cursor del bloque. Permite efectuar operaciones posteriores a la grabación de un registro tanto si has dado de alta un registro o lo has modificado. En este evento no se puede modificar directamente ningún dato del cursor.

• AFTEREDIT: Este evento se lanza justo después de que se actualice el cursor del bloque, pero sólo si esta actualización se debe a una modificación. Permite efectuar operaciones posteriores a la grabación de un registro debido a una modificación. En este evento no se puede modificar directamente ningún dato del cursor.

Antonio Martínez de Castro 51

Page 52: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• AFTERADDNEW: Este evento se lanza justo después de que se actualice el cursor del bloque, sólo si esta actualización procede de un alta. Permite efectuar operaciones posteriores a la grabación de un registro después de haberlo dado de alta. En este evento no se puede modificar directamente ningún dato del cursor.

• REPOSITION: Se produce siempre que el bloque se posiciona en una fila distinta del cursor, es decir cuando se cambia de registro. El bloque se encuentra siempre en estado de edición. Este evento se suele utilizar para cargar los cambios sólo con el registro del cursor para evitar que se carguen con todos los campos aumentando así la rapidez en el momento de la carga del registro.

• LEAVE: Se produce cuando el foco se va a un campo de otro Block.

• GOTFOCUS: Se produce cuando el foco se va un campo de este Block.

• UNSYNCFIND: Se lanza justo antes de que el bloque entre en el estado de búsqueda (bkUnsyncfind), es decir se lanzará en dos casos: cuando tengas un registro en pantalla y pulses el botón de nuevo registro de la barra de herramientas y se lanzará este evento pues a continuación entrará en estado de búsqueda, o bien después de dar de alta un registro que el bloque también pasa al estado de búsqueda (siempre y cuando no esté la propiedad holdaferadd activada pues el block pasaría al estado de edición).

• CHGSTATUS: Se lanza cada vez que el bloque cambia de estado. Cuidado al asignar valores en este estado pues según el estado donde te encuentres, el bloque podría pasar a otro estado y se volvería a lanzar el chgstatus ej. Si estábamos en estado de edición con un registro y por código cambiamos algún valor de este, el bloque cambiaría al estado de modificación y se volvería a ejecutar el chgstatus.

• BEFOREDELETE: Se lanza cuando el usuario ha confirmado que desea borrar el registro, justo en el momento anterior de borrar el registro del cursor. Es el momento idóneo para borrar registros de otras tablas que dependan del registro de borrar.

• AFTERDELETE: Se lanza inmediatamente después de borrar el registro del cursor.

NOTA: Antes de eventos befote,… se empieza una transacción, y ésta se terminará después del evento alter,… Esto quiere decir que si se produce un error en uno de estos eventos, el Block no sigue adelante y rechaza todos los cambios efectuados.

Antonio Martínez de Castro 52

Page 53: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

4.5.2.DbTextBox / DbCheckBox /DbCombo /DbMemo

En la Ilustración 27 se pueden observar a la izquierda los controles propietarios de Grupo Castilla en adelante explicados.

El control dbtextbox se utiliza normalmente para campos de la Base de Datos cuyo valor no sea verdadero/falso ni para campos que no sean varchar. Puede utilizarse sin que esté ligado al Block, es decir a ningún campo de la Base de Datos solamente como una entrada de datos que el programa pueda utilizar.

El control dbcheckBox se utiliza normalmente para campos de la Base de Datos cuyo valor sea verdadero/falso. Puede utilizarse como el anterior, sin que esté ligado al Block, es decir a ningún campo de la Base de Datos solamente como una entrada de datos que el programa pueda utilizar. El dbcheckBox puede tener tres posibles valores “1” activado, “0” no activado o el valor nulo (este se utilizará sólo para las búsquedas indicando así que te seleccione registros que tengan tanto ese campo activado como no).

El control dbCombo se utiliza para mostrar los valores de uno o varios campos de una tabla, dependiendo de la condición que se le introduzca. Puede utilizarse como el anterior, sin que esté ligado al Block, es decir a ningún campo de la Base de Datos, solamente como una entrada de datos que el programa pueda utilizar.

El control dbMemo se utiliza normalmente para campos de la Base de Datos cuyo valor sean varchar. Puede utilizarse sin que esté ligado a ningún campo de la Base de Datos, es decir sólo para alguna entrada de datos que el programa pueda utilizar.

Las propiedades y métodos más utilizados y que son diferentes de los controles estándar del VB son:

• DEFINE: Método que se utiliza normalmente sólo en aquellos controles que no están ligados al bloque, se utiliza para colocar una etiqueta al control. Se utiliza de de la siguiente manera:

Control.Define “campo”, “etiqueta”

Donde campo sería el nombre del campo de la base de datos, en este caso podríamos “” pues no está ligado a ningún campo, etiqueta es la etiqueta que quieres que te aparezca en el formulario.

Los campos que van ligados al bloque, éste ejecuta el define cuando se hace el addfield al bloque.

• FIELDNAME: Propiedad que contiene el nombre del campo de la base de datos cuyo valor se mostrará en el control. Su valor se introduce en el addfield del control. Por defecto su valor es false.

Antonio Martínez de Castro 53

Page 54: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• FIELDLABEL: Propiedad que contiene el valor de la etiqueta del control. Su valor se introduce en el addfield del control. Por defecto su valor es false.

• FORMATO: Propiedad que contiene el formato del campo. En un control ligado al bloque su valor será el que se ponga en la máscara de salida, en cambio en los controles que no están ligados al bloques es en esa propiedad donde le introducimos el formato que deseamos que tenga el campo al salir de éste.

• HOOKEDON: (Sólo en textbox y en combos) Propiedad que indica a qué valor va ligado el valor de este control. Se utiliza para sincronizar el valor de dos valores, pues un control estará ligado al bloque y el otro no. Normalmente un control será un combo y el otro el textbox.Lo que hace el hookedon es acceder al evento carga_combo del combo y hacer la búsqueda del valor del campo de la tabla igual al valor de textbox.

• ISPRIMARYKEY: Propiedad que indica si el campo de la Base de Datos del control, es clave primaria o no. Su valor se introduce en el addfield del control. Por defecto su valor es false.

• ISREQUIRED: Propiedad que indica si el valor del campo es requerido o no. Su valor se introduce en el addfield del control. Por defecto su valor es false.

• SETFOCUS: Método que envía el foco al mismo control.

• READONLY: Propiedad que indica al block si este control se puede o no modificar, es decir, si su valor es trae, el valor del campo no se podrá modificar. Su valor se introduce en el addfield del control. Por defecto su valor es false.

• TIPOCAMPO: Propiedad que nos muestra el tipo de datos del campo de la BD al que está ligado el control. No hay que introducir aquí ningún valor, pues será el bloque quien detecte el tipo del campo. Si un campo no está ligado al bloque con esta propiedad puedes indicarle al control el tipo de datos que le introducirán. Si introduces un tipo erróneo te dará un error. Los valores que tiene esta propiedad pueden ser:

1 = indicará que es un entero2 = indicará que es una cadena3 = indicará que es un real4 = indicará que es una fecha5 = indicará que es memo6 = indicará que es una imagen

Antonio Martínez de Castro 54

Page 55: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

El valor por defecto que tienen los controles que no están ligados a ningún campo es string.

• VALUE: Devolverá un variant con el valor del control. En caso de los combos devolvería el valor del campo interno.

Los métodos que vienen a continuación sólo pertenecen al Combo:

• CLEAR: Se utiliza para limpiar y vaciar un combo.

• CARGA_COMBO: Se utiliza para cargar los valores de una tabla del combo. Su sintaxis es la siguiente:

Carga_combo “Tabla”, “Cpo Externo”, “Cpo Interno”, “condicion”, “orden”

Donde tabla es el nombre de la tabla de la base de datos, Cpo_externo es el campo externo, es decir el campo que veremos en el combo, Cpo_interno es el campo interno, es decir es el valor del campo por el que buscaremos en la tabla, “condicion” será la condición de búsqueda para los valores del combo, es decir por el que nos ordenará el combo (campo interno o externo).

El carga_combo lo colocaríamos en el evento dropdown del combo y en el reposition.

NOTA: El método carga_combo sólo funciona para aquellos combos que esten ligados al bloque, para los combos que no están ligados se habrá que cargar el combo valor a valor.

• DSPLYTEXT: Devuelve el valor del campo externo del combo.

• VALUE: Devuelve el valor del campo interno combo.

• ADDITEM: Se utiliza para añadir un nuevo valor a un combo. El carga_combo es quien utiliza este método.

Los principales eventos de estos controles son:

• AFTERFIELD: Se lanza en el momento que se detecta que el control pierde el foco, es decir que se pasa a otro control. Si el bloque se encuentra en estado de búsqueda y de edición éste evento no se lanza.

• BEFOREFIELD: Se lanza en el momento que el control recibe el foco. Si el bloque se encuentra en estado de búsqueda y de edición éste evento no se lanza.

• CHANGE: Se lanza cada vez que se produce algún cambio en el contenido del control.

• DROPDOWN: (solo en combos) Se ejecuta cada vez que hacemos clic para ver desplegado un combo.

Antonio Martínez de Castro 55

Page 56: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

• GOTFOCUS: Se lanza en el momento que el control recibe el focus. A diferencia del beforefield siempre se lanza.

• LOSTFOCUS: Se lanza en el momento que se detecta que el control pierde el focus. A diferencia del afterfield este evento se ejecuta siempre.

4.5.3.GRID

Control que te permite dar de alta, modificar, borrar o consultar registros de una tabla. A un block solo se le puede ligar un gris pues un block solo puede controlar una tabla.

Algunas de las propiedades y métodos que cabe destacar son:

• ADDCOLUMN: Método que sirve para añadir una columna al gris. Su sintaxi es la siguiente:

Grid.AddColumn crtl, “CAMPO”, “etiqueta”, PK, Req, hlp, M_ent, M_sal

Donde crtl es el tipo de control de la columna (1 textbox, 2 combo, 3 checkbox), campo será el nombre del campo de la BD, etiqueta que aparecerá en la cabecera del gris, PK si el campo es primarykey, Req para indicarle que es requerido, hlp para la ayuda, M.Ent introduces la máscara que quieres que se visualice en este campo, M.Sal introduces la máscara de salida que llevará el campo (ej: si introduces 12 y la máscara es “000”, al salir del campo tendrás “012”)

• SENDFOCUS: Sirve para enviar el foco a una columna del gris. Se utiliza de la siguiente manera:

Gris.SendFocus(“columna”)

Los eventos del grid son los mismos que los de los otros controles. Hay una pequeña diferencia, pues al evento se le pasa el nombre de la columna. Tendremos pues que hacer distinción para cada campo de la columna.

4.5.4.TOOLBAR

Es la barra de herramientas. Esta se enlaza al bloque en el setblock de esta. La barra de herramientas la pueden compartir varios bloques, pero ésta solo reflejará las acciones del bloque que en ese momento tenga el foco.

Antonio Martínez de Castro 56

Page 57: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Ilustración 29 Barra de herramientas de Grupo Castilla en estado de consulta y en estado de creación respectivamente.

4.5.4.1.MANTENIMIENTOS

Hay cuatro tipos de mantenimientos diferenciados:• Mantenimiento registro a registro• Grid• Master/Detalle• PseudoMasterDetalle

• REGISTRO A REGISTRO

Un mantenimiento registro a registro sería el mantenimiento de una tabla sin que aparezca ningún gris. Para ello mediante el setblock enlazaríamos un block a la tabla de la BD y le enlazaríamos la barra de herramientas. A continuación se añadirían todos los controles al block (estos corresponderían con los campos de la tabla).

• GRID

Mantenimiento de una tabla mediante un grid (parrilla).

• MASTER/DETALLE

En un mantenimiento master/detalle se hace el mantenimiento de varias tablas, una tabla padre (master) y una o más tablas que dependen de ésta (detalle). Cada tabla estará ligada a un block, por lo tanto habrá tantos blocks como tablas a mantener haya. No será un master/detalle si sólo tienes algunos campos de la tabla master.

En este mantenimiento primero definiremos el block master con todos sus campos, a continuación el bloque detalle con sus campos respectivos y posteriormente mediante el método SETMASTER del block uniríamos los dos bloques. Los mantenimientos de los bloques master o detalles pueden ser registro a registro o grids.

En los mantenimientos combo, como en los mantenimientos anteriores, habría que poner el método carga_combo en los drop_downs de estos y en el reposition del block (si pertenecen al master, en el reposition del master y si pertenecen al detalle en el reposition de este)

• PSEUDOMASTERDETALLE

Antonio Martínez de Castro 57

Page 58: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Un mantenimiento PseudoMasterDetalle tendría la apariencia de un master/detalle pero sólo se haría el mantenimiento de una tabla. Normalmente se utiliza cuando quieres hacer un mantenimiento con un grid, y quieres dejar fuera del gris algunos campos, pareciendo que el gris depende de los controles exteriores. El valor de los campos exteriores, después de dar de alta un registro, no se borran por lo que aparentará un mantenimiento master/detalle.

Para indicar al block que es pseudomasterdetalle, debe de hacerse en el setblock del bloque, poniendo trae a la opción pseudomasterdetalle de dicho método.

4.5.4.2.CAPA 1 (Objeto de acceso a datos)

Capa 1 es una DLL dónde hay funciones que interrelacionan con la Base de Datos. Tiene dos partes diferenciadas:

• Conexión• Cursores

• CONEXIÖN

La conexión es quien conecta la aplicación con la BD, permitiendo al programa efectuar todas las operaciones posibles de ésta. Las principales propiedades de la conexión son:

EJECUTARSQL: Ejecuta una sentencia sql en la Base de Datos. La sentencia no puede ser un select.

FACBRICANTEBD: Devuelve el fabricante de la base de datos (“ORACLE7”, “INFOMIX”…)

LOGON: Mostrará una pantalla donde se podrá introducir el DSN, UID y PWD de la base de datos y posteriormente si son correctos los datos abrirá con esos valores una conexión en la base de datos.

OPENCURSOR: Crea y abre un cursor con el resultado de la select que ha hecho de una tabla. Este método devuelve un cursor. Hay que pasarle la tabla sobre la que leemos, los campos que queramos seleccionar, la condición de selección y el orden de los registros. Su sintaxis es la siguiente:Set cursor = cx.OpenCursor(“TABLA”, “CAMPO1,…,CAMPON”, “CONDICION”, “ORDEN)

LEECAMPO: Es parecido al opencursor pero solo devuelve el valor de un campo de un registro. Hay que pasarle la tabla sobre la que leemos, el campo que queramos seleccionar, la condición de selección y el orden de los registros. Su sintaxis es la siguiente:

Valor = cx.LeeCampo(“TABLA”, “CAMPO”, “CONDICION”)

Antonio Martínez de Castro 58

Page 59: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

OPENODBCCONNECTION: Abre una conexión a la BD. Le pasamos el DSN, el UID, el PWD de la base de datos y con ello abre una conexión a la BD: Su sintaxi es la siguiente:

cx.OpenODBCConnection Fabricante, “DSN=” +Dsn+ “;UID=”+Uid+”;PWD=”+Pwd+”;”

DSN: Contiene el valor del Data Source Name de la BD PWD: Propiedad que contiene el Password de la BD UID: Propiedad que contiene el UID de la BD BEGINTRANS: Con ese método le indicamos a la base de datos que

empezamos una transacción COMITTRANS: Con ese método terminamos una transacción,

validando la transacción, es decir hacemos un comit en la base de datos.

ROLLBACKTRANS: Con este método anulamos una transacción, invalidando todas las operaciones que estaban dentro de ella, es decir se hace un rollback en la base de datos.

• CURSORES

Es el resultado de una selección de registros de una tabla de la base de datos. Tiene las siguientes propiedades y métodos.

EOF: Valor que indica si has terminado de leer todos los registros ISEMPTYCURSOR: Propiedad que indica si el cursor está vacio, es

decir que el resultado de la selección sobre una tabla no devuelve ningún registro.

ISFIRSTRECORD: Propiedad que indica, si estás leyendo el primer registro de la selección

ISLASTRECORD: Propiedad que indica, si estás leyendo el último registro de la selección

MOVEFIRSTRECORD: Método que avanza el puntero del cursor al primer registro, permitiendo leer los valores de este.

MOVELASTRECORD: Método que avanza el puntero del cursor al último registro, permitiendo leer los valores de este.

MOVENEXTRECORD: Método que avanza el puntero del cursor al siguiente registro.

MOVEPREVIOUSRECORD: Método que retrocede el puntero del cursor al registro anterior.

MOVERELATIVERECORD: Método que posiciona el puntero del cursor sobre el registro que le digas.

NREGACTUAL: Propiedad que indica el número de registro donde está el cursor.

NTOTREG: Propiedad que indica el número total de registros que contiene el cursor.

TIPOCAMPO: Propiedad que te devuelve el tipo de datos del campo de la base de datos.

VALUE: Propiedad que te devuelve el valor del campo que le hayas introducido.

Antonio Martínez de Castro 59

Page 60: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

4.5.4.3.CONTROL DE ERRORES

Cuando tenemos código donde se puede producir un error (operaciones en la base de datos) pondremos la instrucción On error goto etiqueta que saltará a la etiqueta si se produce algún error. En la etiqueta haremos el tratamiento del error.

4.5.4.4.FICHERO DE RECURSOS

Para que la aplicación pueda ser multiidioma se ha creado un programa que mediante una base de datos donde introducimos todas las etiquetas de los controles, nombres de formularios, código de mensajes, opciones de los menús, en definitiva, todo el texto que aparezca en la aplicación, y junto con el nombre del proyecto, una librería y un fichero .rc se genera un fichero .res que contendrá todos los textos de la base de datos, estos se distinguirán por el nombre de la variable.

Los campos de la Base de Datos son:

• IDIOMA: Identificador que nos indicará en que idioma está el texto.• TIPO: Tipo del control (textbox, combo, gris…)• NOMBRE: Nombre del control• FORMATO: Formato de la descripción: L descripción larga, S

descripción abreviada• DESCRIPCION: Texto que aparecerá en el programa.

En el código del programa cuando queramos definir un texto, lo haremos siempre utilizando la función GREC() para campos de texto o GBMP para bitmaps. Estas funciones accederán al fichero de recursos y nos devolverán el valor de la etiqueta. A dichas funciones les pasaremos:

GREC (TIPO_NOMBRE_FORMATO)

Para generar el fichero de recursos está la aplicación recursos.exe

4.6.MICROSOFT HTML HELP WORKSHOP

Microsoft HTML Help Workshop es una herramienta para crear archivos de ayuda de Windows (.CHM), así como páginas web creadas al estilo de la ayuda de Windows (ver Ilustración 30).

El programa incluye un gestor de proyectos, un compilador y un editor de imagen, y permite la distribución de archivos de ayuda creados para incluirse con las propias aplicaciones. La ayuda en formato HTML es superior incluso al

Antonio Martínez de Castro 60

Page 61: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

propio HTML, porque, además, incluye la habilidad de incluir tablas de contenidos combinadas, y la posibilidad de crear índices sobre palabras clave. También comprime los gráficos, con lo que los programas creados son bastante pequeños. Incluye un control ActiveX y otro Java.

La responsabilidad de crear los ficheros de ayuda recae sobre los consultores de Grupo Castilla pero aprendí su funcionamiento para poder hacer modificaciones y mis futuros archivos de ayuda.

De forma resumida, los pasos a seguir para crear un fichero de ayuda son:

1. Decidir que pantallas necesitan ayuda y cual ha de ser su contenido.2. Crear las diferentes pantallas de ayuda, las cuales se les lama topics.

Para cada una de ellas, se tiene que definir un Context String y un Context Number que son, respectivamente, el nombre y el número que identifica el Tepic. Después, hay que introducir el texto e importar los gráficos que se quieran visualizar.

3. Asociar las palabras clave a cada topic para poder acceder fácilmente a todas las pantallas de ayuda relacionadas con la actual.

4. Seleccionar el texto i/o gráfico que será vinculado a un Jump (salto a un nuevo topic que se muestra en una nueva pantalla de ayuda) o un PopUp (permite mostrar una pequeña ventana de ayuda sobre la pantalla actual) y lindarlo con el topic relacionado mediante el Context Number.

5. Lindar y compilar el proyecto de ayuda, generando un fichero de extensión .CHM, el cual se adjuntara a la aplicación final.

6. Enlazar desde el código de la aplicación el fichero de ayuda alli donde corresponda.

Antonio Martínez de Castro 61

Page 62: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

Ilustración 30 HTML Help Workshop

4.7.MICROSOFT OFFICE

4.7.1.Microsoft Office Visio

Visio, el programa de creación de diagramas empresariales y técnicos de Microsoft Office System, ayuda a transformar en diagramas las ideas y los datos empresariales tradicionales. Visio ayuda a entender y comunicar mejor la información importante, para mejorar también el proceso de toma de decisiones, crear consenso en toda la organización, mejorar la comunicación y producir un impacto más profesional y duradero en los destinatarios.

Visio 2003 es un programa para la creación de diagramas que puede ayudar a crear diagramas empresariales y técnicos en los que se documenten y organicen ideas, procesos y sistemas complejos. Los diagramas creados en Visio 2003 permiten clara, concisa y eficazmente visualizar y comunicar información, de unas formas no posibles utilizando exclusivamente texto y números. Visio 2003 también automatiza la visualización de los datos al sincronizarse directamente con los orígenes de datos para proporcionar diagramas actualizados, y se puede personalizar para cubrir las necesidades de la organización.

Antonio Martínez de Castro 62

Page 63: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

Ilustración 31 Con el VISIO se pueden crear gráficas de flujo de forma rápida y sencilla.

4.7.2.Microsoft Office WORD

Word 2003 es el procesador de textos de Microsoft Office System. En respuesta a los comentarios de los clientes, Word 2003 ofrece nuevas funciones que facilitan la creación, el uso compartido y la lectura de los documentos. Las funciones de revisión y anotación se han mejorado para solucionar las múltiples formas en que los usuarios controlan los cambios y administran los comentarios. Además, Word 2003 admite el Lenguaje de marcado extensible (XML, Extensible Markup Language) como formato de archivo nativo y sirve como editor XML totalmente funcional. Word 2003 se puede utilizar también para guardar y abrir archivos XML, e integrarlos con datos empresariales clave de la organización.

4.7.3.Microsoft Office Access

Es un programa para crear y manejar una base de datos. Posiblemente, la aplicación más compleja de la suite Office, sea Access, una base de datos visual. Como todas las modernas bases de datos que trabajan en el entorno Windows, puede manejarse ejecutando unos cuantos clics de ratón sobre la

Antonio Martínez de Castro 63

Page 64: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

pantalla. Access contiene herramientas de diseño y programación reservadas a los usuarios con mayor experiencia, aunque incluye bases de datos listas para ser usadas; están preparadas para tareas muy comunes, que cualquiera puede realizar en un momento determinado –ordenar libros, archivar documentación, etc.-.

4.7.3.1.OBJETOS DE LA BASE DE DATOS

Tablas: unidad donde crearemos el conjunto de datos de nuestra base de datos. Estos datos estarán ordenados en columnas verticales. Aquí definiremos los campos y sus características. Más adelante veremos qué es un campo.

Consultas: aquí definiremos las preguntas que formularemos a la base de datos con el fin de extraer y presentar la información resultante de diferentes formas (pantalla, impresora...)

Formulario: elemento en forma de ficha que permite la gestión de los datos de una forma más cómoda y visiblemente más atractiva.

Informe: permite preparar los registros de la base de datos de forma personalizada para imprimirlos.

Macro: conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas.

Módulo: programa o conjunto de instrucciones en lenguaje Visual Basic

Antonio Martínez de Castro 64

Page 65: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

5. APORTACIONES DEL PROYECTO A LOS CONOCIMIENTOS DEL ALUMNO

La realización de este proyecto ha mejorado enormemente mi capacidad de compresión de la estructura de una base de datos. Si que ya había trabajado en el diseño de basas de datos en practicas de asignaturas y demás, pero ha sido aquí donde he profundizado y he perdido el miedo a las grandes bases de datos pues la base de datos que he tenido que diseñar no ha sido al final tan trivial como las que se han podido hacer en la universidad en las practicas de cualquier asignatura.

He tomado conciencia de la importancia de las relaciones entre tablas para proporcionar una seguridad de datos en la base y evitar así que se corrompa. También son buenas como método para impedir que haya duplicado de datos teniendo en cuenta las claves primarias que se traspasan en la relación. Gracias a todo ello he adquirido un gran dominio del diseño e implementación de bases de datos.

Debido a las necesidades del proyecto con el que me encontré, para solucionar el problema tuve que tomar decisiones respecto al diseño de la base de datos que durante la carrera me han enseñado a evitarlos como puede ser la desnormalización de una tabla, pues siempre nos han enseñado que cuanto más normalizada mejor. En este caso en concreto era asumible porque necesitábamos tener una gran cantidad de datos del currículo de de los candidatos en tiempo real, y si no lo hacíamos así, una consulta de por ejemplo 10.000 candidatos de todos sus curriculums podría saturar el sistema. Hoy en día la memoria va barata y si se puede ser mas rápido en la aplicación a casta de mas disco duro se hace.

Para el mantenimiento de esta tabla desnormalizada diseñe disparadores y funciones de agregados que me permiten tener siempre la tabla transpuesta (desnormalizada) actualizada, cuando me cambian los datos de los curriculums, que están en tablas normalizadas. El empleo de estas funciones ha sido nuevo para mí y he tenido que aprender a utilizarlas, y he visto que son muy útiles.

Además considero que el haber trabajado con un grupo experimentado te hace mejorar de forma involuntaria en método de programación adquiriéndolo de ellos durante el trabajo en grupo.También te ves en la necesidad de ponerte en la piel del cliente para comprender sus necesidades, lo cual es básico si quieres prosperar como Analista Funcional, aprendiendo a diseñar y redactar informes sobre especificaciones de las aplicaciones.

Por ultimo señalar que no es tanto los conocimientos adquiridos como la experiencia y toma de contacto con el mundo empresarial, lo que nos ayudara a prosperar en nuestra vida laboral.

Antonio Martínez de Castro 65

Page 66: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

6. APORTACIONES DE LOS ESTUDIOS REALIZADOS AL PROYECTO

Este proyecto ha sido más que nada un proyecto de gestión. No se ha tocado temas relacionados con tecnologías de redes ni programación de dispositivos. En este proyecto con lo que más he trabajado ha sido con el diseño, estructuración y creación de bases de datos, y con el diseño de interficies gráficas encaminadas a facilitar al máximo la utilización de ellas por parte de los clientes haciendo de su uso acciones lo más intuitivas posibles y intentando ofrecer al cliente la mínima información necesaria para que no se pierda y aumente su productividad.

6.1.Ingeniería Técnica en Informática de Gestión

De las asignaturas de Introducción a las Bases de Datos y Bases de Datos aprendí a diseñar diagramas Entidad-Relación, definir Entidades, sus atributos y los que se originan en las relaciones, las relaciones que hay entre las tablas, las restricciones, a asegurar la integridad de la base de datos exigiendo integridad referencial al definir las relaciones. Mi trabajo ha sido el rediseño de un módulo ya hecho con anterioridad, lo que significaba que tenía que aprenderme como funcionaba la antigua base de datos y sus relaciones y hacer los cambios y mejoras oportunas sobre la antigua. Me ha servido enormemente la introducción a SQL que hicimos en BD. Parte del trabajo ha sido crear, modificar y borrar tablas y vistas de la base de datos y ha hacer gran variedad de consultas de diferentes grados de dificultad. Tengo que decir que estas dos asignaturas han sido básicas en la realización de este proyecto.

De la asignatura Estructura de Datos aprendí las técnicas de representación de datos, lo que me ha permitido poder diseñar de forma coherente el contenido de las bases de datos.

Lo que he llegado a utilizar de las asignaturas de Ingeniería del Software ha sido las enseñanzas para desarrollar el software, es decir, los métodos para desarrollarlo y mantenerlo, y ha sido aquí donde tuve conciencia de la programación orientada a objetos, que tanto se usa en VB, aunque para ser más justos se dice que es basada en objetos ya que en VB no hay herencia ni otras cosas características de la programación orientada a objetos.

6.2.Ingeniería Superior Informática

Diseño de interficies gráficas: Esta asignatura ha sido muy útil a la hora de diseñar la interficie gráfica pues es en esta asignatura donde más en

Antonio Martínez de Castro 66

Page 67: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Rediseño Módulo Selección de Personal – EPSILON RRHH

profundidad nos han enseñado las características y detalles importantes que tiene que tener toda buena interficie que se precie.En ella se dan a conocer los aspectos psicológicos y ergonómicos básicos del diseño de interficies de usuario. También nos han enseñado a identificar las tareas básicas, el diseño y la evaluación de una interficie desde el punto de vista práctico.Esta asignatura ha sido muy práctica para ponerse en la piel del cliente y usuario y ver que necesita y que no, y poder así hacerle más fácil el trabajo de utilizar nuestra interficie.

Una vez más las asignaturas de Ingeniería del Software te “curten” como programador, familiarizándote con los métodos de programación, que aunque no se centran en un lenguaje y métodos particulares, te ayudan a tener una idea general de todas las técnicas y a ser capaz de enfrentarte a un proyecto a desarrollar sea cual sea el lenguaje a utilizar.

Antonio Martínez de Castro 67

Page 68: Proyecto Fin de Carrera - deim.urv.catdeim.urv.cat/~pfc/docs/pfc368/d1136903109.pdf · Proyecto Fin de Carrera: URV – Grupo Castilla informáticos, bases de datos, herramientas

Proyecto Fin de Carrera: URV – Grupo Castilla

7. CONCLUSIONES

Concluyendo, creo que la opción de poder hacer prácticas en una empresa o realizar el proyecto final de carrera en una empresa es un final básico en el aprendizaje del alumno que se hace cada día más evidente. Los alumnos acabamos la carrera sin saber como es el mundo laboral, sus exigencias, sus responsabilidades. Pero no todo es duro en la empresa, pues creo que hay cosas que cambian pero para mejor. Así, en mi opinión, es el caso de por ejemplo el trabajo en grupo. En la empresa normalmente los proyectos a realizar son muy extensos y realizarlo una personal sola seria un coste de tiempo no asumible. Por ello es habitual tener un grupo de trabajo realizando el mismo proyecto. Son habituales las reuniones frecuentes entre miembros del grupo, pero creo que no es el mismo ambiente ni compañerismo que puede haber en la universidad, pues los miembros ya son profesionales y ya se cobra por ello. Aquí, si tienes un problema lo comentas con tus compañeros de grupo o con tu jefe, y entre todos se intenta encontrar una solución o te enseñan ha hacerlo. La empresa se divide en departamentos y cada uno es experto en un campo. Claro está que siempre puede haber de todo pero en mi caso, la experiencia del trabajo en grupo ha sido satisfactoria.También tengo que decir que tomas conciencia de lo que supone tener entrega de versiones cada x tiempo, que aunque en la universidad teníamos los exámenes finales, creo que no es comparable.

Por ultimo remarcar que como consecuencia positiva de realizar el proyecto en empresa, a parte de los conocimientos que se puedan adquirir, considero que ha cambiado mi forma de trabajar, de enfrontarme a los problemas, así como mi capacidad de análisis, la iniciativa delante de un problema y de coger los recursos que me ofrece la empresa como parte de ella.

Antonio Martínez de Castro 68