Construcción de una solución basada en Intelligent eForms en DB2 pureXML, Lotus Forms, y servicios web

Creación de una aplicación de formularios electrónicos en tres pasos

El procesamiento de formularios es una de las principales tareas diarias de muchas empresas públicas y privadas. Los procesos basados en formularios de papel requieren muchos recursos, insumen tiempo, y suelen tener como consecuencia datos imprecisos o incompletos. Este artículo describe cómo crear una solución electrónica eficiente para la captura, entrega y administración de datos. El artículo lo guiará en tres a solución eficiente para la captura de datos en formularios electrónicos XML con® con los Lotus Forms para captura de datos,® pureXML® DB2 para almacenamiento y consulta de datos entre los dos a través de un simple servicio web que podrá crear con Data Studio Developer. En tres pasos usted obtendrá una aplicación operativa de formularios electrónicos, que puede ser la base para la captura y administración de datos de manera eficiente, rápida y precisa.

Bryan Patterson, DB2 Data Server Solution Architect, IBM

Author Photo: Bryan PattersonBryan Patterson es Senior Solutions Architect en Silicon Valley Laboratory de IBM, especializado en administración de bases de datos. Tiene más de 20 años de experiencia en la industria del software, que incluye puestos gerenciales en áreas de desarrollo, control de calidad y planeamiento de productos. Su dirección de correo electrónico es bryanp@us.ibm.com.



Dexiong Terry Zhang, Software Engineer (Co-op), IBM

Author Photo: Dexiong Terry ZhangDexiong Terry Zhang es Software Engineer Co-op en Sillicon Valley Lab de IBM. Se graduó en la Universidad del Estado de San José y obtuvo el título de Ciencias de la Computación. Se incorporó al equipo DB2 pureXML Enablement en 2008 y trabaja en la integración de soluciones de pureXML en diversos proyectos.



29-07-2011

Introducción

La transacciones diarias de los negocios de la actualidad dependen fuertemente de los formularios para captura de datos, en actividades que incluyen la apertura de cuentas, reclamos, solicitudes de servicio, e incluso declaraciones impositivas. Muchos procesos de captura de datos dependen todavía de los formularios de papel para reunir información, pero tanto las empresas públicas como las privadas se están pasando de los de papel a los electrónicos online (eForms). Comparada con los sistemas basados en papel, una solución eForms es más rápida, más eficiente, más fácil de usar, y genera por lo tanto datos mejores. World Wide Web Consortium (W3C) recomienda para los eForms la tecnología eXtensible Markup Language (XML) basada en XForms.

Muchos consideran que XML es la tecnología más apropiada para la transferencia de datos online y se ha utilizado ampliamente en muchas industrias para los negocios online. Los aspectos auto-descriptibles, flexibles y extensibles de XML también la hacen una alternativa perfecta de modelo para la captura y entrega de datos en formularios electrónicos. Los XForms, propulsados por XML, pueden presentar y capturar datos en formularios electrónicos de manera eficiente. Soportan la validación de formularios de datos contra un esquema XML que puede incluir vocabularios verticales estándares de la industria tales como ACORD, HL7 y NIEM. También soporta la entrega de datos XML directos a un servidor eliminando el proceso de conversión de formato de datos antes de la transmisión. XForms es independiente de la plataforma, esto significa que puede implementarse un único desarrollo de formularios para dispositivos de clientes múltiples. Los® Lotus Forms de IBM brindan una solución de eForms basada en XForms con presentaciones adicionales y aptitudes de seguridad capaces de mejorar notablemente el proceso de captura de datos.

Después de que los datos son capturados por un formulario, se necesita un método eficiente para administrar los datos del formulario XML. Tradicionalmente, en una base de datos relacional, estos tienen que ser tratados o como un objeto grande o descomponerse en columnas relacionales. Cuando los datos XML son tratados como un objeto grande en una base de datos, cualquier consulta sobre los datos requiere la recuperación completa del documento XML en lugar de recuperar solamente los datos necesarios, y el contenido de los datos no puede ser utilizado para determinar qué documentos recuperar. Por otra parte, la descomposición de datos XML en columnas relacionales es un proceso complejo y costoso; y quita la información semántica auto-descriptiva dentro de XML. El proceso de descomposición también elimina la flexibilidad y extensibilidad de XML. Si se cambia la estructura del documento XML original, algo que puede suceder frecuentemente con las aplicaciones de formularios, el mapeo original de las estructuras relacionales ya no será válido y necesitará actualizaciones para incorporar el cambio.

