Integración del formulario adaptable con la base de datos mediante el flujo de trabajo de AEM submit-forms-to-database-using-forms-portal

El servicio de conversión automatizada de formularios (AFCS) le permite convertir un formulario PDF no interactivo, un formulario AcroForm 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 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 enviarlo a la base de datos. Del mismo modo, tras una integración correcta con la base de datos, se pueden configurar los campos del formulario adaptable convertido para recuperar los valores de la base de datos y rellenar automáticamente los campos.

La siguiente figura muestra las distintas etapas de integración de un formulario adaptable convertido con una base de datos:

integración de la 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 pre-requisites

  • Configuración de una instancia de autor de AEM 6.4 o 6.5
  • Instalar el Service pack más reciente para la instancia de AEM
  • Última versión del paquete de complementos de AEM Forms
  • Configuración del servicio de conversión automatizada de formularios
  • 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 de su elección.

Formulario adaptable de ejemplo sample-adaptive-form

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 como ejemplo.

Puede descargar el formulario de contacto de ejemplo utilizando lo siguiente:

Obtener archivo

El archivo PDF sirve como entrada al servicio de conversión automatizada de formularios (AFCS). El servicio convierte este archivo en un formulario adaptable. La siguiente imagen muestra el formulario de contacto en formato PDF.

ejemplo del formulario de solicitud de préstamo

Instalar el archivo mysql-connector-java-5.1.39-bin.jar. install-mysql-connector-java-file

Realice los siguientes pasos en todas las instancias de autor 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 fue exportado por algún otro paquete. Continúe si el paquete no se exporta mediante ningún otro.
  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. Seleccione también 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 de su sistema operativo.

Preparación de datos para el modelo de formulario prepare-data-for-form-model

La integración de datos de AEM Forms le permite configurar y conectarse a fuentes de datos diferentes. 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 fuente para crear un modelo de datos de formulario. Cree un esquema en la base de datos y agregue la tabla de contacto al esquema en función de los campos disponibles en el formulario adaptable.

Datos de muestra MySQL

Utilice la siguiente instrucción DDL para crear la tabla contacto 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

Configuración de la conexión entre la instancia de AEM y la base de datos configure-connection-between-aem-instance-and-database

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 tal como se describe en la siguiente tabla:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 html-authored
    Propiedad Valor
    Nombre de la fuente de datos Un nombre de fuente de datos para filtrar los controladores del grupo de fuentes de datos.
    Clase de controlador JDBC com.mysql.jdbc.Driver
    URI de conexión JDBC jdbc//[host]:[port]/[schema_name]
    Nombre de usuario Un nombre de usuario para autenticar y realizar acciones en tablas de base de datos
    Contraseña La contraseña asociada al nombre de usuario
    Aislamiento de transacciones READ_COMMITTED
    Máximo de conexiones activas 1000
    Conexiones máximas inactivas 100
    Conexiones mínimas inactivas 10
    Tamaño inicial 10
    Espera máxima 100 000
    Prueba a la vista previa Comprobado
    Prueba mientras está inactiva Comprobado
    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

Creación de un modelo de datos de formulario create-form-data-model

Una vez configurado MySQL como fuente de datos, ejecute los siguientes pasos para crear un modelo de datos de formulario:

  1. En la instancia de autor de AEM, vaya a Forms > Data Integrations.

  2. Pulse Create > Form Data Model.

  3. En el asistente Create Form Data Model, especifique workflow_submit como nombre del formulario del modelo de datos, y toque Next.

  4. Seleccione la fuente de datos MySQL que ha configurado en la sección anterior y pulse Create.

  5. Toque Edit y expanda la fuente de datos que aparece en el panel izquierdo para seleccionar la tabla contacto get y insert servicios y pulse Add Selected.

    Datos de muestra MySQL

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

  7. En la pestaña Services, seleccione el servicio get y pulse Edit Properties. Seleccione Output Model Object, desactive la alternancia Return array y pulse Done.

  8. Seleccione el servicio Insert y pulse Edit Properties. Seleccione el Input Model Object y toque Done.

  9. Pulse Save para guardar el modelo de datos de formulario.

Puede descargar el ejemplo del modelo de datos de formulario mediante lo siguiente:

Obtener archivo

Generación de formularios adaptables con enlace JSON generate-adaptive-forms-with-json-binding

Utilice el servicio de conversión automatizada de formularios (AFCS) para convertir el formulario de contacto a uno adaptable con enlace de datos. Asegúrese de no seleccionar la casilla Generate adaptive form(s) without data bindings para generar el formulario adaptable.

Formulario adaptable con enlace JSON

Seleccione el formulario de contacto que está disponible en la output carpeta Forms & Documents y pulse Edit. Pulse Preview, escriba los valores en los campos del formulario adaptable y pulse Submit.

Inicie sesión en crx-repository y vaya a /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 Contacto adaptable y 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"
    }
  }
}

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

Creación de un modelo de flujo de trabajo para procesar datos JSON create-workflow-model

Siga estos pasos 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 URL predeterminada es https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models.

  2. Seleccione Create, luego Create Model. Aparecerá el cuadro de diálogo Add Workflow Model.

  3. Introduzca Title y Name (opcional). Por ejemplo, workflow_json_submit. Seleccione Done para crear el modelo.

  4. Seleccione el modelo de flujo de trabajo y pulse Edit para abrir el modelo en modo de edición. Toque + y agregue el paso Invoke Form Data Model Service al modelo del flujo de trabajo.

  5. Seleccione el paso Invoke Form Data Model Service y seleccione Configurar .

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

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

  8. En la sección Service Arguments, agregue 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, contacto dot name, están asignados a afData.afBoundData.data.name1, que hace referencia a los enlaces del esquema JSON para el formulario adaptable que ya se ha enviado.

Configuración del envío de formularios adaptables configure-adaptive-form-submission

Ejecute los siguientes pasos para enviar el formulario adaptable al modelo de flujo de trabajo creado en la sección anterior:

  1. Seleccione el formulario de contacto que ya se ha convertido y que está disponible en la carpeta output en Forms & Documents y seleccione Edit.

  2. Abra las propiedades del formulario adaptable seleccionando Form Container y luego Configurar .

  3. En la sección Submission, seleccione Invoke an AEM workflow de la lista desplegable Submit Action. Luego 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. Pulse Guardar para guardar las propiedades.

  5. Seleccione Preview, escriba los valores en los campos del formulario adaptable y seleccione 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 los valores predeterminados de la base de datos de forma automática

Ejecute los siguientes pasos para configurar el formulario adaptable para rellenar de forma automática los valores predeterminados de la base de datos MySQL en función de la clave principal definida en la tabla (correo electrónico, en este caso):

  1. Seleccione el campo correo electrónico en el formulario adaptable y pulse Editar regla .

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

  3. En la sección Then, seleccione Invoke Service y get como el servicio para el modelo de datos de formulario que ha creado en la 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. Pulse Done para guardar la configuración.

    Configuración de los ajustes del rellenado automático del correo electrónico

    Como resultado, en función de las entradas de correo electrónico existentes en la base de datos MySQL, puede rellenar automáticamente los valores predeterminados de los tres campos restantes en el modo Preview de 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 Preparación del modelo de datos de formulario de este artículo) y en la pestaña fuera 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 ejemplo de formulario adaptable convertido utilizando lo siguiente:

Obtener archivo

recommendation-more-help
c40c2ccf-3d1b-4b47-b158-c4646051b46c