Las capacidades de ensamblaje dinámico del servicio Assembler permiten unir archivos XDP y colocar fragmentos en los puntos de inserción de los archivos XDP. Si los diseñadores de formularios utilizan el comportamiento predeterminado de LiveCycle Designer ES2 para hacer referencia relativa a fragmentos e imágenes, otros servicios de LiveCycle ES2 a veces tienen problemas para ensamblar y renderizar el formulario. En particular, estos problemas pueden ocurrir:
- Incapacidad para resolver referencias relativas de imágenes que aparecen dentro de los fragmentos
- Falta de resolución de formularios XDP y fragmentos que utilizan referencias relativas a fragmentos
Estas limitaciones se resolverán en un futuro paquete de servicios.
Uso de fragmentos e imágenes para crear formularios
LiveCycle ES2 Designer y el servicio Assembler le permiten crear plantillas de formularios XML que incluyen fragmentos. Un fragmento es una parte de un formulario que se utiliza en otros formularios. El uso de fragmentos simplifica y acelera la creación y el mantenimiento de un gran número de formularios.
- Designer permite a los diseñadores de formularios crear formas que incluyen fragmentos.
- A partir de LiveCycle ES2 (9.0), el servicio Assembler admite en el XDP ensamblaje dinámico, los documentos DDX especifican la inserción de fragmentos en un formulario. (El ensamblaje dinámico XDP también puede ensamblar varios documentos XDP en un solo documento XDP.) XDP Dynamic assembly mejora el soporte de Designer para los fragmentos de formularios; es decir, utiliza Design y XDP dynamic assembly para incluir los fragmentos de un formulario que sean compatibles.
Aquí hay una ilustración que muestra cómo se pueden utilizar los fragmentos y las imágenes en una forma básica. La forma base hace referencia a dos fragmentos. Uno de esos fragmentos hace referencia a una imagen. La forma inferior muestra la apariencia del formulario ensamblada y renderizado.
Usar Designer para crear formularios que incluyan fragmentos
Form designers pueden insertar fragmentos en un formulario seleccionando un fragmento de una biblioteca de fragmentos. En la versión XML del formulario, Designer inserta las referencias correspondientes a los fragmentos. Por defecto, estas referencias son relativas.
Los subformularios de un formulario existente se pueden extraer como un fragmento en la biblioteca de fragmentos. En este caso, el diseñador de formularios puede reemplazar el subformulario con una referencia al fragmento extraído (que es el comportamiento predeterminado) o mantener el contenido del subformulario tal como está.
Usar Designer para crear formularios que incluyan imágenes
Cuando los diseñadores de formularios añaden objetos de imagen a un formulario, pueden especificar una URL o buscar la ubicación de la imagen. En este último caso, Designer utiliza por defecto una referencia relativa para identificar la ubicación del archivo de imagen.
Problema:
Cuando el servicio Formularios o Salida muestra un formulario XDP, no puede resolver las referencias de imágenes relativas (por ejemplo, ../myImage.jpg) que aparecen en los fragmentos que se utilizan para construir el formulario. Con los formularios XDP que tienen estas imágenes sin resolver, estos servicios proporcionan el formulario XDP, pero el resultado omite las imágenes sin resolver. También proporcionan una advertencia que indica que las imágenes no se pueden resolver.
Solución:
Form designers pueden asegurarse de que el servicio Formularios o Salida pueda resolver las referencias de imagen incrustando la imagen en el formulario o cambiando la referencia de la imagen a una URL absoluta que localice correctamente la imagen. Aquí hay un ejemplo de una URL absoluta: Archivo:////myDirectory/myImage.jpg. El comportamiento predeterminado de Designer ES2 es utilizar referencias relativas para las imágenes.
Uso del servicio Assembler para crear formularios que incluyan fragmentos (XDP dynamic assembly)
Con XDP dynamic assembly, los desarrolladores crean documentos DDX que dirigen el servicio Assembler para importar fragmentos a puntos de inserción dentro de una plantilla de formulario XML. Estos documentos DDX también pueden importar fragmentos en los puntos de inserción de otro fragmento. Las expresiones DDX no pueden especificar imágenes para importar en un formulario o fragmento. En su lugar, los diseñadores de formularios crean referencias de imágenes.
Problema:
Cuando el servicio Assembler procesa un documento DDX que especifica una fuente XDP como objeto de documento (a través del mapa de entrada) o como URL de archivo, no puede resolver las referencias relativas a los fragmentos que aparecen dentro de esa fuente XDP. Además, no puede resolver referencias relativas a fragmentos que aparecen dentro de otros fragmentos que están incluidos en la fuente XDP (fragmentos anidados). Aquí hay un ejemplo de una referencia relativa ../myForm.xdp.
Por el contrario, si el documento DDX utiliza una URL de aplicación o repositorio para especificar la fuente XDP, y si el formulario XDP y los fragmentos también utilizan URL de aplicación o repositorio, el servicio Assembler puede resolver referencias relativas y absolutas a los fragmentos.
Cuando el servicio Assembler no puede resolver las referencias a los fragmentos, termina el trabajo con este error:
La operación del nombre de la operación falló en el nombre de XDP.
El ensamblador XFA Dynamic no pudo unir un fragmento.
Solución:
Hay dos formas de solucionar este problema:
- Utilice solo URLs de aplicaciones o repositorios para sus referencias DDX y XDP. Todas las referencias en el formulario DDX y XDP y sus fragmentos deben utilizar sistemáticamente URLs de aplicaciones o repositorios. Dentro de la forma y los fragmentos del XDP, estas referencias pueden ser relativas.
- Utilizar solo referencias absolutas dentro del formulario XDP y de los fragmentos. (Esta solución solo se aplica si las URL de la aplicación o del repositorio no se pueden utilizar de forma coherente.) Cuando los diseñadores de formularios añaden un fragmento a un formulario XDP (o a otro fragmento), Designer ES2 crea una referencia al fragmento. Por defecto, la referencia es una referencia relativa a una biblioteca de fragmentos. Los diseñadores de formularios pueden asegurarse de que el servicio Assembler pueda resolver las referencias de fragmentos cambiando la referencia relativa por una referencia absoluta.