Verwenden der API zum Generieren des Datensatzdokuments in AEM Forms

Generieren des Datensatzdokuments (DOR) programmgesteuert

Dieser Artikel veranschaulicht die Verwendung der com.adobe.aemds.guide.addon.dor.DoRService API zu generieren Datensatzdokument programmgesteuert. Datensatzdokument ist eine PDF-Version der im adaptiven Formular erfassten Daten.

  1. Im Folgenden finden Sie das Code-Snippet. Die erste Zeile erhält den DOR-Dienst.
  2. Legen Sie die DoROptions fest.
  3. Rufen Sie die Render-Methode des DoRService auf und übergeben Sie das DoROptions-Objekt an die Render-Methode
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();

Gehen Sie wie folgt vor, um dies auf Ihrem lokalen System zu testen:

  1. Herunterladen und Installieren von Artikel-Assets mithilfe des Paketmanagers
  2. Stellen Sie sicher, dass Sie das DevelopingWithServiceUser-Bundle installiert und gestartet haben, das als Teil von Artikel zum Erstellen von Dienstbenutzern
  3. Bei configMgr anmelden
  4. Suchen Sie nach Apache Sling Service User Mapper Service .
  5. Vergewissern Sie sich, dass Sie den folgenden Eintrag erhalten: DevelopingWithServiceUser.core:getformsresourceresolver=fd-service im Abschnitt "Dienstzuordnungen"
  6. Öffnen Sie das Formular
  7. Füllen Sie das Formular aus und klicken Sie auf PDF anzeigen .
  8. Sie sollten DOR auf einer neuen Registerkarte in Ihrem Browser sehen

Tipps zur Fehlerbehebung

PDF wird in der neuen Browser-Registerkarte nicht angezeigt:

  1. Vergewissern Sie sich, dass Sie keine Popups in Ihrem Browser blockieren
  2. Stellen Sie sicher, dass Sie AEM Server als Administrator starten (zumindest unter Windows)
  3. Stellen Sie sicher, dass das Bundle "DevelopingWithServiceUser"in aktiver Status
  4. Stellen Sie sicher, dass der Systembenutzer "fd-service"verfügt über Lese-, Änderungs- und Erstellungsberechtigungen für den folgenden Knoten /content/usergenerated/content/aemformsenablement

Auf dieser Seite