IBM resolvió la necesidad de una administración eficiente de datos XML en bases de datos relacionales mediante la introducción de la prestación pureXML en IBM DB2. Con DB2 pureXML, se podrá almacenar y recuperar datos XML de la base de datos en su estructura jerárquica tradicional sin procesamiento o formateo posterior. Esto posibilita una administración eficiente para formulario de datos XLM.

La combinación de DB2 pureXML y Lotus Forms brinda el fundamento para una solución de formularios electrónicos tanto simple como efectiva.

Generalidades de la Solución

La solución IBM Intelligent eForms solution está creada en DB2 pureXML y Lotus Forms. Lotus Forms captura los datos en el front-end de una estructura XML y DB2 pureXML administra los datos del formulario XML en el back-end. El front-end y el back-end están conectados a un servicio web creado con IBM Data Studio Developer y alojado en un servidor de aplicaciones tipo IBM WebSphere® Application Server. La solución ofrece la captura end-to-end de datos XML, entrega, y habilidades de administración, con productos de software IBM confiables y escalables. La arquitectura de la solución de la Figura 1 muestra las herramientas utilizadas tanto al momento del desarrollo como durante la ejecución.

Figura 1: Arquitectura de la solución IBM Intelligent eForms solution
Figura 1: Arquitectura de la solución IBM Intelligent eForms solution

Las siguientes secciones describen brevemente las funciones de los productos básicos que conforman la solución. Ir a Recursos para ver enlaces de información más detallada sobre estos productos.

DB2 pureXML

La prestación pureXML se introdujo por primera vez en IBM DB2 versión 9. Brinda la posibilidad de almacenar datos XML nativamente en su formato jerárquico dentro de un sistema de base de datos relacional. Esto significa que el documento XML se almacena con conocimiento integral de la estructura jerárquica interna del documento y sus elementos y atributos individuales. Con pureXML, usted podrá almacenar, controlar, consultar y actualizar eficientemente los datos XML junto con los datos relacionales almacenados en la misma tabla o base de datos.

Los datos XML en DB2 pureXML se presentan como la columna de una tabla, al igual que otros datos relacionales, con un tipo de datos de XML. DB2 soporta consultas escritas en los lenguajes estándar de la industria SQL/XML y XQuery para acceder y manipular los datos XML. Los servicios DB2 tales como optimización, indexación, control de simultaneidad y utilitarios son amplios para soportar datos XML junto con los datos relacionales. La Figura 2 describe cómo con pureXML, DB2 se convirtió en una base de datos híbrida que puede acceder y administrar datos relacionales y datos XML de la misma forma eficiente.

Figura 2: Arquitectura de DB2 con soporte incorporado para datos relacionales y XML
Figura 2: Arquitectura de DB2 con soporte incorporado para datos relacionales y XML

Con el almacenamiento XML nativo de pureXML, usted podrá aprovechar la flexibilidad de las estructuras XML y disminuir el exceso de aplicaciones para su solución eForm. Con pureXML, usted podrá insertar los datos XML de todo el formulario en una sola columna DB2 XML y seguir conservando el acceso eficiente a elementos de datos individuales. Podrá devolver documentos completos o subconjuntos de documentos según las necesidades. Los datos del formulario XML almacenados en DB2 pueden ser transmitidos a través de una intranet o por Internet para procesamiento adicional, análisis, o para compartir información sin manipulación posterior.

Nota:pureXML está disponible a partir de la Versión 9 de DB2 para Linux®,UNIX®, y Windows® y DB2 para z/OS. La solución de este artículo usa la edición DB2 Express-C Versión 9.5 para Linux, UNIX, y Windows, cuya descarga y uso son gratuitos. Ir a Recursos para ver el enlace a la página de descarga.

Data Studio Developer

IBM Data Studio es un portafolio de herramientas basada en Eclipse que incluye un conjunto integral de prestaciones para diseñar, desarrollar y administrar datos, bases de datos y aplicaciones propulsadas por datos. Brinda un entorno de desarrollo y prueba que usted puede utilizar para construir objetos de bases de datos y aplicaciones. Data Studio Developer le permite utilizar SQL, SQL/XML, XQuery y Java para crear y ejecutar consultas de bases de datos, procedimientos almacenados, servicios web y capas de acceso a datos Java. Usted puede generar servicios deb de Datos directamente desde sentencias SQL y procedimientos almacenados sin necesidad de escribir ni una línea de código de aplicación. Los servicios web soportan tanto lazos SOAP como REST y usted los puede implementar directamente en servidores de aplicación soportada tales como WebSphere Application Server.

