Show Menu
TEMAS×

Integrar el formulario adaptable con la base de datos mediante el flujo de trabajo de AEM

El servicio Conversión automatizada de formularios le permite convertir un formulario PDF no interactivo, un formulario Acro o un formulario PDF basado en XFA en un formulario adaptable. Al iniciar el proceso de conversión, tiene la opción de generar un formulario adaptable con o sin enlaces de datos.
Si selecciona generar un formulario adaptable sin enlaces de datos, puede integrar el formulario adaptable convertido con un modelo de datos de formulario, un esquema XML o un esquema JSON después de la conversión. Para el modelo de datos de formulario, es necesario enlazar manualmente los campos de formulario adaptables con el modelo de datos de formulario. Sin embargo, si genera un formulario adaptable con enlaces de datos, el servicio de conversión asocia automáticamente los formularios adaptables con un esquema JSON y crea un enlace de datos entre los campos disponibles en el formulario adaptable y el esquema JSON. A continuación, puede integrar el formulario adaptable con una base de datos de su elección, rellenar los datos del formulario y enviarlos a la base de datos. Del mismo modo, tras una integración correcta con la base de datos, puede configurar los campos del formulario adaptable convertido para recuperar valores de la base de datos y rellenar previamente los campos del formulario adaptable.
En la siguiente figura se muestran las diferentes etapas de integración de un formulario adaptable convertido con una base de datos:
En este artículo se describen las instrucciones paso a paso para ejecutar correctamente todas estas etapas de integración.

Requisitos previos

  • Configuración de una instancia de autor de AEM 6.4 o 6.5
  • Instale el Service Pack aem-releases-updates.html más reciente para su instancia de AEM
  • Última versión del paquete del complemento AEM Forms
  • Configure una base de datos. La base de datos utilizada en la implementación de muestra es MySQL 5.6.24. Sin embargo, puede integrar el formulario adaptable convertido con cualquier base de datos que desee.

Formulario adaptable de ejemplo

Para ejecutar el caso de uso para integrar formularios adaptables convertidos con una base de datos mediante un flujo de trabajo de AEM, descargue el siguiente archivo PDF de ejemplo.
Puede descargar el formulario de contacto de ejemplo mediante:
El archivo PDF sirve como entrada al servicio Conversión automatizada de formularios. El servicio convierte este archivo en un formulario adaptable. La siguiente imagen muestra el formulario de contacto con nosotros en formato PDF.

Instale el archivo mysql-Connector-java-5.1.39-bin.jar

Realice los siguientes pasos, en todas las instancias de creación y publicación, para instalar el archivo mysql-Connector-java-5.1.39-bin.jar:
  1. Busque http://server:port/system/console/depfinder y busque el paquete com.mysql.jdbc.
  2. En la columna Exportado por, compruebe si el paquete lo exporta cualquier paquete. Proceda si el paquete no se exporta mediante ningún paquete.
  3. Vaya a http://server:port/system/console/bundles y haga clic en Install/Update .
  4. Haga clic Choose File y busque para seleccionar el archivo mysql-Connector-java-5.1.39-bin.jar. Además, seleccione Start Bundle y Refresh Packages casillas de verificación.
  5. Haga clic en Install o Update . Una vez finalizado, reinicie el servidor.
  6. (Solo Windows) Desactive el cortafuegos del sistema para su sistema operativo.

Preparar datos para el modelo de formulario

