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.
- Im Folgenden finden Sie das Code-Snippet. Die erste Zeile erhält den DOR-Dienst.
- Legen Sie die DoROptions fest.
- 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:
- Herunterladen und Installieren von Artikel-Assets mithilfe des Package Managers
- Stellen Sie sicher, dass Sie das DevelopingWithServiceUser-Bundle installiert und gestartet haben, das als Teil des Artikels zum Erstellen von Dienstbenutzenden bereitgestellt wird.
- Bei configMgr anmelden
- Suchen Sie nach Apache Sling Service User Mapper Service
- Vergewissern Sie sich, dass Sie den folgenden Eintrag erhalten: DevelopingWithServiceUser.core:getformsresourceresolver=fd-service im Abschnitt „Dienstzuordnungen“
- Öffnen Sie das Formular
- Füllen Sie das Formular aus und klicken Sie auf „PDF anzeigen“.
- Sie sollten DOR auf einer neuen Registerkarte in Ihrem Browser sehen
Tipps zur Fehlerbehebung
PDF wird auf der neuen Browser-Registerkarte nicht angezeigt:
- Vergewissern Sie sich, dass Sie Popups in Ihrem Browser nicht blockieren
- Stellen Sie sicher, dass Sie den AEM-Server als Administrator starten (zumindest unter Windows)
- Stellen Sie sicher, dass sich das Bundle „DevelopingWithServiceUser“ im aktiven Zustand befindet.
- 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