Este artículo describe cómo utilizar el Data Studio Developer para crear servicios web de Datos sencillos para recibir datos XML desde un eForm y almacenarlo directamente en DB2.

WebSphere Application Server

IBM WebSphere Application Server es un servidor de aplicaciones basado en Java, J2EE, y servicio web. Ofrece un rico entorno de despliegue de aplicaciones con un conjunto completo de servicios de aplicaciones, que incluye aptitudes para la administración de transacciones, seguridad, clustering, rendimiento, disponibilidad, conectividad; y escalabilidad. La solución de este artículo usa WebSphere Application Server Community Edition para la utilización de servicios web y, además es gratuito. Ir a Recursos para ver el enlace a la página de descarga.

Lotus Forms

IBM Lotus Forms lo ayuda a automatizar los procesos empresariales basados en formularios y facilita la integración de datos con los sistemas de IT existentes. Las tecnologías básicas de Lotus Forms son los XForms de estándar abierto W3C y el Lenguaje de Descripción de Formularios Extensibles (Extensible Forms Description Language, XFDL). A niveles altos, XForms brinda un modelo de datos XML con separación de datos y apariencia de los formularios, y XFDL controla la capa de presentación del formulario y la lógica empresarial. Con Lotus Forms, usted puede crear eForms con la apariencia de un formulario de papel o con una pregunta guiada y un estilo de respuesta. Lotus Forms tiene la capacidad de validar el ingreso de datos en base a criterios definidos y aplicar la lógica empresarial según los datos ingresados. Lotus Forms también brinda soporte de firma digital para garantizar seguridad. Lotus Forms puede implementarse como software de escritorio cliente o como formularios basados en servidores Web.

Este artículo describe cómo usar Lotus Forms Designer y Lotus Forms Viewer. La primera es una herramienta de desarrollo para la construcción de formularios electrónicos basados en XForms. Está construido sobre una plataforma Eclipse y brinda un entorno WYSIWYG con prestaciones avanzadas para el desarrollo de eForms rápidos. Lotus Forms Viewer es el cliente rico de ejecución de escritorio multimedia, que le permite visualizar, completar y enviar eForms.

Construcción de la Solución

Esta sección lo guiará a través de los pasos para crear una solución de Formularios Electrónicos. Estos son los tres pasos principales para crear la solución completa de formularios electrónicos (volver a la Figura 1 para ver un diagrama):

  1. Crear la base de datos y la tabla para almacenar los datos del formulario en DB2 pureXML - usar el DB2 Command Editor

  2. Crear e implementar el servicio web de Datos - usar Data Studio Developer

  3. Crear el formulario electrónico - usar Lotus Forms Designer

Todo este proceso se puede terminar bastante rápido una vez que se ha instalado el software necesario. Después sólo hay que completar el formulario y entregar los datos usando Lotus Forms Viewer. El artículo también lo guiará en esto.

Finalmente, el artículo le muestra cómo consultar los datos del formulario XML que se almacenó en DB2.

Prerrequisitos

Antes de proceder con la construcción de la solución, tendrá que instalar y configurar el siguiente software en su sistema:

  • DB2 9, o posterior, que incluya pureXML

  • Data Studio Developer V2.1, disponible una descarga gratuita de prueba

  • WebSphere Application Server Community Edition V2.1

  • Lotus Forms Designer V3.5

  • Lotus Forms Viewer V3.5

Ir a la sección Recursos para ver los enlaces de descargas e instalación detallada y las guías de configuración de cada producto.

El artículo lo guía a través de los pasos para construir la solución de formularios electrónicos. Si planea crear la solución en su sistema, será útil tener conocimientos básicos de sistemas de bases de datos, DB2 y sentencias SQL. También resultará provechoso tener conocimientos básicos de tecnología XML y conceptos de servicios web.

Creación de la base de datos y la tabla para almacenar los datos del formulario

