Utilização da API para gerar o Documento de registro no AEM Forms using-api-to-generate-document-of-record-with-aem-forms

Gerar documento de registro (DOR) de forma programática

Este artigo ilustra o uso do com.adobe.aemds.guide.addon.dor.DoRService API para gerar programaticamente o Documento de Registro. Documento de Registro é uma versão PDF dos dados capturados no Formulário adaptável.

  1. Veja a seguir o trecho de código. A primeira linha obtém o serviço DOR.
  2. Defina as DoROptions.
  3. Chame o método de renderização do DoRService e passe o objeto DoROptions para o método de renderização
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 experimentar isso em seu sistema local, siga as etapas a seguir

  1. Baixe e instale os ativos do artigo usando o gerenciador de pacotes
  2. Verifique se você instalou e iniciou o pacote DevelopingWithServiceUser fornecido como parte do Artigo Criar Usuário de Serviço
  3. Logon no configMgr
  4. Procurar serviço Mapeador de usuário do Apache Sling Service
  5. Verifique a seguinte entrada DevelopingWithServiceUser.core:getformsresourceresolver=fd-service na seção Mapeamentos do Serviço
  6. Abrir o formulário
  7. Preencha o formulário e clique em "Exibir PDF"
  8. Você deve ver DOR em uma nova guia no navegador

Dicas de Solução de Problemas

O PDF não é exibido na nova guia do navegador:

  1. Verifique se você não está bloqueando os pop-ups do seu navegador
  2. Verifique se você está iniciando o servidor do AEM como administrador (pelo menos no Windows)
  3. Verifique se o pacote 'DevelopingWithServiceUser' está no estado ativo
  4. Verifique se o usuário do sistema ' fd-service' tem permissões de Leitura, Modificação e Criação no seguinte nó /content/usergenerated/content/aemformsenablement
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e