Verwenden der API zum Generieren des Datensatzdokuments in AEM Forms using-api-to-generate-document-of-record-with-aem-forms

Programmgesteuerte Generierung des Datensatzdokuments (DOR)

Dieser Artikel veranschaulicht die Nutzung von com.adobe.aemds.guide.addon.dor.DoRService API zur programmatischen Generierung des Dokumentensatzdokuments. Das Datensatzdokument ist eine PDF-Version der Daten, die im adaptiven Formular erfasst werden.

  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 Package Managers
  2. Stellen Sie sicher, dass Sie das DevelopingWithServiceUser-Bundle installiert und gestartet haben, das als Teil des Artikels zum Erstellen von Dienstbenutzenden bereitgestellt wird.
  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 auf der neuen Browser-Registerkarte nicht angezeigt:

  1. Vergewissern Sie sich, dass Sie Popups in Ihrem Browser nicht blockieren
  2. Stellen Sie sicher, dass Sie den AEM-Server als Administrator starten (zumindest unter Windows)
  3. Stellen Sie sicher, dass sich das Bundle „DevelopingWithServiceUser“ im aktiven Zustand befindet.
  4. Stellen Sie sicher, dass die Systembenutzerin bzw. der Systembenutzer „fd-service“ Lese-, Änderungs- und Erstellungsberechtigungen für den folgenden Knoten hat /content/usergenerated/content/aemformsenablement
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e