Siga los pasos que se describen a continuación para crear la base de datos y la tabla para la solución eForms en DB2.

  1. Abrir la ventana del DB2 Command Editor e ingresar el siguiente comando para crear la base de datos:

    Crear la base de datos eformdb utilizando el conjunto de códitos utf-8 territory us
  2. Ingresar el siguiente comando para conectarse a la base de datos:

    Conectar a eformdb
  3. Ingresar el siguiente comando para crear una tabla. Para simplificar, la tabla para esta solución tiene una sola columna, pero obsérvese que la columna tiene un tipo de datos de XML.

    Crear tabla eformtable (form xml)

Creación e implementación del servicio web de Datos

Siga los pasos a continuación para crear un servicio web de Datos con Data Studio Developer. El servicio web de Datos recibe los datos del formulario XML y los inserta en la base de datos. Esta solución sólo requiere un servicio web simple, aunque también son posibles servicios más sofisticados.

  1. Lanzar Data Studio Developer.

  2. Hacer doble clic en la ventana del Explorador de Fuente de Datos Conexiones a la Base de Datos > EFORMDB [DB2 Alias] para que devuelva su ventana de propiedades (Figura 3). Si no ve la base de datos EFORMDB en la lista, haga clic con el botón derecho sobre Database Connections y seleccione Nuevo... para crear la conexión.

  3. En la ventana de propiedades, Seleccionar IBM Data Server Driver para JDBC y SQLJ Predeterminados del menú desplegable de Drivers. Ingrese su nombre de usuario DB2 y contraseña y marque la casilla Guardar contraseña Puede probar la conexión haciendo clic en el botón Prueba de Conexión Hacer clic en OK para terminar.

    Figura 3: Propiedades para conexión a la base de datos EFORMDB
    Figura 3: Propiedades para conexión a la base de datos EFORMDB
  4. Haga clic con el botón derecho en cualquier parte de la ventana del Explorador del Proyecto de Datos y seleccionar Nuevo > Proyecto de Desarrollo de Datos para que devuelva la ventana Nuevo Proyecto de Desarrollo de Datos. Ingresar eFormProject como nombre del proyecto. Clic en Siguiente, luego seleccionar EFORMDB de la lista de Conexiones de la pantalla Seleccionar Conexión (Figura 4), y clic en Terminar.

    Figura 4: Ventana nuevo proyecto de desarrollo de datos
    Figura 4: Ventana nuevo proyecto de desarrollo de datos

    Nota: La información tal como el nombre del proyecto se usa en el WSDL creado por Data Studio Developer para el servicio web, por lo que habrá que tener en cuenta que es case-sensitive (distinción entre mayúsculas y minúsculas).

  5. En la ventana del Explorador de Proyecto de Datos, hacer clic en el signo más (+) para expandir el eForm Project, hacer clic con el botón derecho sobre eForm Project > SQL Scripts, y seleccionar Nuevo > SQL o XQuery Script para crear una nueva sentencia SQL. Ingresar insert Form para el nombre (Figura 5) y hacer clic en Terminar.

    Figura 5: Ventana de nuevo SQL o XQuery Script
    Figura 5: Ventana de nuevo SQL o XQuery Script

    Nota: Esta solución usa el editor SQL y XQuery (opción predeterminada) para crear la sentencia SQL. También se puede construir la sentencia del Constructor de Consultas SQL (SQL Query Builder) mediante el uso de un asistente.

  6. En la ventana insertForm.sql, ingresar el siguiente script:

    Insert into eformtable (form) values

    Cerrar y guardar insertForm.sql. Ahora debería poder ver el script enumerado en SQL Scripts como eForm Project en el Explorador del Proyecto de Datos.

  7. Hacer clic con el botón derecho en la ventana del Explorador del Proyecto de Datos eForm Project > servicios web y seleccionar Nuevo servicio web. Para crear un servicio web. Ingresar eForm Web Service como nombre y eForm como el espacio de nombre URI (Figura 6). Una vez más, recuerde ser cuidadoso con el uso de la ortografía y las mayúsculas de los valores ingresados. Hacer clic en Terminar.

    Figura 6: Nueva ventana de servicio web
    Figura 6: Nueva ventana de servicio web
  8. En la ventana del Explorador del Proyecto de Datos, arrastrar y soltar el eForm Project > SQL Scripts > insertForm.sql hacia eForm Project > servicios web > eForm Web Service*. Esto crea una nueva operación en el eForm Web Service llamada insert Form.

    Figura 7: Arrastrar y soltar para crear la operación para servicio web
    Figura 7: Arrastrar y soltar para crear la operación para servicio web
  9. Hacer clic con el botón derecho en la ventana del Explorador del Proyecto de Datos eForm Project > servicios web > eForm Web Service* y seleccionar Crear e Implementar. Para que devuelva la ventana Implementar servicio web (Figura 8). Seleccionar el botón de opciones Servidor y seleccionar IBM WASCE v2.1 Server en hostlocal del menú desplegable. Marcar la casilla para Lanzar Explorador de servicios web después de implementación y hacer clic en Terminar. (Esto inicia WASCE si ya no está iniciado.)

    Figura 8: Ventana implementar servicio web
    Figura 8: Ventana implementar servicio web
  10. En la ventana del Explorador de servicios web (Figura 9), hacer clic sobre la URL en WSDLMain del panel navegador y desplegar hacia abajo el panel Acciones para seleccionar Importar WSDL al sistema de archivo. Guardar el archivo como eForm.wsdl en el disco duro.

    Figura 9: Ventana del explorador de servicios web
    Figura 9: Ventana del explorador de servicios web

