Vinculación XDP con servicio de ensamblador

Este artículo le proporciona los recursos para demostrar la capacidad de unir documentos xdp mediante el servicio de ensamblador.
Se escribió el siguiente código jsp para insertar un subformulario llamado address desde el documento xdp llamado address.xdp en un punto de inserción llamado address en el documento master.xdp. El xdp resultante se guardó en la carpeta raíz de la instalación de AEM.

El servicio del ensamblador se basa en documentos DDX válidos para describir la manipulación de documentos PDF. Puede consultar la Documento de referencia DDX aquí.La página 40 tiene información sobre la vinculación de xdp.

    javax.servlet.http.Part ddxFile = request.getPart("xdpstitching.ddx");
    System.out.println("Got DDX");
    java.io.InputStream ddxIS = ddxFile.getInputStream();
    com.adobe.aemfd.docmanager.Document ddxDocument = new com.adobe.aemfd.docmanager.Document(ddxIS);
    javax.servlet.http.Part masterXdpPart = request.getPart("masterxdp.xdp");
    System.out.println("Got master xdp");
    java.io.InputStream masterXdpPartIS = masterXdpPart.getInputStream();
    com.adobe.aemfd.docmanager.Document masterXdpDocument = new com.adobe.aemfd.docmanager.Document(masterXdpPartIS);

    javax.servlet.http.Part fragmentXDPPart = request.getPart("fragment.xdp");
    System.out.println("Got fragment.xdp");
    java.io.InputStream fragmentXDPPartIS = fragmentXDPPart.getInputStream();
    com.adobe.aemfd.docmanager.Document fragmentXdpDocument = new com.adobe.aemfd.docmanager.Document(fragmentXDPPartIS);

    java.util.Map < String, Object > mapOfDocuments = new java.util.HashMap < String, Object > ();
    mapOfDocuments.put("master.xdp", masterXdpDocument);
    mapOfDocuments.put("address.xdp", fragmentXdpDocument);
    com.adobe.fd.assembler.service.AssemblerService assemblerService = sling.getService(com.adobe.fd.assembler.service.AssemblerService.class);
    if (assemblerService != null)
      System.out.println("Got assembler service");

    com.adobe.fd.assembler.client.AssemblerOptionSpec aoSpec = new com.adobe.fd.assembler.client.AssemblerOptionSpec();
    aoSpec.setFailOnError(true);

    com.adobe.fd.assembler.client.AssemblerResult assemblerResult = assemblerService.invoke(ddxDocument, mapOfDocuments, aoSpec);
    com.adobe.aemfd.docmanager.Document finalXDP = assemblerResult.getDocuments().get("stitched.xdp");
    finalXDP.copyToFile(new java.io.File("stitched.xdp"));

El archivo DDX para insertar fragmentos en otro xdp se muestra a continuación. El DDX inserta el subformulario address de address.xdp al punto de inserción llamado address en el archivo master.xdp. El documento resultante llamado stitched.xdp se guarda en el sistema de archivos.

<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="http://ns.adobe.com/DDX/1.0/">
        <XDP result="stitched.xdp">
           <XDP source="master.xdp">
            <XDPContent insertionPoint="address" source="address.xdp" fragment="address"/>
         </XDP>
        </XDP>
</DDX>

Para que esta capacidad funcione en el servidor AEM

Después de instalar el paquete tendrá que lista de permitidos las siguientes URL en el Adobe Granite CSRF Filter.

  1. Siga los pasos que se indican a continuación para realizar la lista de permitidos de las rutas mencionadas anteriormente.
  2. Iniciar sesión en configMgr
  3. Buscar el filtro de Adobe Granite CSRF
  4. Añada la siguiente ruta en las secciones excluidas y guarde /content/AemFormsSamples/assemblerservice
  5. Buscar "Filtro de referente de Sling"
  6. Marque la casilla de verificación "Permitir vacío". (Esta configuración solo debe utilizarse con fines de prueba) Existen varias formas de probar el código de muestra. Lo más rápido y sencillo es usar la aplicación Postman. Postman le permite realizar solicitudes de POST al servidor. Instale la aplicación de Postman en su sistema.
    Inicie la aplicación e introduzca la siguiente URL para probar la API de datos de exportación http://localhost:4502/content/AemFormsSamples/assemblerservice.html

Proporcione los siguientes parámetros de entrada como se especifica en la captura de pantalla. Puede utilizar los documentos de ejemplo que descargó anteriormente,
xdp-stitch-postman

NOTA

Asegúrese de que la instalación de AEM Forms se haya completado. Todos sus paquetes deben estar en estado activo.

En esta página