Usar la API para generar el documento de registro en AEM Forms using-api-to-generate-document-of-record-with-aem-forms

Generar documento de registro (DOR) mediante programación

Este artículo ilustra el uso de la variable com.adobe.aemds.guide.addon.dor.DoRService API para generar Documento de registro mediante programación. Documento de registro es una versión del PDF de los datos capturados en el formulario adaptable.

  1. A continuación se muestra el fragmento de código. La primera línea obtiene el servicio DOR.
  2. Establezca DoROptions.
  3. Invoque el método de procesamiento del DoRService y pase el objeto DoROptions al método de procesamiento
String dataXml = request.getParameter("data");
System.out.println("Got " + dataXml);
Session session;
com.adobe.aemds.guide.addon.dor.DoRService dorService = sling.getService(com.adobe.aemds.guide.addon.dor.DoRService.class);
System.out.println("Got ... DOR Service");
com.mergeandfuse.getserviceuserresolver.GetResolver aemDemoListings = sling.getService(com.mergeandfuse.getserviceuserresolver.GetResolver.class);
System.out.println("Got aem DemoListings");
resourceResolver = aemDemoListings.getFormsServiceResolver();
session = resourceResolver.adaptTo(Session.class);
resource = resourceResolver.getResource("/content/forms/af/sandbox/1201-borrower-payments");
com.adobe.aemds.guide.addon.dor.DoROptions dorOptions = new com.adobe.aemds.guide.addon.dor.DoROptions();
dorOptions.setData(dataXml);
dorOptions.setFormResource(resource);
java.util.Locale locale = new java.util.Locale("en");
dorOptions.setLocale(locale);
com.adobe.aemds.guide.addon.dor.DoRResult dorResult = dorService.render(dorOptions);
byte[] fileBytes = dorResult.getContent();
com.adobe.aemfd.docmanager.Document dorDocument = new com.adobe.aemfd.docmanager.Document(fileBytes);
resource = resourceResolver.getResource("/content/usergenerated/content/aemformsenablement");
Node paydotgov = resource.adaptTo(Node.class);
java.util.Random r = new java.util.Random();
String nodeName = Long.toString(Math.abs(r.nextLong()), 36);
Node fileNode = paydotgov.addNode(nodeName + ".pdf", "nt:file");

System.out.println("Created file Node...." + fileNode.getPath());
Node contentNode = fileNode.addNode("jcr:content", "nt:resource");
Binary binary = session.getValueFactory().createBinary(dorDocument.getInputStream());
contentNode.setProperty("jcr:data", binary);
JSONWriter writer = new JSONWriter(response.getWriter());
writer.object();
writer.key("filePath");
writer.value(fileNode.getPath());
writer.endObject();
session.save();

Para probar esto en su sistema local, siga los siguientes pasos

  1. Descargar e instalar los recursos del artículo mediante el administrador de paquetes
  2. Asegúrese de haber instalado e iniciado el paquete DevelopersWithServiceUser proporcionado como parte de Artículo Crear usuario de servicio
  3. Inicie sesión en configMgr
  4. Buscar el servicio de asignador de usuarios del servicio Apache Sling
  5. Asegúrese de introducir la siguiente entrada DesarrollarWithServiceUser.core:getformsresourceresolver=fd-service en la sección Asignaciones de servicios
  6. Abra el formulario
  7. Rellene el formulario y haga clic en "Ver PDF"
  8. Debe ver el documento de registro en la nueva pestaña del explorador

Sugerencias de resolución de problemas

El PDF no se muestra en la nueva pestaña del explorador:

  1. Asegúrese de que no está bloqueando las ventanas emergentes del explorador
  2. AEM Asegúrese de que está iniciando el servidor como administrador (al menos en Windows).
  3. Asegúrese de que el paquete "Desarrollando con usuario de servicio" esté en estado activo
  4. Asegúrese de que el usuario del sistema "fd-service" tiene permisos de lectura, modificación y creación en el siguiente nodo /content/usergenerated/content/aemformsenablement
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e