Ahora terminó de crear e implementar el servicio web.

Creación del formulario electrónico

Siga los pasos que se describen a continuación para crear un formulario electrónico simple.

Observe que la sección Descarga de este artículo contiene un enlace a un formulario de muestra. Este formulario funciona con el servicio web que creó en la sección anterior siempre y cuando haya seguido las mismas convenciones de denominación descriptas en los pasos. Puede usar el formulario de muestra anexado como una alternativa para crear uno propio, o puede crear su propio formulario y usar ambos para ver ejemplos de un formulario simple y uno complejo. El mismo servicio web y tabla de base de datos funcionan para ambos.

  1. Lanzar Lotus Forms Designer y seleccionar Archivo > Nuevo Formulario Lotus para que devuelva el Asistente de nuevo formulario Lotus. Seleccionar Un formulario en blanco (opción predeterminada) y hacer clic en Terminar. (Si emerge una ventana que pregunta si desea cambiar la perspectiva, elegir No.) Seleccionar Ventana > Abrir perspectiva > Otra, elegir Advanced Lotus Forms Designer de la lista, y luego hacer clic en OK.

  2. En la ventana Adjuntos (Figura 10), hacer clic con el botón derecho WSDL > servicios web y seleccionar Adjuntar archivo WSDL. Elegir el eForm.wsdl que guardó antes en el disco duro para adjuntarlo al formulario.

    Figura 10: Insertar WSDL al formulario
    Figura 10: Insertar WSDL al formulario
  3. En la ventana Instancia (Figura 11), hacer clic sobre el botón Crea una nueva instancia a partir de un mensaje WSDL

    Nota: La ventana Instancia muestra una instancia con el nombre Instancia: Generada. Sin embargo, para esta solución usted crea su propia instancia a partir del archivo WSDL adjunto para que usted pueda enviar el formulario al servicio web.

    Figura 11: Crear instancia a partir del WSDL adjunto en la ventana Instancia
    Figura 11: Crear instancia a partir del WSDL adjunto en la ventana Instancia
  4. En la ventana de mensaje WSDL (Figura 12), marcar la casilla insert Form Soap Input y hacer en OK. Se crea una nueva instancia llamada INSTANCE.

    Figura 12: Seleccionar la operación necesaria en la ventana de mensaje WSDL
    Figura 12: Seleccionar la operación necesaria en la ventana de mensaje WSDL
  5. Cambiar a la vista Fuente con un clic en la etiqueta Fuente al pie del lienzo (Figura 13). Buscar la etiqueta xforms: instanceid="INSTANCE" creada a partir del mensaje WSDL. Como muestra la Figura 13, cambiar los elementos secundarios del elemento <document> para incluir lo siguiente:

    <document>
    	<data>
    		<name>
    			<firstname></firstname>
    			<lastname></lastname>
    		</name>
    	</data>
    </document>
    Figura 13: Cambiar la INSTANCE en la vista Fuente
    Figura 13: Cambiar la INSTANCE en la vista Fuente
  6. Volver a la vista Diseño con un clic en la etiqueta Diseño al pie del lienzo. En la ventana Instancia (Figura 14), expanda el rubro Instancia: INSTANCE y luego arrastre y suelte el elemento datos dentro del lienzo. Esto crea automáticamente la etiqueta correspondiente y los campos de ingreso para el elemento datos y sus descendientes. La columna Refs resaltada al lado de cada elemento indica que el elemento está asociado a un campo de ingreso en el formulario y el número muestra la cantidad de veces que está mencionado el elemento.

    Figura 14: Arrastrar y soltar el elemento para crear etiquetas, campos de ingreso y vínculos
    Figura 14: Arrastrar y soltar el elemento para crear etiquetas, campos de ingreso y vínculos
  7. En la ventana XForms (Figura 15), hacer clic con el botón derecho en XForms > Model: Default > instance: INSTANCE y seleccionar Crear envío para la instancia. Esto crea un nuevo envío llamado SUBMISSION, que es el procedimiento para enviar los datos del formulario al servicio web.

    Figura 15: Crear la funcionalidad envío para el formulario
    Figura 15: Crear la funcionalidad envío para el formulario
  8. Cambiar a la vista Fuente. Buscar y cambiar la etiqueta xforms:submission para que se vea así:

    <xforms:submission id="SUBMISSION" replace="none" method="post"   
    action=
    "http://localhost:8080/eFormProjecteFormWebService/Services/eFormWebService"   
    mediatype="application/soap+xml 
    action=eForm/insertForm"> </xforms:submission>

    El valor del atributo action de arriba es la URL del vínculo SOAP para el servicio web. La URL se puede encontrar en la etiqueta soap:address dentro del mensaje WSDL adjunto como se muestra en la Figura 16.

    Figura 16: Buscar la soap: address (dirección) en el WSDL adjunto
    Figura 16: Buscar la soap: address (dirección) en el WSDL adjunto

    La action dentro del atributo mediatype es el nombre de la operación SOAP. Esto se puede encontrar en la etiqueta soap:operation dentro del mensaje WSDL adjunto como se muestra en la Figura 17. Asegúrese de que el valor de action en el atributo mediatype no esté entre comillas.

    Figura 17: Buscar la soap:operation (operación) en el WSDL adjunto
    Figura 17: Buscar la soap:operation (operación) en el WSDL adjunto

    Nota: Para un servicio web complejo, puede haber varios rubros soap:operation Busque la soap:operation que utilizó para crear la instancia. En este caso, como eligió insert Form Soap Input de la Figura 12 al crear la instancia, elegirá la operación eForm/insert Form en la Figura 17.

  9. Volver a la vista Diseño. En la ventana Paleta de la Biblioteca Avanzada (Figura 18), seleccionar el Botón (Enviar) y hacer clic en el lienzo para crear un botón enviar.

    Figura 18: Usar Paleta para crear un botón enviar
    Figura 18: Usar Paleta para crear un botón enviar

    Podrá encontrarse con un diálogo emergente de Propiedades (Figura 19) que le permitirá configurar las propiedades del objeto que acaba de crear. Cambie las propiedades a su gusto y haga clic en OK.

    Figura 19: Puede emerger el diálogo Propiedades cuando crea objetos nuevos
    Figura 19: Puede emerger el diálogo Propiedades cuando crea objetos nuevos
  10. Con el botón enviar seleccionado en el lienzo, expanda el rubro XForms (Enviar) de la ventana Propiedades (Figura 20). Use el menú desplegable para marcar la opción Envío para el envío que creó en el paso anterior, que es SUBMISSION.

    Figura 20: Marcar el botón enviar para el envío que creó
    Figura 20: Marcar el botón enviar para el envío que creó
  11. En la ventana Adjuntos (Figura 21), hacer clic con el botón derecho en WSDL > WebServices > eForm.wsdl luego seleccionar Eliminar para eliminar el mensaje WSDL del formulario.

    Figura 21: Hay que eliminar el WSDL adjunto
    Figura 21: Hay que eliminar el WSDL adjunto
  12. Guardar el formulario como eForm.xfdl y cerrar Lotus Forms Designer.

