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:
En este artículo se describen las instrucciones paso a paso para ejecutar correctamente todas estas etapas de integración.
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:
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.
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:
http://server:port/system/console/depfinder
y busque el paquete com.mysql.jdbc.http://server:port/system/console/bundles
y haga clic en Install/Update.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.
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
Realice los siguientes pasos de configuración para crear una conexión entre AEM instancia y la base de datos MYSQL:
Vaya a AEM página de configuración de la consola web en http://server:port/system/console/configMgr
.
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 |
Una vez que haya configurado MYSQL como el origen de datos, ejecute los siguientes pasos para crear un modelo de datos de formulario:
En AEM instancia de autor, vaya a Forms > Data Integrations.
Tocar Create > Form Data Model.
En el asistente Create Form Data Model, especifique workflow_submit como nombre para el modelo de datos de formulario. Tocar Next.
Seleccione el origen de datos MYSQL que configuró en la sección anterior y toque Create.
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.
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.
En la ficha Services, seleccione el servicio get y toque Edit Properties. Seleccione Output Model Object, deshabilite el Return array alternador y toque Done.
Seleccione el servicio Insert y toque Edit Properties. Seleccione Input Model Object y toque Done.
Toque Save para guardar el modelo de datos de formulario.
Puede descargar el modelo de datos de formulario de ejemplo mediante:
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.
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.
Siga los pasos siguientes para crear un modelo de flujo de trabajo y enviar los datos de formulario adaptables a la base de datos:
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
.
Seleccione Create y luego Create Model. Aparece el cuadro de diálogo Add Workflow Model.
Introduzca Title y Name (opcional). Por ejemplo, workflow_json_submit. Toque Done para crear el modelo.
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.
Toque el paso Invoke Form Data Model Service y toque .
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.
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.
En la sección Service Arguments, 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.
Ejecute los siguientes pasos para enviar el formulario adaptable al modelo de flujo de trabajo que ha creado en la sección anterior:
Seleccione el formulario Contacto convertido disponible en la carpeta output de Forms & Documents y toque Edit.
Abra las propiedades del formulario adaptable tocando Form Container y, a continuación, tocando .
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.
Toque para guardar las propiedades.
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.
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):
Toque el campo Correo electrónico en el formulario adaptable y toque .
Toque Create y seleccione is changed en la lista desplegable Select State en la sección When.
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.
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.
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: