Laboratorio 5 Consulta con Base de Datos 1. Introducción Este proyecto presenta la conexión a una base de datos y consulta, utilizando un formulario a continuación nuestra estrategia: a) Enunciado del Proceso b) Modelando el Proceso c) Creando una conexión a la BD d) Iniciando el Servidor e) Ejecutando el Proceso f) Interactuando con la Interfaz del Usuario d) Mejorando el proceso 2. Enunciado del Proceso Proyecto 5: ConexiónBD El proceso se inicia cuando el usuario examples\ewilliams, inicia una consulta a una base de datos colocando el nombre del usuario Mary, cuya respuesta debe mostrar su apellido correspondiente, esta respuesta debe aparecer como una notificación para el usuario examples\ewilliams. 3. Modelando el proceso 3.1 Creando el proyecto Nuestro proyecto se denominará ConectaBD 3.2 Creando la interfaz (formulario) para ingresar la consulta Para que el usuario pueda ingresar el nombre de usuario del usuario Mary es necesario crear un formulario con una caja de texto. Entonces, insertamos 1 caja de texto en nuestro formulario FormularioConsulta.xform : Figura 01: Formulario para ingresar consulta MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1 -
3.3 Creando la interfaz (formulario) para recuperar la respuesta Para que el usuario pueda conocer cual es el apellido de Mary, creamos otro formulario respuesta.xform : Figura 02: Formulario para mostrar el apellido 3.4 Gestionando la conexión a la Base de Datos Instituto Para poder conectar un proceso de negocios con una base de datos, es necesario que la Base de Datos este implementado con su estructura y datos, al menos para este ejemplo. Entonces en MYSQL creamos la base de datos instituto y ejecutamos el siguiente query: CREATE TABLE `empleados` ( `id` varchar(11) NOT NULL, `name` varchar(20) default NULL, `designation` varchar(30) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `empleados` VALUES ('1', 'Daniel', 'Administrador'); INSERT INTO `empleados` VALUES ('2', 'Juan', 'Desarrollador'); CREATE TABLE `usuarios` ( `id` int(11) NOT NULL auto_increment, `username` varchar(100) default NULL, `firstname` varchar(100) default NULL, `lastname` varchar(100) default NULL, `email` varchar(100) default NULL, `phone` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; INSERT INTO `usuarios` VALUES (1, 'examples\\msmith', 'Mark', 'Smith', 'mark@somoslibres.org', '1234567'); INSERT INTO `usuarios` VALUES (2, 'examples\\mary', 'Mary', 'Torres', 'torres@somoslibres.org', '123444555'); MSc. Daniel Alejandro Yucra Sotomayor Pag. - 2 -
Esta base de datos, contiene 02 tablas y en una de ellas se encuentran los usuarios con sus respectivos campos. De acuerdo a los datos de la tabla el apellido de Mary es Torres y ese es el dato que se debe mostrar como resultado. 3.4.1 Creando una conexión a la Base de Datos Para iniciar una conexión intalio con Mysql es necesario crear una conexión a la base de datos. a) En el proyecto hacemos clic derecho y seleccionamos la opción New, luego Database Connector. Figura 03: Seleccionando la opción Database Connector a) A continuación creamos un nombre a esta conexión consulta.sql Figura 04: Asignando nombre a la conexión MSc. Daniel Alejandro Yucra Sotomayor Pag. - 3 -
b) A continuación hacemos un clic en el boton New Connection Profile y se mostrará las diferentes Gestores de Base de Datos y seleccionamos MYSQL y el nombre de esta conexión será instituto Figura 05: Seleccionando la base de datos MYSQL d) Seguidamente nos mostrará otra pantalla donde se especificará el controlador MYSQL JDBC, dependiendo de la versión Figura 06: Ventana para especificar el controlador y detalles de la conexión MSc. Daniel Alejandro Yucra Sotomayor Pag. - 4 -
Figura 07: Seleccionando New Driver Definition e) A continuación nos mostrará la siguiente pantalla, donde se seleccionará la versión de base de datos que tiene instalado en su computador Figura 08: Lista de versiones de MYSQL f) A continuación hacemos clic en la pestaña Jar List, antes de adicionar elegimos la opción Clear All Figura 09: Pestaña Jar List para adicionar un nuevo controlador MSc. Daniel Alejandro Yucra Sotomayor Pag. - 5 -
g) Ahora solo queda seleccionar el controlador correspondiente en este caso seleccionamos la opción Add Jar/Zip ubicado en la carpeta controlador y cuyo nombre de archivo es mysql-connector-5.0.4.jar. Figura 10: Adicionando el nuevo controlador h) Para definir este nuevo controlador solo queda hace clic en el boton ok, a continuación aparecerá automáticamente la siguiente pantalla: Figura 11: Detalles generales de la nueva conexión MSc. Daniel Alejandro Yucra Sotomayor Pag. - 6 -
i) A continuación debe personalizar esta nueva conexión, en este caso el nombre de la base de datos es instituto y coloque el correspondiente password Figura 12: Detalles de la nueva conexión j) Antes de finalizar es necesario hacer el test correspondiente, entonces hacer clic en el boton Test Connection Figura 13: Verificando conexión k) Finalmente aparecerá el nombre de la conexión y se creará automáticamente un archivo SQL. MSc. Daniel Alejandro Yucra Sotomayor Pag. - 7 -
Figura 14: Comprobando Archivo SQL y nombre de la conexión l) Para que se pueda utilizar en el diagrama este nuevo artefacto es necesario definir la consulta SQL, en este definimos el siguiente query: select * from usuarios where firstname =? Figura 15: Definiendo el query en la consola de la conexión 3.5 Creando el Diagrama de Negocio de Procesos Es importante que no debe generar error el proyecto debe mostrar estos artefactos: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 8 -
Figura 16: Artefactos adicionados al proyecto A continuación adicionamos un Diagrama de Procesos de negocio con el nombre ModeloBD, donde incorporaremos los artefactos correspondientes. a) A continuación creamos 03 pool, una para el "Administrador", el "Servidor" y "Base de Datos". Donde el único pool ejecutable será las tareas del pool "Servidor". Figura 17: Diagrama de Procesos de negocios con 03 pools b) Luego insertaremos el primer formulario creado en el pool Administrador, con la opción Use Formulario Consulta for people Initiation Process Activity MSc. Daniel Alejandro Yucra Sotomayor Pag. - 9 -
c) A continuación adicionamos el segundo formulario en el pool Administrador con la opción Use respuesta for Notification" d) En el pool ejecutable insertamos las siguientes tareas "Recibe Datos", "Envia Consulta" y "Envia Resultado" e) El último artefacto en adicionar será el archivo consulta.sql en el pool de la Base de Datos. Figura 18: Vista previa de los artefactos en el diagrama f) Ahora hacemos clic en el pool Administrador y asignamos el rol examples\manager para que el usuario examples\ewilliams pueda realizar la consulta Figura 19: Asignado rol al pool Administrador g) A continuación enlazamos las tareas utilizando las flechas de conexión, nuestro diagrama debe quedar de la siguiente manera. MSc. Daniel Alejandro Yucra Sotomayor Pag. - 10 -
Figura 19: Vista final del diagrama 3.6 Mapeando el proceso a) En el primer caso hacemos clic en la tarea Envia Consulta, y mapeamos del Formulario hacia la consulta SQL. Figura 20: Mapeando FormularioConsulta1InitProcessRequest con ConsultaRequest MSc. Daniel Alejandro Yucra Sotomayor Pag. - 11 -
b) En el segundo caso, hacemos clic en la tarea Envia Resultado y mapeamos del resultado SQL al formulario de notificación. Figura 21: Mapeando ConsultaResponde con RespuestaNotiffy Request Importante: Debe marcar lastname y enlazarlo con El_apellido_Es Como el diagrama recién esta terminado ahora si, guarde el proyecto 4. Ejecutando el proceso en el servidor a) Ingresamos como usuario admin y verificamos que el nuestro proyecto y pool ejecutable este en la lista. MSc. Daniel Alejandro Yucra Sotomayor Pag. - 12 -
Figura 22: Verificando el estado del proceso b) A continuación aperturamos una nueva ventana para colocar el siguiente URL http://localhost:8080/ui-fw, y colocamos el usuario examples\ewilliams y cuyo password es password. Figura 23: Ingresando el nombre Mary c) A continuación puede verificar desde el usuario examples\ewilliams la respuesta como una notificación MSc. Daniel Alejandro Yucra Sotomayor Pag. - 13 -
Figura 24: Mostrando el apellido de Mary. 5. Mejorando el proceso Para poder mejorar el proceso se pide: a) Imprimir todos los campos como una notificación, inicia examples\ ewilliams", pero los resultados son mostrados en el usuario examples\ msmith". b) Se pide que el proceso lo inicie "examples\ ewilliams", y recupere el nombre de Mary, luego el usuario "examples\ewilliams", modifique el nombre por Maria, finalmente actualice este nuevo nombre en la Base de Datos. (Por 2 puntos en el trabajo final) Contenido Laboratorio 5 1. Introducción 2. Enunciado del Proceso 3. Modelando el proceso 3.1 Creando el proyecto 3.2 Creando la interfaz (formulario) para ingresar la consulta 3.3 Creando la interfaz (formulario) para recuperar la respuesta 3.4 Gestionando la conexión a la Base de Datos Instituto 3.4.1 Creando una conexión a la Base de Datos 3.5 Creando el Diagrama de Negocio de Procesos 3.6 Mapeando el proceso 4. Ejecutando el proceso en el servidor MSc. Daniel Alejandro Yucra Sotomayor Pag. - 14 -
Solución disponible en: http://bpm.somoslibres.org Universidad Inca Gracilazo de la Vega Facultad de Ingeniería de Sistemas, Cómputo y Telecomunicaciones Asignatura: Gestión de Procesos de Negocios Docente: MSc. Daniel Alejandro Yucra Sotomayor Ingeniero de Sistemas Colegio de Ingenieros del Perú: 61845 Email: daniel@somoslibres.org, dyucra@gmail.com Lima Perú, 2011 MSc. Daniel Alejandro Yucra Sotomayor Pag. - 15 -