Envío de los datos de eForm

Ahora ya puede usar el eForm para capturar información y enviar los datos a la base de datos a través del servicio web. Siga los pasos a continuación:

  1. Abrir el eForm.xfdl con Lotus Forms Viewer. Ingresar algún dato de muestra y hacer clic en el botón Enviar para enviar el formulario a la base de datos a través del servicio web.

  2. Completar y enviar más formularios de muestra. Los ejemplos de consulta de la próxima sección están basados en los datos de muestra que aparecen en la Tabla 1.

  3. Una vez que terminó de enviar muestras, simplemente cierre Lotus Forms Viewer.

Tabla 1: Datos de muestra
NombreApellidoID de usuarioTeléfono
JohnSmith6932(483)483-2838
TedWilson4823(593)583-4824
AdamSmith9583(284)099-8488
CharlesBrown4388(483)238-2273
JeffGordon7447(558)387-3112

Consultar Datos de eForm XML de la base de datos

Una vez que se enviaron los datos, podrá consultar los datos del formulario XML que se insertaron en DB2. La Versión 9 de DB2 soporta tanto SQL/XML como XQuery para consultas XML. Este ejemplo usa una consulta SQL/XML. Para obtener una explicación detallada de sentencias SQL/XML y XQuery, ver la sección Recursos

