Carolina Ponce Marín
Módulo de estadísticas para la aplicación rhobotlink
Laureano Lambán Pardo
Facultad de Ciencias, Estudios Agroalimentarios e Informática
Grado en Ingeniería Informática
2012-2013
Título
Autor/es
Director/es
Facultad
Titulación
Departamento
TRABAJO FIN DE GRADO
Curso Académico
© El autor© Universidad de La Rioja, Servicio de Publicaciones, 2013
publicaciones.unirioja.esE-mail: [email protected]
Módulo de estadísticas para la aplicación rhobotlink, trabajo fin de gradode Carolina Ponce Marín, dirigido por Laureano Lambán Pardo (publicado por la
Universidad de La Rioja), se difunde bajo una LicenciaCreative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.
Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright.
TRABAJO FIN DE GRADO
GRADO EN INGENIERÍA INFORMÁTICA
UNIVERSIDAD DE LA RIOJA
Facultad de Ciencias, Estudios Agroalimentarios e Informática
Módulo de estadísticas para la aplicación Rhobotlink
Alumno: Carolina Ponce Marín
Tutor: Laureano Lamban Pardo
Fecha: Julio 2013
Trabajo Fin de Grado
2
Agradecimientos
Agradezco a toda mi familia, que aun estando lejos me apoyaron y me dieron los
ánimos para seguir mi sueño, especialmente a mi mamá por esforzarse tanto para
poder traerme a este país y darme la oportunidad de estudiar.
A la empresa donde realice el proyecto por confiar en mí para realizar dicho trabajo,
principalmente a mi tutora Elena Esteban por ayudarme a desarrollarlo.
A mi tutor Laureano Lamban por aconsejarme y ayudarme a completar este proyecto.
A mis amigos tanto los que están en Colombia como los de aquí, por ese apoyo
incondicional, sobre todo a Elena, Sheila, Naziha, Nabila, Sergio y Germán por
aguantar mis momentos de tristezas y alegrías en esta etapa de mi vida.
A los profesores tanto de la Formación Profesional como de la Universidad por
compartir sus conocimientos, por la comprensión y por toda la ayuda que me
ofrecieron.
A todas esas personas que me abrieron las puertas de su vida aquí e hicieron que
esta nueva etapa fuera más placentera.
Muchas gracias a todos por hacer parte de este sueño.
Trabajo Fin de Grado
3
Resumen
En el siguiente trabajo fin de grado se trata de añadir una nueva funcionalidad a una
aplicación llamada Rhobotlink, desarrollada por la empresa SCA. El objetivo final del
trabajo es, por tanto, ofrecer un mejor servicio a sus clientes.
La nueva funcionalidad es un módulo de estadísticas, que ofrecerá al usuario la
opción de consultar en qué documentos ha fallado o se ha completado
satisfactoriamente una tarea, según un criterio de búsqueda. Los criterios podrán ser
por usuarios y/o por fecha. Se mostrarán los detalles de los documentos (nombre,
versión, idioma y el tiempo que ha costado hacer la tarea sobre dicho documento).
Además, el usuario podrá ordenar los documentos que resulten de la consulta, y podrá
buscar en el propio listado por nombre de documento. También podrá descargar el
listado de los documentos en un archivo Excel.
Trabajo Fin de Grado
4
Summary
The following Work in comes to add a new functionality to an application called
Rhobotlink, developed by the company SCA, the ultimate goal of the work is, therefore,
provide a better service to their customers.
The new functionality is a statistics module that will offer to the user the option of
consult on what documents has failed or has completed successfully a task, according
to search criteria. These criteria may be by users and / or date. Is shown the details of
the documents (name, version, language and the cost while do the task on the
document). In addition, the user can sort the documents arising from the consultation,
and can search in the list own document name. You can also download the list of
documents in an Excel file.
Trabajo Fin de Grado
5
Contenido
1. Introducción ........................................................................................................... 6
1.1 Objetivos del proyecto .................................................................................... 7
1.2 Participantes del proyecto ............................................................................... 8
1.3 Arquitectura .................................................................................................... 8
2. Desarrollo del proyecto .......................................................................................... 9
2.1 Análisis ........................................................................................................... 9
2.1.1 Especificación de requisitos funcionales .................................................. 9
2.1.2 Casos de Uso ........................................................................................ 10
2.1.3 Tecnologías utilizadas ........................................................................... 13
2.1.4 Modelo conceptual ................................................................................ 13
2.1.5 Modificaciones del análisis .................................................................... 14
2.2 Diseño .......................................................................................................... 15
2.2.1 Diseño de base de datos ....................................................................... 15
2.2.2 Diseño de clases ................................................................................... 17
2.2.3 Arquitectura ........................................................................................... 19
2.3 Implementación ............................................................................................ 23
2.3.1 Desarrollo del módulo ............................................................................ 28
2.3.2 Problemas ............................................................................................. 30
2.3.3 Pruebas ................................................................................................. 31
2.4 Gestión del proyecto ..................................................................................... 32
2.4.1 Planificación .......................................................................................... 32
2.4.2 EDT ....................................................................................................... 35
2.4.3 Seguimiento .......................................................................................... 36
2.5 Imágenes del módulo ................................................................................... 38
3. Conclusiones ....................................................................................................... 42
4. Bibliografía ........................................................................................................... 43
Trabajo Fin de Grado
6
1. Introducción
Este trabajo de fin de grado se dedica a añadir un nuevo módulo a una aplicación
llamada Rhobotlink. La aplicación Rhobotlink realiza tareas repetitivas automáticas,
como convertir documentos CAD a otros formatos, imprimir planos, etc. Dicha
aplicación fue desarrollada por la empresa SCA para aumentar la productividad de los
usuarios CAD ejecutando de manera automática las principales tareas repetitivas que
habitualmente se realizan en las oficinas técnicas.
La empresa SCA (Soluciones Cim Avanzadas) es una consultora que ofrece una
amplia gama de productos (PLM, CAD, CAM, CAE) y servicios; incluyendo formación,
implantación, consultoría e ingeniería. La actividad principal consiste en proveer a las
empresas de soluciones que optimicen el proceso de salida al mercado de nuevos
productos, fundamentalmente a través de la tecnología informática.
Un uso normal de la aplicación Rhobotlink consiste en crear paquetes y a cada
paquete añadir una variedad de documentos de diseño CAD que están almacenados
en una aplicación llamada Windchill. Permite crear tareas a partir de un paquete o de
un conjunto de documentos, tareas que pueden ejecutarse repetitivamente o una sola
vez, con la opción de elegir la fecha y hora de ejecución.
En la aplicación existen tres tipos de roles: administrador, avanzado y básico.
Los usuarios de rol administrador pueden ver las tareas que han realizado todos los
usuarios, en cambio los de rol avanzado y básico solo pueden ver sus propias tareas.
Todos los usuarios pueden crear paquetes y ejecutar tareas (publicar documentos).
Las tareas que se ejecutan en la aplicación consisten principalmente en convertir
documentos Auto CAD (diseño CAD) a varios formatos, por ejemplo: PDF, DXF,
PRINTER, PS, SAT, PLT, PV e IGES.
Además, Rhobotlink permite visualizar el proceso de cómo van las tareas que se están
ejecutando y permite crear marcas de agua personalizadas para añadir a los
documentos cuando se convierten a otro tipo de formato.
El nuevo módulo que se va a añadir a la aplicación se basará en mostrar los datos
estadísticos de los documentos que se han ejecutado en la aplicación según un criterio
de búsqueda, que puede ser por uno o varios usuarios y/o por fecha. Los datos se
mostrarán agrupados por usuario.
Los datos estadísticos se van a calcular por la cantidad de documentos, no por la
cantidad de tareas, ya que cada tarea contiene varios documentos.
Además se mostrará información detallada de los documentos que se han ejecutado
correctamente e incorrectamente. Esta información consiste en el nombre, versión,
idioma, tipo de conversión y tiempo que ha tardado en ejecutarse. Para los
documentos fallidos se mostrará el error que ha ocasionado que el documento no se
haya publicado satisfactoriamente.
Trabajo Fin de Grado
7
Esos documentos se podrán ordenar por nombre, versión, tipo de conversión y por
idioma. También se puede buscar por nombre de documento.
Los porcentajes de las estadísticas se podrán visualizar en un gráfico.
El nuevo módulo ofrecerá además la funcionalidad de descargar en un fichero Excel el
listado de los documentos, agrupados por fallidos y completos.
El módulo estadísticas sólo será accesible para los usuarios de rol administrador y
avanzado.
El usuario avanzado sólo tendrá la opción de buscar en sus propios documentos por
fecha. En cambio el administrador podrá buscar los documentos que han publicado
todos los usuarios y/o por fecha.
El módulo estará disponible en dos idiomas distintos; español e inglés, los mismos en
los que está disponible la aplicación Rhobotlink.
La elección del trabajo de fin de grado fue decisión de la empresa, ya que desean
ampliar la aplicación Rhobotlink para ofrecer un mejor servicio y mejorar sus
funcionalidades.
1.1 Objetivos del proyecto
Mi proyecto se basa en añadir una nueva funcionalidad a una aplicación de
automatización de tareas llamada Rhobotlink creada por la empresa SCA.
Los objetivos son los siguientes:
Crear un apartado de estadísticas que muestre al usuario los porcentajes de
los documentos sobre los que se han ejecutado tareas de forma correcta o
incorrecta.
Los documentos se podrán ver con más detalle, para el caso de los
documentos fallidos se mostrará un mensaje indicando el tipo de error.
Las estadísticas podrán verse según el criterio de búsqueda que elija el
usuario.
La búsqueda puede variar según el tipo de rol de usuario. Si el rol es
avanzado, solo podrá ver las estadísticas de las tareas que haya creado. En
cambio si el rol es administrador, podrá ver las tareas creadas por todos los
usuarios.
Los tipos de búsqueda podrán ser por fecha o por paquetes para el rol
avanzado y para el administrador. Además de estas opciones, podrá buscar
por usuario.
Se mostrarán las estadísticas también de manera gráfica.
Los documentos que se han publicado (correctamente o no) se podrán
descargar en un archivo en formato Excel.
Trabajo Fin de Grado
8
1.2 Participantes del proyecto
Las personas/ entidades involucradas en el proyecto son:
Cliente: La empresa SCA.
Ejecución del proyecto:
La alumna: Carolina Ponce Marín.
La tutora de la empresa: Elena Esteban.
El tutor académico: Laureano Lamban.
1.3 Arquitectura
La arquitectura de partida está compuesta por dos elementos principales para el
funcionamiento de la aplicación Rhobotlink: Windchill y Creo parametric.
Figura 1. Arquitectura aplicación
La aplicación Rhobotlink se encarga de la automatización de tareas, realiza tareas
repetitivas que de otra forma tendrían que ser realizados por un usuario.
Windchill es utilizada por Rhobotlink para acceder a los documentos que este tiene
almacenados para que el usuario pueda convertirlos en un tipo específico. Y por otro
lado está Creo Parametric, que se utiliza para realizar la conversión de los
documentos.
Trabajo Fin de Grado
9
2. Desarrollo del proyecto
Se describe brevemente cada una de las fases en los que está dividido el desarrollo
del proyecto.
2.1 Análisis
2.1.1 Especificación de requisitos funcionales
Los usuarios utilizan la aplicación Rhobotlink para convertir documentos de diseño
CAD a otros formatos. Por ello, era conveniente añadir un nuevo módulo para mostrar
los datos estadísticos sobre las conversiones que se ejecutan de forma correcta e
incorrecta. Con ello informa a los usuarios del porcentaje de los documentos que han
fallado y de la causa que ha producido el error.
El sistema debe ofrecer al usuario las siguientes funcionalidades:
Consultar los datos estadísticos relacionados con las tareas ejecutadas por
cada documento y además visualizarlo de forma gráfica (porcentajes).
Buscar los documentos sobre los que se han ejecutado tareas por usuario y/o
fechas.
Consultar una lista con los detalles de los documentos que se han ejecutado
de forma correcta e incorrecta incluyendo, en este caso, la descripción del
error. Además podrá ordenar estas listas por varios criterios y filtrar por
nombre de documento.
Descargar un archivo en formato Excel con el listado de los documentos
agrupados por fallidos y completos.
Trabajo Fin de Grado
10
2.1.2 Casos de Uso
2. Diagrama de casos de uso
Actores:
Existen dos tipos de actores:
o Usuario administrador
o Usuario avanzado
Los usuarios requieren autenticación en la aplicación para acceder a sus
funcionalidades.
Usuario administrador
El usuario administrador puede ver todas las estadísticas de sus propias tareas y la de
los demás usuarios.
La búsqueda de las estadísticas podrá realizarla por fecha, paquete o por usuario.
Usuario avanzado
El usuario administrador puede ver las estadísticas solamente de sus propias tareas.
La búsqueda de las estadísticas podrá realizarla por fecha y por paquete.
Trabajo Fin de Grado
11
2.1.2.1 Especificaciones de casos de uso
Caso de uso Mostrar estadísticas
Descripción Representa la acción de consultar las
estadísticas de los documentos que se
han ejecutado en la aplicación
correctamente e incorrectamente, según
el criterio de búsqueda que haya elegido
el usuario.
Precondición El usuario debe estar registrado en la
aplicación
Postcondición El usuario podrá ver en porcentajes y
gráficamente los documentos que se han
ejecutado correctamente e
incorrectamente, según el criterio elegido.
Caso de uso Hacer Búsquedas
Descripción El usuario podrá buscar los documentos
que se han realizado correctamente o no,
según un criterio de búsqueda. Ver casos
de uso “búsqueda por fecha”, “búsqueda
por paquete” y “búsqueda por usuario”.
Precondición El usuario debe estar registrado en la
aplicación.
Postcondición El usuario podrá ver la información de las
tareas que se han ejecutado.
Caso de uso Búsqueda por fecha
Descripción El usuario podrá buscar las tareas que se
han ejecutado en una fecha concreta.
Precondición El usuario debe estar registrado en la
aplicación.
Postcondición El usuario elige una fecha y
posteriormente la aplicación muestra los
datos de las tareas ejecutadas en esa
Trabajo Fin de Grado
12
fecha.
Caso de uso Búsqueda por paquete
Descripción El usuario podrá buscar las tareas que se
han realizado correctamente o no por
paquete.
Precondición El usuario debe estar registrado en la
aplicación.
Postcondición El usuario podrá ver la información de las
tareas que se han ejecutado del paquete
elegido.
Caso de uso Búsquedas por usuario
Descripción El usuario podrá buscar las tareas que se
ha realizado un usuario concreto.
Precondición El usuario debe estar registrado en la
aplicación y reconocido como
administrador en el sistema.
Postcondición El usuario podrá ver la información de las
tareas ejecutadas por varios usuarios o
uno en concreto.
Caso de uso Descargar Excel
Descripción El usuario podrá descargar un documento
Excel con los resultados obtenidos.
Precondición El usuario debe estar registrado en la
aplicación.
Postcondición El usuario podrá descarga un documento
en formato Excel con la información que
este ha buscado.
Trabajo Fin de Grado
13
Caso de uso Listar documentos
Descripción El usuario podrá visualizar los
documentos que se han convertido
correctamente y los que han fallado con
su respectivo error. Además podrá
ordenar los listados por un criterio y filtrar
por nombre de documento.
Precondición El usuario debe estar registrado en la
aplicación.
Postcondición El usuario podrá ver la información
detallada de cada documento.
2.1.3 Tecnologías utilizadas
Para el desarrollo del proyecto se van a utilizar las siguientes tecnologías:
MySQL: es un Sistema de gestor de base de datos, necesario para guardar y
acceder a los datos de la aplicación.
AJAX: técnica de desarrollo Web para crear aplicaciones interactivas o
aplicaciones de Internet enriquecidas.
JSP: tecnología Java que permite generar contenido dinámico para web, en
forma de documentos HTML, XML. Necesario para crear el interfaz, para que el
usuario visualice la información.
Hibernate: herramienta de mapeo (ORM) para la plataforma Java, necesaria
para acceder y utilizar los datos almacenados en la base de datos.
Apache: servidor Web HTTP, necesaria para alojar la aplicación.
Todas las tecnologías fueron elegidas por la empresa ya que son las que se utilizan
actualmente en la aplicación.
2.1.4 Modelo conceptual
En la realización de este proyecto se parte de un modelo de datos existente, que
cuenta con diferentes clases desarrolladas. De todas estas clases he utilizado las
siguientes:
Clase CSTask: esta clase representa los atributos y métodos de las tareas
que se ejecutan en la aplicación.
Clase CSUser: contiene los datos relativos a un usuario como el identificador,
el nombre, el tipo de rol, usuario, contraseña y email.
Trabajo Fin de Grado
14
Clase CSPack: esta clase representa los atributos y métodos de los paquetes
que se crean en la aplicación.
Además de estas clases he añadido otras nuevas, que creo necesarias para completar
el modelo de clases para el desarrollo del nuevo módulo.
Clase CSError: esta clase contiene los atributos y los métodos que permiten
consultar la información de los tipos de errores que pueden generarse durante la
conversión de los documentos.
Clase CSQueueLog: esta clase representa los atributos y los métodos de los
documentos convertidos en la aplicación. Un tal documento se identifica por
número de documento, nombre, versión, estado, tipo de conversión y el
identificador del usuario que ejecuta la conversión, entre otros.
Por tanto nos basamos en este el modelo de datos para desarrollar el nuevo
módulo.
2.1.4.1 Diagrama de clases
Figura 3. Diagrama de clases
2.1.5 Modificaciones del análisis
En el transcurso del proyecto se han realizado los siguientes cambios:
Los datos estadísticos sólo se buscarán por uno o varios usuarios y/o
fecha, eliminando la previsión inicial de búsqueda por paquete.
Los datos se agruparán por usuario.
Estos cambios suponen una ligera modificación en el diagrama de casos de uso,
quedando de la siguiente forma:
Trabajo Fin de Grado
15
Figura 4. Diagrama de casos de uso modificado
2.2 Diseño
En este apartado se tratarán los temas relacionados con el diseño de la aplicación:
2.2.1 Diseño de base de datos
Como se ha comentado en apartados anteriores, para la realización de este proyecto
ya se cuenta con una base de datos. Esta base de datos cuenta con varias tablas,
pero las únicas que están relacionadas con mi proyecto son las siguientes:
CSTask.
CSPack.
CSQueue.
CSUser.
Por razones del funcionamiento de la aplicación Rhobotlink, los datos almacenados en
la tabla CSQueue se eliminan cada cierto período. Para evitar perder la información
que almacena esta tabla he decidido añadir una nueva tabla llamada CSQueueLog
que almacena toda la información relacionada con los documentos que se convierten
en esta aplicación.
Trabajo Fin de Grado
16
Al comienzo del análisis de este proyecto se pensó en crear otra tabla CSError, para
mostrar el error de los documentos que se ejecutaron incorrectamente, pero se tomó la
decisión de no crearla, ya que existía otra forma de obtener el error de cada
documento sin necesidad de modificar esencialmente la base de datos.
Tabla CSQueueLog
Recoge la información correspondiente a los documentos que se han convertido en
algún tipo conversión que permite la aplicación como PDF, DXF, PRINTER, PS, SAT,
PV, IGES. Los datos de los documentos son: el identificador (que se genera
automáticamente), el nombre del documento, la versión, el estado, la iteración, la
fecha en la que se ha creado y se ha modificado, el tipo de conversión (el tipo de
formato al que se ha convertido el documento), el idioma en el que se ha publicado,
etc.
Figura 5. Tabla CSQueueLog
Trabajo Fin de Grado
17
2.2.2 Diseño de clases
A continuación se van a explicar las nuevas clases que se diseñan para procesar los
datos de las entidades que se manejan en el nuevo módulo.
Clase CSStadistics
Esta clase representa los atributos y métodos necesarios para representar los datos
estadísticos consultados por el usuario.
Figura 6. Clase CSStadistics
La clase CSStadistics hereda de la clase abstracta CSObject e implementa las
interfaces CSPersistable y CSExportable, que se describen a continuación:
CSObject: clase abstracta que contiene los atributos y métodos de las fechas
de creación, modificación y actualización de un objeto.
CSPersistable: interfaz que contiene los métodos que se deben implementar
en las subclases relacionados con las fechas de creación, modificación y
actualización de un objeto.
CSExportable: interfaz que contiene los métodos a implementar para convertir
los datos en formato XML.
Trabajo Fin de Grado
18
Clase CSQueuelog
Esta clase representa los atributos y métodos necesarios para acceder a la
información de los documentos que se han convertido en la aplicación.
La clase CSQueueLog hereda de la clase abstracta CSObject e implementa las
interfaces CSPersistable y CSExportable, mencionadas anteriormente.
Los métodos más importantes de esta clase son:
CSQueueLog newCSQueueLog(CSQueue csqueue): permite crear un objeto
CSQueuelog a partir de un objeto CSQueue.
String toXML(): genera los datos de un documento en formato XML.
Los demás métodos permiten acceder y modificar las propiedades del objeto
CSQueueLog.
Figura 7. Clase CSQueueLog
Trabajo Fin de Grado
19
2.2.3 Arquitectura
He decidido utilizar una estructura por capas en el desarrollo del proyecto. Dicha
estructura por capas favorece una arquitectura cliente-servidor, en el que el objetivo
principal es la separación de la lógica de negocio de la parte de presentación.
La ventaja principal es que el desarrollo se puede llevar a cabo en varios niveles y, en
caso de que se dé algún cambio, sólo se modifica la capa necesaria sin tener que
revisar todo el código.
La arquitectura contiene 3 capas y son las siguientes:
Figura 8. Arquitectura por Capas
2.2.3.1 Capa Lógica de negocio:
La capa de lógica de negocio es la encargada de implementar cualquier proceso que
se realice en la aplicación. Esta capa se encarga de usar las operaciones definidas en
la capa de persistencia y a través de ellas construir la funcionalidad especificada en la
fase de análisis.
En nuestro caso, esta capa se basa en la clase CSStadisticsBean.
Figura 9. Lógica de negocio
Métodos:
o String roleuser (HttpServletRequest): devuelve el rol del usuario que
se ha conectado en la aplicación.
Trabajo Fin de Grado
20
o String stadisticsdata (HttpServletRequest): devuelve en una cadena
(formato XML) los datos estadísticos que corresponden a la consulta
realizada por el usuario.
o String documentsfailed (HttpServletRequest): devuelve en una
cadena (formato XML) los documentos fallidos correspondientes a los
datos estadísticos consultados por el usuario.
o String documentscorrect (HttpServletRequest): devuelve en una
cadena (formato XML) los documentos correctos correspondientes a la
consulta realizada por el usuario.
o String exportXML (LinkedHashMap, int, int, HttpServletRequest):
devuelve la información de los documentos publicados correctamente
en XML.
o String exportXML2 (List, int, int, HttpServletRequest): devuelve la
información de los documentos que han fallado en XML.
o String getUsuarios(): devuelve en una cadena los usuarios registrados
en la aplicación.
o downloadexcel(HttpServletResponse): genera un archivo en formato
Excel con los documentos agrupados por fallidos y correctos
correspondientes a la búsqueda realizada por el usuario.
2.2.3.2 Capa de Persistencia.
La capa de persistencia se encarga del acceso a los datos guardados en algún
repositorio de información que maneja la aplicación. La implementación de esta capa
se llevará a cabo con la tecnología Hibernate.
En esta aplicación se maneja como repositorio una base de datos en MySQL.
Figura 10. Persistencia
Trabajo Fin de Grado
21
Métodos:
o List stadisticsdata (Hashtable, String[], boolean): devuelve una
lista de objetos CSStadistics de los usuarios pasados por parámetro
correspondiente a la búsqueda realizada por el usuario.
o LinkedHashMap listdocuments (Hashtable, boolean, List):
devuelve una lista de los documentos correctos correspondiente a la
búsqueda que ha realizado el usuario, con su respectivo tiempo
medio de ejecución y número de publicaciones.
o List getPacks(Long): devuelve en una lista los paquetes
correspondientes a un usuario.
o List documentsfailed (Hashtable, boolean, String, String, String,
String, int, int): devuelve una lista con los documentos fallidos
correspondientes a la búsqueda realizada por el usuario.
o Int timeexec(CSSQueueLog): devuelve el tiempo que ha tardado
en convertirse un archivo.
o LinkedHashMap documentscorrect (Hashtable, boolean, String,
String, String, String, int, int): devuelve en un LinkedHashMap los
documentos que se han publicado correctamente.
o List getcompletos(): devuelve una lista con todos los documentos
que se han convertido satisfactoriamente.
o List getfallidos(): devuelve una lista con todos los documentos
fallidos.
2.2.3.3 Capa de presentación
La capa de presentación se encarga de generar el contenido de las pantallas con el
formato adecuado para la aplicación y por tanto, es la que realiza cualquier entrada y
salida de datos desde y hacia el usuario.
Mi proyecto se basa en una aplicación creada. Por tanto, la plantilla del apartado que
debo realizar tiene que seguir el mismo diseño de la interfaz.
Para la realización de dicho interfaz se utilizará la tecnología JSP. De las páginas que
ya existen he modificado la página monitor y el menú publicador, añadiendo un nuevo
item al menú principal para poder acceder al apartado de estadísticas.
Nueva plantilla de la página Monitor: desde la página monitor el usuario puede pulsar
el botón estadísticas para acceder a la página de estadísticas.
Trabajo Fin de Grado
22
Figura 11. Plantilla Monitor
Plantilla del módulo estadísticas: en esta página aparece un formulario donde el
usuario podrá realizar búsquedas por distintos criterios.
En la parte inferior aparece un listado con los porcentajes y tiempo medio de los
documentos publicados por los criterios seleccionados por el usuario.
Además se podrá visualizar en un pequeño gráfico de sectores dichos porcentajes y
se podrá listar para ver con más detalle todos y cada uno de los documentos
correspondientes a la búsqueda agrupados por fallidos y completos. Por otro lado, el
usuario podrá descargar un informe en formato Excel de todos los documentos.
Trabajo Fin de Grado
23
Figura 12. Plantilla Estadísticas
2.3 Implementación
En este apartado se describirá el desarrollo del módulo de estadísticas y los
problemas que surgieron al realizarlo.
Para empezar a realizar este nuevo módulo en la aplicación Rhobotlink tuve que
estudiar primero de qué se trataba la aplicación, qué funciones realizaba y cuáles eran
las herramientas que utilizaba.
Para ello tuve que estudiar otros programas relacionados como Windchill y Creo
Parametric, que son fundamentales para el funcionamiento de Rhobotlink.
Windchill es un almacén fiable de documentos CAD, que permite gestionar de
manera experta todos los datos del producto, incluido datos eléctricos y mecánicos,
Además ofrece acceso sencillo, permite administrar procesos como la gestión de los
cambios, configuración y el envío a fabricación.
Creo Parametric es una aplicación que permite diseñar productos AUTOCAD,
ofreciendo una amplia gama de diseño CAD 3D. Además admite diferentes formatos
de ficheros CAD.
Después de estudiar el funcionamiento de las aplicaciones mencionadas
anteriormente debía saber cómo estaba programada la aplicación Rhobotlink
estudiando las tecnologías utilizadas, qué clases contiene, cómo está organizada la
base de datos, para saber qué tablas eran necesarias para realizar el nuevo módulo
que me habían encargado.
Trabajo Fin de Grado
24
A continuación voy explicar brevemente las tecnologías utilizadas en el desarrollo del
proyecto.
Hibernate
Es una herramienta ORM (Mapeo objeto-relacional) para la plataforma Java que
facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos
de una aplicación mediante archivos (XML) o anotaciones que permiten establecer
estas relaciones.
Hibernate ofrece también un lenguaje de consulta de datos llamado HQL (Hibernate
Query Language) orientado a objetos, al mismo tiempo que una API para construir las
consultas programáticamente llamada Criteria.
HQL es completamente orientado a objetos y comprende nociones como herencia,
polimorfismo y asociación. HQL permite usar un lenguaje intermedio según la base de
datos que se vaya a usar y el dialecto que se especifique serán traducidos al SQL
dependiendo de cada base de datos de forma automática y transparente.
Ventajas
Permite interactuar con distintas base de datos como SQLServer, MySQL,
Oracle, entre otras.
Independencia con el motor de base de datos.
Genera automáticamente el código SQL usando un Mapeo Objeto-relacional, el
cual se especifica en un documento XML o mediante anotaciones.
Se recuperan objetos de la base de datos, sin tener la necesidad de
construirlos manualmente.
Para la configuración de Hibernate me basé en el archivo que ya usaba la aplicación.
En este fichero se incluyen las propiedades de acceso a la base de datos: el driver
usado para la conexión, la URL de la base de datos, así como el usuario y la
contraseña.
Este fichero es utilizado por Hibernate para crear instancias de sesiones con la base
de datos MySQL y donde se indican los ficheros de mapeo entre las clases y las tablas
de la base de datos.
En los ficheros de mapeo se indica el nombre de la clase, con qué tabla se mapea y
los atributos (especificando su tipo en caso de no ser básico).
Este archivo corresponde al mapeo de la clase CSQueueLog con la tabla
CSQueueLog.
Trabajo Fin de Grado
25
Figura 13. Configuración mapeo clase CSQueueLog
Criteria
Dentro de Hibernate existen distintas APIs, una de ellas es Criteria. Esta API es
necesaria para el desarrollo del proyecto para realizar las consultas, porque es más
segura y recomendada para las consultas dinámicas.
Es una interfaz simplificada para la recuperación de entidades mediante la
composición o la creación de objetos Criteria. Es muy conveniente para
funcionalidades como pantallas de búsqueda, donde hay una gran cantidad de
condiciones que se colocarán en el conjunto de resultados.
Las ventajas de esta API son la clase Restrictions que permite añadir distintos
criterios a una consulta mediante los métodos que ofrece. Y, por otro lado, está la
clase Projections, indicada para agrupaciones y agregaciones de datos con criterios.
Con Criteria hay menos probabilidad de cometer errores a la hora de escribir consultas
SQL o HQL y evita la inyección de código.
Para crear las instancias de Criteria se necesita de la clase Session que se obtiene
del SessionFactory configurado en el fichero XML de Hibernate.
Restrictions
Pertenece al paquete criterion y se puede usar como framework para la creación de
tipos de criterion, Sin embargo, se pretende que la mayoría de aplicaciones sólo
Trabajo Fin de Grado
26
utilicen el incorporado en los tipos de criterion a través de los métodos estáticos de
esta clase. Los métodos que he utilizado de esta clase han sido:
Between(String propertyName,Object first, Object last): para buscar los
documentos que se han ejecutado desde una fecha inicial hasta una fecha
final.
Like(String propertyName, Object value): para encontrar una documento
específico según un criterio determinado.
Isnull(String propertyName): para buscar si la propiedad de un documento
es nula (por ejemplo si el idioma de un determinado documento es nulo).
Projections
Pertenece al paquete criterion. Se puede usar en aplicaciones como framework para
la creación de nuevos tipos Projections. Los métodos que he utilizado de esta clase
son:
Projectionslist(): crea una lista de Projections donde se van añadiendo los
criterios.
groupProperty(String propertyName): lo he utilizado para agrupar
documentos por un criterio específico por ejemplo por nombre, versión, idioma,
etc.
Para realizar el interfaz del módulo debía desarrollarlo con la tecnología JSP,
tecnología conocida ya que la estudiamos en la asignatura de Programación de
Aplicaciones Web.
Para completar el funcionamiento del módulo utilicé otra tecnología, de la que tenía
algún conocimiento previo, aunque no era suficiente para desarrollar completamente
este módulo. Esta tecnología es AJAX.
AJAX
Es una técnica de desarrollo Web para crear aplicaciones interactivas. Estas
aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios
mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De
esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas.
Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas
operativos y navegadores que está basado en estándares abiertos como JavaScript y
DOM (Document Object Model).
He empleado dos librerías que manejan AJAX en el envío y la recepción de datos.
Jquery es una librería rápida y tiene muchas funcionalidades. Las realiza como
documento HTML manipulando el control de eventos, animación y funciones AJAX
Trabajo Fin de Grado
27
con más facilidad de usar en varios navegadores. Con una combinación de flexibilidad
y extensibilidad.
Flexigrid en un plugin de JQuery open source, permite mostrar e interactuar con
contenido proveniente de bases de datos, tiene la facilidad de conectarse a fuentes de
datos XML y permite devolver los datos en JSON para que sean mostrados todo a
través de AJAX.
Flexigrid fue utilizada para mostrar los datos estadísticos y los detalles de los
documentos publicados.
El uso de esta librería permite ordenar los listados según un criterio haciendo clic
sobre la cabecera de una columna, permite realizar filtros y la paginación de los
resultados.
La librería se encarga de realizar las peticiones, pero yo debía encargarme en
controlar los datos en el código.
Con la librería Flexigrid tuve algunos inconvenientes porque necesitaba refrescar los
datos de los documentos cada vez que eligiera el de otro usuario, para ello debía
buscar una opción que buscara cada vez por la primera página y que, si el usuario
había realizado alguna búsqueda dentro de la tabla, al cambiar no se quedara
guardado el criterio de búsqueda. Me costó encontrar la información ya que es una
librería con poca documentación.
Apache POI
Es una librería que sirve para manipular varios formatos de archivos basados en los
estándares de office XML, se puede leer y escribir archivos de MS Excel utilizando
java.
Con esta librería tuve que formarme para poder generar el Excel y así completar el
módulo, ya que el usuario podrá descargar un Excel con la descripción completa de
cada documento agrupados por los completos y los fallidos y que correspondan a la
búsqueda que ha realizado.
Para mostrar los datos en un gráfico utilicé una API de Google llamada Visualization,
para poder realizarlo he utilizado las siguientes clases:
DataTable(opt_data, opt_version): opt_data corresponde a los valores necesarios
para inicializar la tabla, necesaria para representar el gráfico y opt_version es el
número de versión del protocolo de conexión, en este caso no es necesario.
PieChart: clase necesaria para representar el gráfico y se utiliza el método draw(data,
options) para dibujar el gráfico:
data son los datos almacenados en la DataTable.
options son las opciones que desea añadirse al gráfico como el título, etc.
Trabajo Fin de Grado
28
2.3.1 Desarrollo del módulo
Uno de los puntos más importantes del desarrollo de este proyecto es la arquitectura
por capas: presentación, lógica de negocio y persistencia.
Por esta razón voy a explicar una parte del desarrollo del nuevo módulo, detallando
código que considero relevante por cada una de las capas que forman la arquitectura
de esta aplicación.
Empezaré por la capa de presentación donde se muestran los datos estadísticos y los
detalles de los documentos por medio de una tabla usando para ello la librería
Flexigrid. Esta librería se utiliza de la siguiente forma:
Figura 14. Código Flexigrid
Para la configuración de la tabla se tienen las siguientes propiedades:
url: se indica la dirección del archivo que se encarga de obtener los datos.
dataType: indica el formato de los datos, en nuestro caso van a ser devueltos
en formato XML.
colModel: se indica la lista de columnas que debe contener nuestra tabla. Para
cada columna se puede indicar el nombre que visualizará el usuario, nombre
interno de la columna, anchura, entre otras.
searchitems: indica qué columnas de la tabla se pueden filtrar.
sortname: indica el nombre de la columna por la que se va a ordenar los datos
por defecto.
sortorder: indica si la columna se ordenará ascendentemente o
descendentemente.
Trabajo Fin de Grado
29
La librería se encarga de enviar la petición con los parámetros necesarios para
visualizar los datos.
La capa de presentación se encarga de hacer las peticiones a la capa de lógica de
negocio (CSStadisticsBean). Esta capa, a su vez, se encarga de comprobar que los
datos recibidos sean correctos y no sean nulos para obtener los datos por medio de la
clase de persistencia.
Lógica de negocio
En esta capa actúa la clase CSStadisticsBean, que se encarga de comprobar que los
parámetros enviados no sean nulos, y si es el caso, les asigna los datos por defecto.
Posteriormente llama a la capa de persistencia para que se encargue de realizar las
operaciones necesarias contra la base de datos.
Figura 15. Código lógica de negocio
Persistencia
En esta capa actúa la clase PersistenceHelperStadistics que se encarga de obtener
los datos correspondientes a la búsqueda realizada incluyendo el orden del listado, el
total de registros y la paginación que se desea visualizar en la tabla.
El acceso a la base de datos se reliza con Hibernate y las consultas se realizan con el
API Criteria, utilizando las distintas clases Restrictions y Projections. Restrictions es
utilizada a la hora de obtener un dato en concreto según unos criterios y Projections
para agrupar los datos por distintos criterios.
Además, con los métodos de Criteria, puedo ordenar los datos de forma ascendente o
descendente.
En el código se visualiza que al objeto criteria se le añade una restricción indicando el
atributo y el valor que debe corresponder a éste, con el método addOrder(), se indica
como se deben ordenar los valores obtenidos con Restrictions.
Y también se puede obtener desde y hasta donde se quieren coger los registros con
setFirstResult() y setMaxResults().
Trabajo Fin de Grado
30
Figura 16. Código persistencia
2.3.2 Problemas
Para finalizar esta breve descripción de la implementación, comento algunos de los
principales problemas a los que me he tenido que enfrentar, fundamentalmente
referidos a mi desconocimiento de las tecnologías a utilizar.
Con la API Criteria tuve algunos inconvenientes ya que es muy extensa y me costó
entender muy bien cada una de sus clases y métodos para realizar las consultas. Fue
difícil entender los ficheros de configuración de Hibernate, porque contienen mucha
información que era desconocida para mí
Dentro de la clase Projections tuve que utilizar la clase Transformers para poder
transformar los datos agrupados de la clase CSQueueLog, ya que me daba algunos
problemas de identificación de clases.
Una de las clases que me dio más dificultades fue Projections. Tiene funcionalidades
apropiadas para lo que deseaba hacer, pero no eran suficientes, ya que agrupa los
datos según uno o varios criterios, pero no muestra la cantidad de datos que cumplen
las mismas características. Además necesitaba calcular el tiempo de ejecución y
necesitaba acceder a cada uno de los datos para calcularlo.
Respecto a las librerías la que me dio más problemas fue la de Flexigrid porque tiene
poca documentación y necesitaba saber muchos aspectos para completar mi módulo.
Utilizando la librería de Google para el gráfico de estadísticas tuve algunas dificultades
para entender como pasar datos dinámicos para representar el gráfico.
De JavaScript sabía cosas muy básicas y para desarrollar el interfaz del módulo
necesitaba cosas más complejas, por esta razón tuve que buscar más información y
mirar muchos ejemplos.
Trabajo Fin de Grado
31
2.3.3 Pruebas
He realizado pruebas para comprobar que todos los datos estadísticos y el listado de
los documentos se mostraban correctamente y para buscar posibles fallos en la
aplicación.
En la realización de las pruebas me di cuenta de que la utilización del HashMap no era
conveniente en el listado que muestra los documentos correctos, dado que al ordenar
no introduce los datos en el mismo orden de inserción, por esta razón utilicé otra clase
llamada LinkedHashMap.
Para el listado de los documentos correctos el asunto era distinto que en el caso de los
fallidos, porque debía agruparlos y calcular para cada grupo el tiempo medio de
ejecución.
Las pruebas las he realizado con supervisión de la tutora de la empresa y ha quedado
satisfecha con el trabajo realizado.
Trabajo Fin de Grado
32
2.4 Gestión del proyecto
2.4.1 Planificación
2.4.1.1 Diagrama de Gantt
A continuación se describe la planificación del proyecto en un diagrama Gantt, indicando el nombre de las tareas con su respectiva duración en
horas.
Figura 17. Diagrama de Gantt
Trabajo Fin de Grado
33
2.4.1.2 Descripción de las tareas
Gestión del proyecto
En este apartado se agrupan todas las tareas que corresponden a la planificación y
seguimiento.
Objetivos: esta tarea corresponde a la creación del documento de objetivos.
Planificación: consiste en descomponer y describir las tareas, asignándoles el
tiempo que se les va a dedicar y realizar el diagrama de Gantt.
Seguimiento del proyecto: consiste en comparar entre el tiempo planificado
para cada tarea y su duración real.
Análisis
Diagrama de casos de uso: esta tarea consiste en identificar los actores que
interactúan con la aplicación creando el diagrama correspondiente.
Especificación de los casos de uso: descripción de las distintas actividades
definidas en los casos de uso.
Diagrama de clases: consiste en identificar las clases en los que se va
descomponer el diseño del nuevo módulo.
Diseño
Diseño de la base de datos: esta tarea corresponde al diseño de las tablas
necesarias para completar el modelo existente.
Diseño de clases: esta tarea consiste en identificar las clases y métodos
necesarios a partir del análisis de requisitos.
Construcción
Implementación: esta tarea consiste en ampliar la base de datos generando el
diagrama diseñado. Implementar el código necesario para que la aplicación
funcione correctamente cumpliendo los requisitos del cliente.
Documentación: consiste en documentar las clases y métodos que se han
implementado.
Pruebas: realizar las pruebas necesarias para comprobar que el nuevo módulo
funcione correctamente.
Formación
Esta tarea consiste en adquirir los conocimientos necesarios de las tecnologías que se
van a utilizar en el desarrollo del proyecto. Además de lo anterior estudiar el
funcionamiento y el código de la aplicación.
Manuales
Consiste en crear los manuales necesarios para que el usuario pueda utilizar
fácilmente el nuevo módulo.
Trabajo Fin de Grado
34
Memoria
Esta tarea consiste en crear toda la documentación del proyecto, como el análisis,
diseño, planificación e implementación del proyecto.
Defensa
Consiste en crear el material necesario para presentar este proyecto al cliente y al
tribunal evaluador.
Trabajo Fin de Grado
35
2.4.2 EDT
Gestión del proyecto
Objetivos
Planificación
Seguimiento
Módulo
Estadísticas
Análisis Diseño Construcción
Diagrama de
casos de uso
Modelo
Conceptual
Diseño de la
base de datos
Diseño de
clases
Implementación
Documentación
Pruebas
Formación Memoria Manuales Defensa
Proyecto
EDT
Trabajo Fin de Grado
36
2.4.3 Seguimiento
Al comienzo del proyecto estime un tiempo sin saber muy bien cuanto me iba a costar
aprender las nuevas tecnologías necesarias para la realización de dicho proyecto.
Para mí era totalmente nueva la tecnología Hibernate y con Ajax tenía poca
experiencia, ya que sólo sabía lo básico.
Además utilicé librerías que eran nuevas para mí como Jquery, Flexigrid y POI.
En la formación fue lo que me llevo más tiempo, porque, además de que tuve que
formarme en varias tecnologías tuve que entender muy bien el funcionamiento de la
aplicación Rhobotlink, Windchill y Creo. Ya que eran fundamentales para realizar el
nuevo módulo.
Otro de los factores que influyeron en el tiempo fueron los cambios que se han
producido durante el transcurso del proyecto. Por ejemplo: En la búsqueda por usuario
se puede seleccionar varios usuarios, el listado de los documentos correctos se deben
listar agrupados por nombre, versión, estado, tipo de conversión e idioma.
Tarea Horas
Estimadas
Horas
Reales
Desfase
Gestión del proyecto 30 32 0
Objetivos 3 3 0
Planificación 10 12 +2
Seguimiento del proyecto 15 15 0
EDT 2 2 0
Análisis 11 11 0
Diagrama de casos de uso 5 5 0
Modelo conceptual 6 6 0
Diseño 10 10 0
Trabajo Fin de Grado
37
Diseño de la base de datos 5 5 0
Diseño de clases 5 5 0
Construcción 112 122 +10
Implementación 100 110 +10
Documentación 2 2 0
Pruebas 10 10 0
Formación 80 90 +10
Manuales 2 2 0
Memoria 50 50 0
Defensa 5 5 0
Total Horas 300 322 +22
Comparación de tiempos
A continuación se visualizará en un gráfico la comparación del tiempo estimado con el
tiempo real en la realización del proyecto.
La diferencia es más significativa en la implementación y formación, porque como
mencioné anteriormente había muchos factores nuevos para mí.
Trabajo Fin de Grado
38
Figura 18. Comparación de tiempos
2.5 Imágenes del módulo
Buscador rol administrador
El usuario administrador podrá buscar los datos estadísticos por usuarios y/o fecha
Figura 19. Buscador usuario administrador
Trabajo Fin de Grado
39
Datos estádisticos
Los datos se mostrarán agrupados por usuario.
Figura 20. Datos Estadísticos
Gráfico
Los porcentajes también se puede visualizar en un gráfico.
Figura 21. Gráfico
Listado ficheros fallidos
La información que se podrá visualizar de los documentos fallidos es: nombre,versión,
iteración, estado, tipo conversión, tiempo que ha tardado en publicarse y el tipo de
error.
Trabajo Fin de Grado
40
Figura 22. Listado documentos fallidos
Listado ficheros correctos
La información que se podrá visualizar de los documentos correctos es:
nombre,versión, iteración, estado, tipo conversión, idioma, tiempo que ha tardado en
publicarse y el total de publicaciones.
Figura 23. Listado documentos completos
Trabajo Fin de Grado
41
Descarga excel
Se podrá descargar un archivo Excel con el listado de los ficheros agrupados por
fallidos y completos.
Figura 24. Fichero Excel
Buscador rol Avanzado
El usuario avanzado solo podrá ver los documentos que el mismo ha publicado, y solo
podrá buscar por la opción de fecha.
Figura 25. Buscador usuario avanzado
Trabajo Fin de Grado
42
3. Conclusiones
En la realización de este proyecto lo que más me costó fue formarme y familiarizarme
con la aplicación que debía modificar, ya que necesitaba saber muy bien de qué se
trataba, qué realizaba, qué otros programas y tecnologías utilizaba para su
funcionamiento, etc.
Respecto a las tecnologías, la que me dio más problemas fue Hibernate, ya que es
bastante extensa. El API que destaca más es Criteria, que en la aplicación se utiliza
para consultar la base de datos. Otro de los temas complejos fue la utilización de las
librerías Jquey y Flexigrid, ya que también eran desconocidas para mí. No bastó con
mirar el código de la aplicación donde las utilizan, sino que debía buscar más
información porque necesitaba utilizar nuevos métodos de estas librerías.
He aprendido mucho en el tema laboral, ya que he realizado un proyecto real, donde
se han dado cambios, retrasos, problemas reales, etc. Y, además, el hecho de
manejar nuevas tecnologías completó mi formación adquirida en la universidad.
Los conocimientos que he adquirido en la universidad me fueron muy útiles porque los
puse en práctica al desarrollar este proyecto.
En el tema de planificación todavía me falta aprender un poco ya que algunas tareas
se atrasaban por temas académicos o por falta de formación en algunas tecnologías
como mencioné anteriormente, pero cada vez voy mejorando poco a poco en ese
tema.
Al empezar con este proyecto me he dado cuenta de que partir de una aplicación ya
hecha es más complicado que comenzar una desde cero, porque entender el código y
la lógica del modelo de datos de terceros es mucho más complejo de lo que pensaba.
Trabajo Fin de Grado
43
4. Bibliografía
Apuntes de la asignatura Programación de Aplicaciones Web.
http://flexigrid.info/
http://www.hibernate.org/
http://jquery.com/
http://poi.apache.org/
https://google-developers.appspot.com/chart/interactive/docs/gallery/piechart
http://www.sca.es/index.php/es/
Manual de Usuario Módulo de estadísticas Rhobotlink
Manual de Usuario
1
1. Módulo Estadísticas
Ventana en la que se pueden consultar los datos estadísticos de las tareas que se han
ejecutado en la aplicación Rhobotlink, estos datos se podrán buscar por varios
criterios: usuario y/o fecha.
Además, se mostrará un listado con los detalles de los documentos agrupados por
fallidos y completos.
Para acceder a las estadísticas se puede hacer desde el menú Publicador->
Estadísticas.
O desde la página monitor haciendo clic en el botón Estadísticas.
Para un usuario administrador puede hacer la búsqueda por usuario y/o por fecha, si
no se selecciona ningún usuario y se busca solo por fecha buscará por el usuario
conectado en la aplicación.
Para buscar por usuario podrá seleccionar varios con ctrl+clic.
Para los usuarios avanzados solo podrá buscar las publicaciones que ha realizado
este por fecha.
Manual de Usuario
2
Si el usuario es básico no podrá utilizar esta funcionalidad de la aplicación.
Al realizar la búsqueda se mostrará el número de ficheros que se han publicado
correctamente y cuáles no, el porcentaje y el tiempo medio que ha tardado en
ejecutarse las publicaciones.
Para ver el gráfico se accede desde el botón Gráfico
Los porcentajes se mostrarán de la siguiente forma:
Para ver el listado de los documentos se accede desde el botón listado
Se podrá ver la siguiente información de los documentos fallidos: nombre, versión,
iteración, tipo, estado, tipo de conversión, tiempo de ejecución y el tipo de error que ha
ocasionado que el documento no se publique correctamente.
Manual de Usuario
3
Para visualizar lo documentos completos se selecciona la pestaña completos
La información que se podrá visualizar de los documentos correctos es la siguiente:
nombre, versión, iteración, estado, tipo de conversión, idioma, tiempo de ejecución y el
número de veces que se ha publicado.
Los documentos están agrupados por nombre, versión, iteración, estado, tipo de
conversión e idioma.
Los documentos se podrán ordenar por nombre, versión, iteración, estado, tipo de
conversión e idioma, dando clic en la cabecera de cada columna.
Manual de Usuario
4
Además, se puede buscar en la lista por el nombre de documento:
Dando clic en el botón buscar , y luego se escribe el nombre del documento qué
desea buscar.
El listado de los documentos se podrá descargar en un archivo Excel agrupados por
fallidos y completos.
El archivo Excel se descarga haciendo clic desde el botón Descargar Excel.