API를 사용하여 AEM Forms에서 기록 문서 생성

프로그래밍 방식으로 DOR(Document Of Record) 생성

이 문서에서는 com.adobe.aemds.guide.addon.dor.DoRService API 생성 기록 문서 프로그래밍 방식으로. 기록 문서 는 적응형 양식에 캡처된 데이터의 PDF 버전입니다.

  1. 다음은 코드 조각입니다. 첫 번째 라인은 DOR 서비스를 받습니다.
  2. DoROptions를 설정합니다.
  3. DoRService의 렌더링 메서드를 호출하고 DoROptions 개체를 렌더링 메서드에 전달합니다.
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();

로컬 시스템에서 시도하려면 다음 단계를 따르십시오

  1. 패키지 관리자를 사용하여 문서 에셋 다운로드 및 설치
  2. 의 일부로 제공된 DevelopingWithServiceUser 번들을 설치하고 시작했는지 확인하십시오. 서비스 사용자 문서 만들기
  3. configMgr에 로그인
  4. Apache Sling Service User Mapper 서비스 검색
  5. 다음 항목을 확인하십시오 DevelopingWithServiceUser.core:getformsresourceresolver=fd-service 서비스 매핑 섹션에서 다음을 수행합니다
  6. 양식 열기
  7. 양식을 작성하고 ' PDF 보기 ' 를 클릭합니다.
  8. 브라우저의 새 탭에 DOR이 표시됩니다

문제 해결 팁

PDF이 새 브라우저 탭에 표시되지 않음:

  1. 브라우저에서 팝업을 차단하지 않도록 하십시오
  2. AEM 서버를 관리자(적어도 Windows에서)로 시작하는지 확인하십시오.
  3. 'DevelopingWithServiceUser' 번들이 있는지 확인하십시오. 활성 상태
  4. 시스템 사용자 확인 ' fd-service'에는 다음 노드에 대한 읽기, 수정 및 만들기 권한이 있습니다. /content/usergenerated/content/aemformsenablement

이 페이지에서는