A menudo se requiere que los clientes envíen varios formularios para solicitar un servicio o beneficio. Requiere encontrar todas las formas pertinentes; y rellénelas, envíelas y realice un seguimiento por separado. Además, es necesario que rellenen los detalles comunes varias veces en los formularios. Todo el proceso resulta engorroso y propenso a errores si implica un gran número de formularios. La función de conjuntos de formularios de AEM Forms puede ayudar a simplificar la experiencia del usuario en estos casos.
Un conjunto de formularios es una colección de formularios HTML5 agrupados y presentados como un único conjunto de formularios para los usuarios finales. Cuando los usuarios finales empiezan a rellenar un conjunto de formularios, se realizan transiciones sin problemas de un formulario a otro. Al final, pueden enviar todos los formularios con un solo clic.
AEM Forms proporciona a los autores de formularios una interfaz de usuario intuitiva para crear, configurar y administrar conjuntos de formularios. Como autor, puede ordenar los formularios en una secuencia concreta que desee que sigan los usuarios finales. Además, se pueden aplicar condiciones o expresiones de idoneidad en formularios individuales para controlar su visibilidad en función de las entradas del usuario. Por ejemplo, puede configurar el formulario de detalles del cónyuge para que aparezca únicamente cuando el estado civil especifique como Casado.
Además, puede configurar campos comunes en distintos formularios para compartir enlaces de datos comunes. Con los enlaces de datos adecuados en su lugar, los usuarios finales deben rellenar la información común solo una vez que se rellene automáticamente en los formularios siguientes.
Los conjuntos de formularios también se admiten en la aplicación de AEM Forms, lo que permite que el personal de campo tenga un conjunto de formularios sin conexión, visite clientes, introduzca datos y sincronice posteriormente con el servidor de AEM Forms para enviar datos de formulario a procesos empresariales.
Puede asociar varios XDP o plantillas de formulario, creados con Designer, a un conjunto de formularios. Los conjuntos de formularios se pueden utilizar para procesar de forma selectiva los XDP en función de los valores introducidos por los usuarios en los formularios iniciales y sus perfiles.
Utilice la interfaz de usuario de AEM Forms para administrar todos los formularios, conjuntos de formularios y recursos relacionados.
Para crear un conjunto de formularios, haga lo siguiente:
Seleccione Forms > Forms y documentos.
Seleccione Crear > Conjunto de formularios.
En la página Agregar propiedades , añada los siguientes detalles y haga clic en Siguiente.
La pantalla Seleccionar formularios muestra los formularios XDP o archivos XDP disponibles. Busque y seleccione los formularios que desea incluir en el conjunto de formularios y, a continuación, haga clic en Agregar al conjunto de formularios. Si es necesario, busque de nuevo los formularios que desea agregar. Después de agregar todos los formularios al conjunto de formularios, haga clic en Siguiente.
Asegúrese de que los nombres de campo de los formularios XDP no contienen el carácter de punto. De lo contrario, las secuencias de comandos que intenten resolver los campos con caracteres de punto no podrán resolverlos.
En la página Configurar formularios , puede hacer lo siguiente:
fs.valueOf(<form Identifier="">, <fieldsom expression="">) > <value>
Por ejemplo, si tiene dos formularios en el conjunto de formularios: gastos de negocios y viajes, puede agregar un fragmento de JavaScript en el campo Expresión de idoneidad para ambos formularios para comprobar los datos introducidos por el usuario para el tipo de gasto de un formulario. Si el usuario elige Gastos comerciales, el formulario Gastos comerciales se procesa para el usuario final. O si el usuario elige el gasto de viaje, se procesa un formulario diferente para el usuario final. Para obtener más información, consulte Expresión de idoneidad.
Además, el Autor también puede quitar un formulario del conjunto de formularios utilizando el icono Eliminar presente en la esquina derecha de cada fila o agregar otro conjunto de formularios utilizando el icono '+' de la barra de herramientas. Este icono "+" dirige al usuario de nuevo al paso anterior del asistente, que se utilizó para "Seleccionar formularios". Las selecciones existentes se mantienen y cualquier selección adicional realizada se debe agregar al conjunto de formularios utilizando el icono Agregar a conjunto de formularios en esa página.
La interfaz de usuario de AEM Forms administra todos los formularios que se utilizan en el conjunto de formularios.
Una vez creado un conjunto de formularios, puede realizar las siguientes acciones en ese conjunto de formularios:
Para editar un conjunto de formularios, haga lo siguiente:
Seleccione Forms > Forms y documentos.
Busque el conjunto de formularios que desea editar. Pase el ratón sobre ella y seleccione Editar ( ).
En la página Configurar formularios , puede editar lo siguiente:
También puede hacer clic en el icono Eliminar correspondiente para eliminar el formulario del conjunto de formularios.
Una vez que haya creado un conjunto de formularios utilizando la interfaz de usuario de Administración de AEM Forms, puede utilizar el conjunto de formularios en una actividad de Punto de inicio o Asignar tarea mediante Workbench.
Al diseñar un proceso, en la sección Presentación y datos de Asignar tarea/punto de inicio, seleccione usar un recurso CRX. Aparece el explorador de recursos CRX.
Seleccione el conjunto de formularios para filtrar el conjunto de formularios en AEM repositorio (CRX).
Selecciona un conjunto de formularios y hace clic en Aceptar.
Las expresiones de idoneidad de un conjunto de formularios se utilizan para definir y controlar dinámicamente los formularios que se muestran a un usuario. Por ejemplo, para mostrar un formulario concreto solo si el usuario pertenece a un grupo de edad concreto. Especifique y edite una expresión de idoneidad mediante el administrador de formularios.
Una expresión de idoneidad puede ser cualquier instrucción de JavaScript válida que devuelva un valor booleano. La última instrucción del fragmento de código JavaScript se trata como un valor booleano que determina la idoneidad del formulario en función del procesamiento en el resto (líneas anteriores) del fragmento de código JavaScript. Si el valor de la expresión es true, el formulario puede mostrarse al usuario. Estos formularios se conocen como formularios aptos.
No se ejecuta la expresión de idoneidad para el primer formulario del conjunto de formularios. El primer formulario siempre se muestra independientemente de su expresión de idoneidad.
Además de las funciones estándar de JavaScript, el conjunto de formularios también expone la API fs.valueOf que proporciona acceso al valor de un campo de un formulario en un conjunto de formularios. Utilice esta API para acceder al valor de un campo de formulario en un conjunto de formularios. La sintaxis de la API es fs.valueOf (formUid, fieldSOM), donde:
Los parámetros formUid y fieldSOM deben ser literales de cadena.
Uso válido de la API:
fs.valueOf("form1", "xfa.form.form1.subform1.field1")
Uso no válido de la API:
var formUid = "form1";
var fieldSOM = “xfa.form.form1.subform1.field1"; fs.valueOf(formUid, fieldSOM);
El conjunto de formularios es una colección de varios formularios HTML5 que tienen esquemas comunes o diferentes. El conjunto de formularios admite la cumplimentación previa de campos de formulario mediante un archivo XML. Puede asociar un archivo XML con un conjunto de formularios, de modo que al abrir un formulario en el conjunto de formularios, algunos de los campos del formulario se precalculen.
El archivo XML de relleno previo se especifica utilizando el parámetro dataRef de la dirección URL del conjunto de formularios. El parámetro dataRef especifica la ruta absoluta del archivo XML de datos que se combina con el conjunto de formularios.
Por ejemplo, tiene tres formularios (formulario1, formulario2 y formulario3), en el conjunto de formularios con la siguiente estructura:
form1
field
form1field
form2
field
form2field
form3
field
form3field
Cada formulario tiene un campo con nombre común, denominado "campo" y un campo con nombre único denominado "campo de formulario<i>".
Puede rellenar previamente este conjunto de formularios utilizando un XML con la siguiente estructura:
<?xml version="1.0" encoding="UTF-8" ?>
<formSetRootTag>
<field>common field value</field>
<form1field>value1</form1field>
<form2field>value2</form2field>
<form3field>value3</form3field>
</formSetRootTag>
La etiqueta raíz XML puede tener cualquier nombre, pero las etiquetas de elemento correspondientes a los campos deben tener el mismo nombre que el campo. La jerarquía del XML debe imitar la jerarquía del formulario, lo que significa que el XML debe tener las etiquetas correspondientes para ajustar subformularios.
El fragmento XML anterior muestra que el XML de relleno previo para el conjunto de formularios es una unión de los fragmentos XML de relleno previo de los formularios individuales. Si ciertos campos de los diferentes formularios tienen una jerarquía/esquema de datos similar entre sí, los campos se rellenan previamente con los mismos valores. En este ejemplo, los tres formularios se rellenan previamente con el mismo valor para el campo común, "field". Esta es una forma sencilla de reenviar los datos de un formulario al siguiente. Esto también se puede lograr enlazando los campos al mismo esquema o referencia de datos. Si desea separar los datos del conjunto de formularios en función del esquema de los formularios. Esto se puede lograr especificando el atributo "raíz de datos" del formulario durante la creación del conjunto de formularios (el valor predeterminado es "/", que se asigna a la etiqueta raíz del conjunto de formularios).
En el ejemplo anterior, si especifica las raíces de los datos: "/form1", "/form2" y "/form3" respectivamente para los tres formularios, debe utilizar un XML de relleno previo de la siguiente estructura:
<?xml version="1.0" encoding="UTF-8" ?>
<formSetRootTag>
<form1>
<field>field value1</field>
<form1field>value1</form1field>
</form1>
<form2>
<field>field value2</field>
<form2field>value2</form2field>
</form2>
<form3>
<field>field value3</field>
<form3field>value3</form3field>
</form3>
</formSetRootTag>
En un conjunto de formularios, el XML definió un esquema XML con la siguiente sintaxis:
<formset>
<fs_data>
<xdp:xdp xmlns:xdp="https://ns.adobe.com/xdp/">
<xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
<xfa:data>
<rootElement>
... data ....
</rootElement>
</xfa:data>
</xfa:datasets>
</xdp:xdp>
</fs_data>
<fs_draft>
... private data...
</fs_draft>
</formset>
Si hay dos formularios con orígenes de datos superpuestos, o si la jerarquía de elementos de un formulario se superpone con la jerarquía raíz de datos de otro formulario, en el xml de relleno previo, se combinan los valores de los elementos superpuestos. El XML de envío tiene una estructura similar a la del XML de relleno previo, pero el XML de envío tiene más etiquetas envolventes y algunas etiquetas de datos de contexto de conjunto de formularios anexadas al final.
Reglas de sintaxis para crear un archivo XML de relleno previo:
parent elements:
null
cardinality: [0,1]
submitXML: P
prefillXML: O
children: fs_data
El elemento raíz del conjunto de formularios XML. Se recomienda no utilizar esta palabra como nombre de rootSubform de ningún formulario del conjunto de formularios.
parent elements:
formset
cardinalidad: [1]
submitXML: P
prefillXML: O
children: xdp:xdp/rootElement
El subárbol indica los datos de los formularios del conjunto de formularios. El elemento es opcional en el XML de relleno previo solo si el elemento del conjunto de formularios no está presente
parent elements: fs_data/null
cardinality: [0,1]
submitXML: O
prefillXML: O
children: xfa:datasets
Esta etiqueta indica el inicio de HTML5 Form XML. Se añade en el XML de envío si está presente en el XML de relleno previo o si no hay ningún XML de relleno previo. Esta etiqueta se puede eliminar del XML de relleno previo.
parent elements: xdp:xdp
cardinality: [1]
submitXML: O
prefillXML: O
children: xfa:data
parent elements: xfa:datasets
cardinality: [1]
submitXML: O
prefillXML: O
children: rootElement
parent elements: xfa:datasets/fs_data/null
cardinality: [0,1]
submitXML: P
prefillXML: O
children: controlled by the Forms in Form set
El nombre rootElement es solo un marcador de posición. El nombre real se selecciona de los formularios utilizados en el conjunto de formularios. El subárbol que comienza con rootElement contiene los datos de los campos y subformularios dentro de Forms en el conjunto de formularios. Existen múltiples factores que determinan la estructura de rootElement y sus elementos secundarios.
En el XML de relleno previo, esta etiqueta es opcional, pero si falta, se ignora todo el XML.
NOMBRE DE LA ETIQUETA ELEMENTO RAÍZ
Si hay un elemento raíz en el XML de relleno previo, el nombre de ese elemento también se toma en el XML de envío. En los casos en los que no hay un xml de prerelleno, el nombre del rootElement es el nombre del subformulario raíz del primer formulario del conjunto de formularios que tiene una propiedad dataRoot establecida en "/". Si no hay tal formulario, el nombre de rootElement es fs_voleameroot, que es una palabra clave reservada.
La aplicación de AEM Forms permite a los trabajadores de campo sincronizar sus dispositivos móviles con un servidor de AEM Forms y trabajar en sus tareas. La aplicación funciona incluso cuando el dispositivo está sin conexión al guardar datos localmente en el dispositivo. Mediante funciones de anotación, como fotografías, los trabajadores de campo pueden proporcionar información precisa para integrarla en los procesos empresariales.
Para obtener más información sobre la aplicación de AEM Forms, consulte Aplicación de AEM Forms.
Los siguientes patrones de datos no son totalmente compatibles con el conjunto de formularios:
Patrón no totalmente compatible con el conjunto de formularios | Ejemplo |
El tamaño de la entrada y el tamaño del patrón no coinciden | When pattern= num{z,zzz} Y input= 12.345 o 1,23 |
Patrones de cláusula de imagen con corchetes "(" """) | num{(zz,zzz)} |
Varios patrones de datos | num{zz,zzz} | num{z,zzz,zzz} |
Patrones abreviados | num.integer{}, num.decimal{}, num.percent{}, o num.currency{} |