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

El servicio de automated forms conversion permite convertir un formulario PDF no interactivo, un formulario Acro Form 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 se 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:

integración de bases 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 Service Pack más reciente para su instancia de AEM
  • Última versión del paquete del complemento AEM Forms
  • Configurar servicio de Automated forms conversion
  • 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 la base de datos mediante un flujo de trabajo AEM, descargue el siguiente archivo PDF de ejemplo.

Puede descargar el formulario de contacto de ejemplo mediante:

Obtener archivo

El archivo PDF sirve como entrada al servicio de Automated forms conversion. El servicio convierte este archivo en un formulario adaptable. La siguiente imagen muestra el formulario de contacto con nosotros en formato PDF.

formulario de solicitud de préstamo de muestra

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. Vaya a 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 en Choose File y busque para seleccionar el archivo mysql-Connector-java-5.1.39-bin.jar. Además, seleccione las casillas de verificación Start Bundle y Refresh Packages.
  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 fuentes 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 la tabla contactus al esquema en función de los campos disponibles en el formulario adaptable.

Datos de muestra mysql

Puede utilizar la siguiente instrucción DDL para crear la tabla 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 AEM instancia y la base de datos

Realice los siguientes pasos de configuración para crear una conexión entre AEM instancia y la base de datos MYSQL:

  1. Vaya a AEM página de configuración de la consola web 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

Crear modelo de datos de formulario

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 AEM instancia de autor, vaya a Forms > Data Integrations.

  2. Tocar Create > Form Data Model.

  3. En el asistente Create Form Data Model, especifique workflow_submit como nombre para el modelo de datos de formulario. Tocar Next.

  4. Seleccione el origen de datos MYSQL que configuró en la sección anterior y toque Create.

  5. Toque Edit y expanda la fuente de datos enumerada en el panel izquierdo para seleccionar servicios de contacto, get y insert y toque Add Selected.

    Datos de muestra mysql

  6. Seleccione el objeto del modelo de datos en el panel derecho y toque Edit Properties. Seleccione get y insert en las listas desplegables Read Service y Write Service. Especifique los argumentos para el servicio de lectura y toque Done.

  7. En la ficha Services, seleccione el servicio get y toque Edit Properties. Seleccione Output Model Object, deshabilite el Return array alternador y toque Done.

  8. Seleccione el servicio Insert y toque Edit Properties. Seleccione 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:

Obtener archivo

Generar formularios adaptables con enlace JSON

Utilice el servicio de Automated forms conversion para convertir el formulario de contacto en un formulario adaptable con enlace de datos. Asegúrese de no seleccionar la casilla de verificación Generate adaptive form(s) without data bindings al generar el formulario adaptable.

Formulario adaptable con enlace JSON

Seleccione el formulario Contacto convertido disponible en la carpeta output 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 a /content/forms/fp/admin/submit/data para vista de los valores enviados en formato JSON. A continuación se muestran los datos de ejemplo en formato JSON al enviar el formulario adaptable Contacto 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. Aparece el cuadro de diálogo Add Workflow Model.

  3. Introduzca 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 paso Invoke Form Data Model Service y toque Configurar.

  6. En la ficha Form Data Model, seleccione el modelo de datos de formulario que ha creado en el campo Form Data Model path y seleccione insert en la lista desplegable Service.

  7. En la ficha Input for Service, seleccione Provide input data using literal, variable, or a workflow metadata, and a JSON file en la lista desplegable, seleccione la casilla Map input fields from input JSON, seleccione Relative to payload y proporcione data.xml como valor para el campo Select input JSON document using.

  8. En la sección Service Arguments, proporcione los siguientes valores para los argumentos del modelo de datos de formulario:

    Invocar servicio de 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.

Configurar el 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 carpeta output de Forms & Documents y toque Edit.

  2. Abra las propiedades del formulario adaptable tocando Form Container y, a continuación, tocando Configurar.

  3. En la sección Submission, seleccione Invoke an AEM workflow en la lista desplegable Submit Action, seleccione el modelo de flujo de trabajo que creó en la sección anterior y especifique data.xml en el campo Data File Path.

  4. Toque Guardar 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. Toque el campo Correo electrónico en el formulario adaptable y toque Editar regla.

  2. Toque Create y seleccione is changed en la lista desplegable Select State en la sección When.

  3. En la sección Then, seleccione Invoke Service y get 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 sección Input y los tres campos restantes del modelo de datos de formulario, Nombre, Número de teléfono y Descripción del problema en la sección Output. Toque Done para guardar la configuración.

    Configuración de la configuración previa de correo electrónico

    Como resultado, según las entradas de correo electrónico existentes en la base de datos MYSQL, puede rellenar previamente los valores de los tres campos restantes en el modo Preview del formulario adaptable. Por ejemplo, si especifica aya.tan@xyz.com en el campo Correo electrónico (según 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 del problema se muestran automáticamente en el formulario adaptable.

Puede descargar el formulario adaptable convertido de ejemplo mediante:

Obtener archivo

En esta página