Creación de un modelo de datos de formulario para la comunicación interactiva
Este tutorial es un paso de la serie Create your first Interactive Communication . Se recomienda seguir la serie en secuencia cronológica para comprender, realizar y demostrar el caso de uso completo del tutorial.
El módulo de integración de datos de AEM Forms le permite crear un modelo de datos de formulario a partir de fuentes de datos backend dispares, como AEM perfil de usuario, servicios web RESTful, servicios web basados en SOAP, servicios OData y bases de datos relacionales. Puede configurar objetos y servicios del modelo de datos en un modelo de datos de formulario y asociarlo a un formulario adaptable. Los campos de formulario adaptables están enlazados a las propiedades de objeto del modelo de datos. Los servicios permiten rellenar previamente el formulario adaptable y escribir los datos de formulario enviados en el objeto del modelo de datos.
Para obtener más información sobre la integración de datos de formulario y el modelo de datos de formulario, consulte AEM Forms Data Integration.
Este tutorial lo acompaña durante los pasos para preparar, crear, configurar y asociar un modelo de datos de formulario con una comunicación interactiva. Al final de este tutorial, podrá:
El modelo de datos de formulario tiene un aspecto similar al siguiente:
A. Fuentes de datos configuradas B. Esquemas de fuentes de datos C. Servicios disponibles D. Objetos de modelos de datos E. Servicios configurados
Antes de empezar, asegúrese de que dispone de lo siguiente:
Una base de datos es esencial para crear una comunicación interactiva. Este tutorial utiliza una base de datos para mostrar el Modelo de datos de formulario y las capacidades de persistencia de las comunicaciones interactivas. Configure una base de datos que contenga tablas cliente, facturas y llamadas.
La siguiente imagen ilustra datos de ejemplo para la tabla de clientes:
Utilice la siguiente instrucción DDL para crear la tabla customer en la base de datos.
CREATE TABLE `customer` (
`mobilenum` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
`alternatemobilenumber` int(11) DEFAULT NULL,
`relationshipnumber` int(11) DEFAULT NULL,
`customerplan` varchar(45) DEFAULT NULL,
PRIMARY KEY (`mobilenum`),
UNIQUE KEY `mobilenum_UNIQUE` (`mobilenum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Utilice la siguiente instrucción DDL para crear la tabla bill en la base de datos.
CREATE TABLE `bills` (
`billplan` varchar(45) NOT NULL,
`latepayment` decimal(4,2) NOT NULL,
`monthlycharges` decimal(4,2) NOT NULL,
`billdate` date NOT NULL,
`billperiod` varchar(45) NOT NULL,
`prevbal` decimal(4,2) NOT NULL,
`callcharges` decimal(4,2) NOT NULL,
`confcallcharges` decimal(4,2) NOT NULL,
`smscharges` decimal(4,2) NOT NULL,
`internetcharges` decimal(4,2) NOT NULL,
`roamingnational` decimal(4,2) NOT NULL,
`roamingintnl` decimal(4,2) NOT NULL,
`vas` decimal(4,2) NOT NULL,
`discounts` decimal(4,2) NOT NULL,
`tax` decimal(4,2) NOT NULL,
PRIMARY KEY (`billplan`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Utilice la siguiente instrucción DDL para crear la tabla calls en la base de datos.
CREATE TABLE `calls` (
`mobilenum` int(11) DEFAULT NULL,
`calldate` date DEFAULT NULL,
`calltime` varchar(45) DEFAULT NULL,
`callnumber` int(11) DEFAULT NULL,
`callduration` varchar(45) DEFAULT NULL,
`callcharges` decimal(4,2) DEFAULT NULL,
`calltype` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
La tabla llamadas incluye los detalles de la llamada, como la fecha de llamada, la hora de llamada, el número de llamada, la duración de la llamada y los cargos por llamada. La tabla customer está vinculada a la tabla de llamadas mediante el campo Número móvil (mobilenum) . Para cada número de móvil enumerado en la tabla customer, hay varios registros en la tabla calls. Por ejemplo, puede recuperar los detalles de la llamada para el número de teléfono móvil 1457892541 haciendo referencia a la tabla calls .
La tabla Billetes incluye detalles de la factura como fecha de factura, período de factura, cargos mensuales y cargos por llamada. La tabla customer está vinculada a la tabla bill mediante el campo Plan de Facturación. Hay un plan asociado a cada cliente en la tabla customer. La tabla bill incluye los detalles de precios de todos los planes existentes. Por ejemplo, puede recuperar los detalles del plan para Sarah de la tabla customer y usarlos para recuperar los detalles de precios de la tabla bill.
Puede configurar distintos tipos de orígenes de datos para crear un modelo de datos de formulario. Para este tutorial, configurará la base de datos MySQL que está configurada y llena con datos de ejemplo. Para obtener información sobre otras fuentes de datos compatibles y cómo configurarlas, consulte AEM Forms Data Integration.
Haga lo siguiente para configurar la base de datos MySQL:
Instale el controlador JDBC para la base de datos MySQL como un paquete OSGi:
Configure la base de datos MySQL como fuente de datos:
Vaya a AEM consola web en http://localhost:4502/system/console/configMgr.
Busque la configuración Apache Sling Connection Pooled DataSource. Pulse para abrir la configuración en modo de edición.
En el cuadro de diálogo de configuración, especifique los siguientes detalles:
jdbc:mysql://[server]:3306/teleca?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
Deje otras propiedades con valores predeterminados y pulse Guardar.
Se crea una configuración similar a la siguiente.
AEM Forms proporciona una interfaz de usuario intuitiva para crear un modo de datos de formulariol a partir de orígenes de datos configurados. Puede utilizar varios orígenes de datos en un modelo de datos de formulario. Para el caso de uso de este tutorial, utilizará MySQL como fuente de datos.
Para crear el modelo de datos de formulario, haga lo siguiente:
En AEM instancia de autor, vaya a Forms > Integraciones de datos.
Pulse Crear > Modelo de datos de formulario.
En el asistente Crear modelo de datos de formulario, especifique un nombre para el modelo de datos de formulario. Por ejemplo, FDM_Create_First_IC. Toque Siguiente.
La pantalla seleccionar fuente de datos enumera todas las fuentes de datos configuradas. Seleccione la fuente de datos MySQL y pulse Crear.
Haga clic en Listo. Se crea el modelo de datos de formulario FDM_Create_First_IC.
La configuración del modelo de datos de formulario incluye:
En AEM instancia de autor, vaya a Forms > Integraciones de datos. La dirección URL predeterminada es http://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm.
El modelo de datos de formulario FDM_Create_First_IC que creó anteriormente se muestra aquí. Selecciónela y pulse Editar.
La fuente de datos seleccionada MySQL se muestra en el panel Fuentes de datos.
Expanda el árbol de fuentes de datos MySQL. Seleccione los siguientes objetos y servicios del modelo de datos del esquema teleca:
Objetos del modelo de datos:
Servicios:
Toque Agregar seleccionado para agregar objetos y servicios del modelo de datos seleccionado al modelo de datos de formulario.
Los objetos de listas, llamadas y modelos de datos de cliente se muestran en el panel derecho de la pestaña Model. Los servicios get y update se muestran en la pestaña Services.
Una propiedad calculada es aquella cuyo valor se calcula en función de una regla o una expresión. Con una regla, puede establecer el valor de una propiedad calculada en una cadena literal, un número, el resultado de una expresión matemática o el valor de otra propiedad en el modelo de datos del formulario.
En función del caso de uso, cree la propiedad usagecharges secundaria calculada en el objeto del modelo de datos bill utilizando la siguiente expresión matemática:
tarifas de uso = gastos de llamada + gastos de llamada de conferencia + gastos de SMS + gastos de internet móvil + itinerancia nacional + itinerancia internacional + VAS (todas estas propiedades existen en el objeto del modelo de datos de facturas)
Para obtener más información sobre la propiedad usagecharges secundaria calculada, consulte Plan the Interactive Communication.
Ejecute los siguientes pasos para crear propiedades secundarias calculadas para el objeto del modelo de datos de listas:
Seleccione la casilla de verificación situada en la parte superior del objeto del modelo de datos bill para seleccionarlo y pulse Crear propiedad secundaria.
En el panel Crear propiedad secundaria:
Toque Editar regla para abrir el Editor de reglas.
Toque Crear. Se abre la ventana de regla Set Value.
En la lista desplegable Seleccionar opción , seleccione Expresión matemática.
En la expresión matemática, seleccione callcharge y conficallcharge como primer y segundo objeto, respectivamente. Seleccione plus como operador. Pulse dentro de la expresión matemática y pulse Extend Expression para agregar smscharge, internetfees, itineringnational, roamingintnl y <a11 1/> objetos de la expresión.
La siguiente imagen representa la expresión matemática en el editor de reglas:
Puntee Listo. La regla se crea en el Editor de reglas.
Toque Cerrar para cerrar la ventana del Editor de reglas.
Una vez definidos los objetos del modelo de datos, puede crear asociaciones entre ellos. La asociación puede ser de uno a uno o de uno a varios. Por ejemplo, puede haber varios dependientes asociados a un empleado. Se denomina asociación "uno a varios" y se representa mediante 1:n en la línea que conecta los objetos del modelo de datos asociados. Sin embargo, si una asociación devuelve un nombre de empleado único para un ID de empleado determinado, se denomina asociación uno a uno.
Cuando se agregan objetos del modelo de datos asociados en un origen de datos a un modelo de datos de formulario, sus asociaciones se retienen y se muestran como conectadas mediante líneas de flecha.
En función del caso de uso, cree las siguientes asociaciones entre los objetos del modelo de datos:
Asociación | Objetos del modelo de datos |
---|---|
1:n | cliente:llamadas (se pueden asociar varias llamadas a un cliente en una factura mensual) |
1:1 | cliente:facturas (una factura está asociada a un cliente para un mes en particular) |
Siga estos pasos para crear asociaciones entre objetos del modelo de datos:
Seleccione la casilla de verificación situada en la parte superior del objeto del modelo de datos customer para seleccionarlo y pulse Agregar asociación. Se abre el panel de propiedades Agregar asociación.
En el panel Agregar asociación:
En el cuadro de diálogo Agregar argumento:
Seleccione mobilenum en la lista desplegable Name. La propiedad mobile number es una propiedad común que está disponible en el cliente y llama a los objetos del modelo de datos. Como resultado, se utiliza para crear una asociación entre el cliente y los objetos del modelo de datos de llamadas.
Para cada número móvil disponible en el objeto del modelo de datos del cliente, hay varios registros de llamada disponibles en la tabla de llamadas.
Especifique un título y una descripción opcionales para el argumento.
Seleccione customer en la lista desplegable Enlace a.
Seleccione mobilenum en la lista desplegable Valor de enlace.
Toque Agregar.
La propiedad mobilenum se muestra en la sección Argumentos.
Toque Listo para crear una asociación 1:n entre los objetos del modelo de datos del cliente y las llamadas.
Una vez que haya creado una asociación entre los objetos del modelo de datos de cliente y de llamadas, cree una asociación 1:1 entre los objetos del modelo de datos del cliente y de la factura.
Seleccione la casilla de verificación situada en la parte superior del objeto del modelo de datos customer para seleccionarlo y pulse Agregar asociación. Se abre el panel de propiedades Agregar asociación.
En el panel Agregar asociación:
Especifique un título para la asociación. Es un campo opcional.
Seleccione One to One en la lista desplegable Type.
Seleccione bill en la lista desplegable Model Object.
Seleccione get en la lista desplegable Service. La propiedad billplan, que es la clave principal de la tabla de facturas, ya está disponible en la sección Argumentos.
Los objetos de los modelos de facturas y datos del cliente se vinculan mediante las propiedades plan de facturación (facturas) y plan del cliente (cliente), respectivamente. Cree un enlace entre estas propiedades para recuperar los detalles del plan para cualquier cliente disponible en la base de datos MySQL.
Seleccione customer en la lista desplegable Enlace a.
Seleccione customerplan en la lista desplegable Valor de enlace.
Toque Listo para crear un enlace entre las propiedades del plan de facturación y del plan del cliente.
La siguiente imagen muestra las asociaciones entre los objetos del modelo de datos y las propiedades utilizadas para crear asociaciones entre ellos:
Después de crear asociaciones entre el cliente y otros objetos del modelo de datos, edite las propiedades del cliente para definir la propiedad en función de la cual se recuperan los datos del objeto del modelo de datos. En función del caso de uso, el número móvil se utiliza como propiedad para recuperar datos del objeto del modelo de datos del cliente.
Seleccione la casilla de verificación situada en la parte superior del objeto del modelo de datos customer para seleccionarlo y pulse Editar propiedades. Se abre el panel Editar propiedades.
Especifique customer como Top Level Model object.
Seleccione get en la lista desplegable Read Service.
En la sección Argumentos:
Seleccione update en la lista desplegable Write Service.
En la sección Argumentos:
Toque Listo para guardar las propiedades.
Seleccione la casilla de verificación situada en la parte superior del objeto del modelo de datos calls para seleccionarlo y pulse Editar propiedades. Se abre el panel Editar propiedades.
Deshabilite el objeto Top Level Model para el objeto del modelo de datos calls.
Puntee Listo.
Repita los pasos 8 a 10 para configurar las propiedades del objeto del modelo de datos bill.
Vaya a la pestaña Services.
Seleccione el servicio get y pulse Editar propiedades. Se abre el panel Editar propiedades.
En el panel Editar propiedades:
Seleccione el servicio update y pulse Editar propiedades. Se abre el panel Editar propiedades.
En el panel Editar propiedades:
Puede probar el objeto y los servicios del modelo de datos para comprobar que el modelo de datos del formulario está configurado correctamente.
Haga lo siguiente para ejecutar la prueba:
Vaya a la pestaña Model, seleccione el objeto del modelo de datos customer y pulse Test Model Object.
En la ventana Test Form Data Model, seleccione Read model object en la lista desplegable Select Model/Service.
En la sección Input, especifique un valor para la propiedad mobilenum que existe en la base de datos MySQL configurada y pulse Test.
Los detalles del cliente asociados con la propiedad mobilenum especificada se recuperan y se muestran en la sección Salida como se muestra a continuación. Cierre el cuadro de diálogo.
Vaya a la pestaña Services.
Seleccione el servicio get y pulse Test Service.
En la sección Input, especifique un valor para la propiedad mobilenum que existe en la base de datos MySQL configurada y pulse Test.
Los detalles del cliente asociados con la propiedad mobilenum especificada se recuperan y se muestran en la sección Salida como se muestra a continuación. Cierre el cuadro de diálogo.
El editor del modelo de datos de formulario permite generar datos de ejemplo para todas las propiedades de objetos del modelo de datos, incluidas las propiedades calculadas, en un modelo de datos de formulario. Es un conjunto de valores aleatorios que cumplen con el tipo de datos configurado para cada propiedad. También puede editar y guardar datos, que se conservan incluso si se regeneran los datos de ejemplo.
Para generar, editar y guardar datos de ejemplo, haga lo siguiente:
En la página del modelo de datos de formulario, pulse Editar datos de ejemplo. Genera y muestra los datos de ejemplo en la ventana Editar datos de ejemplo .
En la ventana Editar datos de ejemplo , edite los datos según sea necesario y pulse Guardar. Cierre la ventana.