Abrir la ventana de DB2 Command Editor o el Command Line Processor (Procesador de Línea de Comandos) (o usar Data Studio, creando un nuevo script SQL para esta consulta). Ingresar y ejecutar las siguientes sentencias SQL/XML.

  1. La siguiente consulta encuentra los ID de usuario de todos los formularios enviados y los devuelve como varchar:

    select xmlcast(xmlquery('$f/data/userid/text()'passing form as ID from eformtable

    El valor del atributo action de arriba es la URL del vínculo SOAP para el servicio web. La URL se puede encontrar en la etiqueta soap:address dentro del mensaje WSDL adjunto como se muestra en la Figura 16.

    Figura 16: Buscar la soap: address (dirección) en el WSDL adjunto
    Figura 16: Buscar la soap: address (dirección) en el WSDL adjunto

    La action dentro del atributo mediatype es el nombre de la operación SOAP. Esto se puede encontrar en la etiqueta soap:operation dentro del mensaje WSDL adjunto como se muestra en la Figura 17. Asegúrese de que el valor de action en el atributo mediatype no esté entre comillas.

    Figura 17: Buscar la soap:operation (operación) en el WSDL adjunto
    Figura 17: Buscar la soap:operation (operación) en el WSDL adjunto

    Nota: Para un servicio web complejo, puede haber varios rubros soap:operation Busque la soap:operation que utilizó para crear la instancia. En este caso, como eligió insert Form Soap Input de la Figura 12 al crear la instancia, elegirá la operación eForm/insert Form en la Figura 17.

  2. Volver a la vista Diseño. En la ventana Paleta de la Biblioteca Avanzada (Figura 18), seleccionar el Botón (Enviar) y hacer clic en el lienzo para crear un botón enviar.

    Figura 18: Usar Paleta para crear un botón enviar
    Figura 18: Usar Paleta para crear un botón enviar

    Podrá encontrarse con un diálogo emergente de Propiedades (Figura 19) que le permitirá configurar las propiedades del objeto que acaba de crear. Cambie las propiedades a su gusto y haga clic en OK.

    Figura 19: Puede emerger el diálogo Propiedades cuando crea objetos nuevos
    Figura 19: Puede emerger el diálogo Propiedades cuando crea objetos nuevos
  3. Con el botón enviar seleccionado en el lienzo, expanda el rubro XForms (Enviar) de la ventana Propiedades (Figura 20). Use el menú desplegable para marcar la opción Envío para el envío que creó en el paso anterior, que es SUBMISSION.

    Figura 20: Marcar el botón enviar para el envío que creó
    Figura 20: Marcar el botón enviar para el envío que creó
  4. En la ventana Adjuntos (Figura 21), hacer clic con el botón derecho en WSDL > WebServices > eForm.wsdl luego seleccionar Eliminar para eliminar el mensaje WSDL del formulario.

    Figura 21: Hay que eliminar el WSDL adjunto
    Figura 21: Hay que eliminar el WSDL adjunto
  5. Guardar el formulario como eForm.xfdl y cerrar Lotus Forms Designer.

Envío de los datos de eForm

Ahora ya puede usar el eForm para capturar información y enviar los datos a la base de datos a través del servicio web. Siga los pasos a continuación:

  1. Abrir el eForm.xfdl con Lotus Forms Viewer. Ingresar algún dato de muestra y hacer clic en el botón Enviar para enviar el formulario a la base de datos a través del servicio web.

  2. Completar y enviar más formularios de muestra. Los ejemplos de consulta de la próxima sección están basados en los datos de muestra que aparecen en la Tabla 1.

  3. Una vez que terminó de enviar muestras, simplemente cierre Lotus Forms Viewer.

Tabla 1: Datos de muestra
NombreApellidoID de usuarioTeléfono
JohnSmith6932(483)483-2838
TedWilson4823(593)583-4824
AdamSmith9583(284)099-8488
CharlesBrown4388(483)238-2273
JeffGordon7447(558)387-3112

Consultar Datos de eForm XML de la base de datos

Una vez que se enviaron los datos, podrá consultar los datos del formulario XML que se insertaron en DB2. La Versión 9 de DB2 soporta tanto SQL/XML como XQuery para consultas XML. Este ejemplo usa una consulta SQL/XML. Para obtener una explicación detallada de sentencias SQL/XML y XQuery, ver la sección Recursos

Abrir la ventana de DB2 Command Editor o el Command Line Processor (Procesador de Línea de Comandos) (o usar Data Studio, creando un nuevo script SQL para esta consulta). Ingresar y ejecutar las siguientes sentencias SQL/XML.

  1. La siguiente consulta encuentra los ID de usuario de todos los formularios enviados y los devuelve como varchar:

    select xmlcast(xmlquery('$f/data/userid/text()'passing form as        
    "f") as varchar(15)) as ID from eformtable

    Dados los datos de muestra de la Tabla 1, el resultado de la consulta a partir de la sentencia anterior ejecutada en la ventana de DB2 Command Editor se muestra en la Figura 22.

    Figura 22: Resultado de la consulta para consulta de muestra 1
    Figura 22: Resultado de la consulta para consulta de muestra 1
  2. La siguiente consulta encuentra la información de todos los usuarios con apellido Smith, y devuelve los datos en formato relacional:

    select t.fname as "First Name",        
    t.lname as "Last Name",         
    t.id as "User ID",        
    t.phone as "Phone" from eformtable, xmltable('$d/data' passing form as "d"       
    columns fname varchar(20) path 'name/firstname',               
    lname varchar(20) path 'name/lastname',              
    id varchar(20) path 'userid',              
    phone varchar(20) path 'phone') as t  
    where xmlexists('$d/data/name[lastname="Smith"]'        
    passing form as "d")

    Dados los datos de muestra de la Tabla 1, el resultado de la consulta a partir de las sentencias anteriores ejecutadas en la ventana de DB2 Command Editor se muestra en la Figura 23. Si no utilizó esta muestra de datos, quite o cambie el xmlexists donde corresponda.

    Figura 23: Resultado de la consulta para consulta de muestra 2
    Figura 23: Resultado de la consulta para consulta de muestra 2

Nota: IBM también brinda herramientas avanzadas de inteligencia empresarial tales como IBM DataQuant y Cognos para la generación de informes integrales con datos XML en DB2. Ver el enlace DB2 pureXML wiki en la sección Recursos para más información.

Resumen

DB2 pureXML y Lotus Forms, conectados por servicios web, pueden combinarse para satisfacer la necesidad de formularios electrónicos eficientes basados en captura y administración de datos. Este artículo ilustra cómo se puede crear una solución de formularios electrónicos con un mínimo esfuerzo mediante la utilización de tres herramientas de desarrollo líderes en la industria de IBM: DB2 pureXML, Data Studio Developer, y Lotus Forms. Esta solución brinda tecnologías de última generación para el diseño y envío de eForms (Lotus Forms), desarrollo e implementación de servicios web (Data Studio Developer), y almacenamiento, control y acceso a datos de formularios XML (DB2 pureXML). La simplicidad de esta solución de eForms se debe al hecho de que está basada en flujo de datos XML end-to-end (de un extremo a otro): los datos son capturados en Lotus Forms como XML, enviados a un servicio web en ese mismo formato XML, y almacenados directamente en DB2 pureXML sin otras conversiones o manipulaciones intermedias. El flujo XML end-to-end simplifica no sólo el proceso de desarrollo de la solución, sino también el flujo de ejecución. Esta es una solución que puede implementarse con bastante facilidad, sin embargo puede mejorar enormemente la efectividad de la captura, administración y análisis de la información para las empresas públicas y privadas.

Reconocimientos

Los autores desean agradecer a aquellos que suministraron información para la creación de este artículo o lo revisaron, en particular a Eric Dunn, quien brindó valiosos aportes sobre Lotus Forms.


Descargar

DescripciónNombretamaño
A sample form using the database and Web service.HouseholdCensusSurvey.zip376KB

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Information mgmt, Lotus, SOA y servicios web
ArticleID=392202
ArticleTitle=Construcción de una solución basada en Intelligent eForms en DB2 pureXML, Lotus Forms, y servicios web
publish-date=07292011