La integración de datos de AEM Forms le permite configurar y conectar orígenes de datos dispares. Después de generar un formulario adaptable mediante el proceso de conversión, puede definir el modelo de formulario basado en un modelo de datos de formulario, XSD o un esquema JSON. Puede utilizar una base de datos, Microsoft Dynamics o cualquier otro servicio de terceros para crear un modelo de datos de formulario.
Este tutorial utiliza la base de datos MySQL como origen para crear un modelo de datos de formulario. Cree un esquema en la base de datos y agregue una tabla de contactos al esquema en función de los campos disponibles en el formulario adaptable.
Puede utilizar la siguiente instrucción DDL para crear la tabla de contactus en la base de datos.
CREATE TABLE `contactus` (
   `name` varchar(45) NOT NULL,
   `email` varchar(45) NOT NULL,
   `phonenumber` varchar(10) DEFAULT NULL,
   `issuedesc` varchar(1000) DEFAULT NULL,
   PRIMARY KEY (`email`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Configurar la conexión entre la instancia de AEM y la base de datos

Realice los siguientes pasos de configuración para crear una conexión entre la instancia de AEM y la base de datos MYSQL:
  1. Vaya a la página de configuración de la consola web de AEM en http://server:port/system/console/configMgr .
  2. Busque y haga clic para abrir Apache Sling Connection Pooled DataSource en modo de edición en la Configuración de la consola web. Especifique los valores de las propiedades como se describe en la tabla siguiente:
    Propiedad Value
    Nombre del origen de datos
    Un nombre de fuente de datos para filtrar controladores del grupo de fuentes de datos.
    Clase de controlador JDBC
    com.mysql.jdbc.Driver
    URI de conexión JDBC
    jdbc:mysql://[host]:[puerto]/[nombre_esquema]
    Nombre de usuario
    Un nombre de usuario para autenticar y realizar acciones en tablas de base de datos
    Contraseña
    Contraseña asociada al nombre de usuario
    Aislamiento de transacciones
    READ_COMMITTED
    Máximo de conexiones activas
    1000
    Máximo de conexiones inactivas
    100
    Conexiones mínimas inactivas
    10
    Tamaño inicial
    10
    Espera máxima
    100 000
    Prueba a la vista previa
    Activados
    Probar mientras está inactivo
    Activados
    Consulta de validación
    Los valores de ejemplo son SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server) (validationQuery)
    Tiempo de espera de consulta de validación
    10 000

Create form data model

Una vez que haya configurado MYSQL como el origen de datos, ejecute los siguientes pasos para crear un modelo de datos de formulario:
  1. En la instancia de creación de AEM, vaya a Forms > Data Integrations .
  2. Tocar Create > Form Data Model .
  3. En el Create Form Data Model asistente, especifique workflow_submit como nombre para el modelo de datos de formulario. Tocar Next .
  4. Seleccione el origen de datos MYSQL que ha configurado en la sección anterior y toque Create .
  5. Toque Edit y expanda el origen de datos que aparece en el panel izquierdo para seleccionar la tabla de contacto , get y los servicios insert , y toque Add Selected .
  6. Seleccione el objeto del modelo de datos en el panel derecho y toque Edit Properties . Seleccione get y insert en las listas Read Service y Write Service desplegables. Especifique los argumentos del servicio de lectura y toque Done .
  7. En la Services ficha, seleccione el get servicio y toque Edit Properties . Seleccione el Output Model Object , desactive el Return array alternador y toque Done .
  8. Seleccione el Insert servicio y toque Edit Properties . Seleccione el Input Model Object y toque Done .
  9. Toque Save para guardar el modelo de datos de formulario.
Puede descargar el modelo de datos de formulario de ejemplo mediante:

Generar formularios adaptables con enlace JSON

Utilice el servicio Conversión de formularios automatizados para convertir el formulario Formulario adaptable de ejemplo Contactar con nosotros en un formulario adaptable con enlace de datos. Asegúrese de no seleccionar la Generate adaptive form(s) without data bindings casilla de verificación al generar el formulario adaptable.
Seleccione el formulario de contacto convertido disponible en la output carpeta de Forms & Documents y toque Edit . Toque Preview , introduzca valores en los campos del formulario adaptable y toque Submit .
Inicie sesión en crx-repository y navegue hasta /content/forms/fp/admin/submit/data para ver los valores enviados en formato JSON. A continuación se muestran los datos de ejemplo en formato JSON al enviar el formulario adaptable Contact Us convertido:
{
  "afData": {
    "afUnboundData": {
      "data": {}
    },
    "afBoundData": {
      "data": {
        "name1": "Gloria",
        "email": "abc@xyz.com",
        "phone_number": "2346578965",
        "issue_description": "Test message"
      }
    },
    "afSubmissionInfo": {
      "computedMetaInfo": {},
      "stateOverrides": {},
      "signers": {},
      "afPath": "/content/dam/formsanddocuments/docs_conversion/output/sample_form_json",
      "afSubmissionTime": "20191204014007"
    }
  }
}

Ahora debe crear un modelo de flujo de trabajo que pueda procesar estos datos y enviarlos a la base de datos de MYSQL utilizando el modelo de datos de formulario que ha creado en las secciones anteriores.

Crear un modelo de flujo de trabajo para procesar datos JSON

Siga los pasos siguientes para crear un modelo de flujo de trabajo y enviar los datos de formulario adaptables a la base de datos:
  1. Abra la consola Modelos de flujo de trabajo. La dirección URL predeterminada es https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models .
  2. Seleccione Create y luego Create Model . Aparecerá el Add Workflow Model cuadro de diálogo.
  3. Introduzca el valor Title y Name (opcional). Por ejemplo, workflow_json_submit . Toque Done para crear el modelo.
  4. Seleccione el modelo de flujo de trabajo y toque Edit para abrirlo en modo de edición. Toque + y agregue Invoke Form Data Model Service paso al modelo de flujo de trabajo.
  5. Toque el Invoke Form Data Model Service paso y toque .
  6. En la Form Data Model ficha, seleccione el modelo de datos de formulario que ha creado en el Form Data Model path campo y seleccione insert en la lista Service desplegable.
  7. En la Input for Service ficha, seleccione Provide input data using literal, variable, or a workflow metadata, and a JSON file en la lista desplegable, seleccione Map input fields from input JSON , seleccione Relative to payload y proporcione data.xml como valor para el Select input JSON document using campo.
  8. En la Service Arguments sección , proporcione los siguientes valores para los argumentos del modelo de datos de formulario:
    Observe que los campos del modelo de datos de formulario, por ejemplo, contactus dot name, están asignados a afData.afBoundData.data.name1 , que hace referencia a los enlaces de esquema JSON para el formulario adaptable enviado.

Configuración del envío de formularios adaptables

Ejecute los siguientes pasos para enviar el formulario adaptable al modelo de flujo de trabajo que ha creado en la sección anterior:
  1. Seleccione el formulario Contacto convertido disponible en la output carpeta en Forms & Documents y toque Edit .
  2. Abra las propiedades del formulario adaptable tocando Form Container y luego .
  3. En la Submission sección, seleccione Invoke an AEM workflow en la lista Submit Action desplegable, seleccione el modelo de flujo de trabajo que creó en la sección anterior y especifique data.xml en el Data File Path campo.
  4. Toque para guardar las propiedades.
  5. Toque Preview , introduzca valores en los campos del formulario adaptable y toque Submit . Los valores enviados ahora se muestran en la tabla de la base de datos MYSQL en lugar de crx-repository .

Configuración de formularios adaptables para rellenar previamente los valores de la base de datos

Ejecute los siguientes pasos para configurar el formulario adaptable para rellenar previamente los valores de la base de datos MYSQL en función de la clave principal definida en la tabla (correo electrónico en este caso):
  1. Puntee en el campo Correo electrónico del formulario adaptable y en .
  2. Toque Create y seleccione is changed en la lista Select State desplegable de la When sección.
  3. En la Then sección , seleccione Invoke Service y obtenga como servicio para el modelo de datos de formulario que ha creado en una sección anterior de este artículo.
  4. Seleccione Correo electrónico en la Input sección y los tres campos restantes del modelo de datos de formulario, Nombre , Número de teléfono y Descripción de problema en la Output sección . Toque Done para guardar la configuración.
    Como resultado, según las entradas de correo electrónico existentes en la base de datos de MYSQL, puede rellenar previamente los valores de los tres campos restantes en el Preview modo del formulario adaptable. Por ejemplo, si especifica aya.tan@xyz.com en el campo Correo electrónico (en función de los datos existentes en la sección Preparar modelo de datos de formulario de este artículo) y salir del campo, los tres campos restantes, Nombre , Número de teléfono y Descripción de número, se mostrarán automáticamente en el formulario adaptable.
Puede descargar el formulario adaptable convertido de ejemplo mediante: