Costura XDP usando o serviço de montagem

Este artigo fornece os ativos para demonstrar a capacidade de compilar documentos xdp usando o serviço de montagem.
O código jsp a seguir foi gravado para inserir um subformulário chamado endereço de um documento xdp chamado endereço.xdp em um ponto de inserção chamado endereço no documento master.xdp. O xdp resultante foi salvo na pasta raiz da sua instalação do AEM.

O serviço do Assembler depende de documentos DDX válidos para descrever a manipulação de documentos do PDF. Consulte o documento de referência do DDX aqui.A página 40 tem informações sobre a compilação xdp.

    javax.servlet.http.Part ddxFile = request.getPart("xdpstitching.ddx");
    System.out.println("Got DDX");
    java.io.InputStream ddxIS = ddxFile.getInputStream();
    com.adobe.aemfd.docmanager.Document ddxDocument = new com.adobe.aemfd.docmanager.Document(ddxIS);
    javax.servlet.http.Part masterXdpPart = request.getPart("masterxdp.xdp");
    System.out.println("Got master xdp");
    java.io.InputStream masterXdpPartIS = masterXdpPart.getInputStream();
    com.adobe.aemfd.docmanager.Document masterXdpDocument = new com.adobe.aemfd.docmanager.Document(masterXdpPartIS);

    javax.servlet.http.Part fragmentXDPPart = request.getPart("fragment.xdp");
    System.out.println("Got fragment.xdp");
    java.io.InputStream fragmentXDPPartIS = fragmentXDPPart.getInputStream();
    com.adobe.aemfd.docmanager.Document fragmentXdpDocument = new com.adobe.aemfd.docmanager.Document(fragmentXDPPartIS);

    java.util.Map < String, Object > mapOfDocuments = new java.util.HashMap < String, Object > ();
    mapOfDocuments.put("master.xdp", masterXdpDocument);
    mapOfDocuments.put("address.xdp", fragmentXdpDocument);
    com.adobe.fd.assembler.service.AssemblerService assemblerService = sling.getService(com.adobe.fd.assembler.service.AssemblerService.class);
    if (assemblerService != null)
      System.out.println("Got assembler service");

    com.adobe.fd.assembler.client.AssemblerOptionSpec aoSpec = new com.adobe.fd.assembler.client.AssemblerOptionSpec();
    aoSpec.setFailOnError(true);

    com.adobe.fd.assembler.client.AssemblerResult assemblerResult = assemblerService.invoke(ddxDocument, mapOfDocuments, aoSpec);
    com.adobe.aemfd.docmanager.Document finalXDP = assemblerResult.getDocuments().get("stitched.xdp");
    finalXDP.copyToFile(new java.io.File("stitched.xdp"));

O arquivo DDX para inserir fragmentos em outro xdp está listado abaixo. O DDX insere o subformulário address de address.xdp no ponto de inserção chamado address em master.xdp. O documento resultante denominado stitched.xdp foi salvo no sistema de arquivos.

<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="http://ns.adobe.com/DDX/1.0/">
        <XDP result="stitched.xdp">
           <XDP source="master.xdp">
            <XDPContent insertionPoint="address" source="address.xdp" fragment="address"/>
         </XDP>
        </XDP>
</DDX>

Para que esse recurso funcione no AEM Server

incluir na lista de permissões Depois de instalar o pacote, você terá que copiar as seguintes URLs no Filtro CSRF do Adobe Granite.

  1. Siga as etapas mencionadas abaixo para incluir na lista de permissões os caminhos mencionados acima.
  2. Logon no configMgr
  3. Pesquisar filtro CSRF do Adobe Granite
  4. Adicione o seguinte caminho nas seções excluídas e salve /content/AemFormsSamples/assemblerservice
  5. Procure por "Sling Referrer Filter"
  6. Marque a caixa de seleção "Permitir vazio". (Essa configuração deve ser somente para fins de teste)
    Há várias maneiras de testar o código de amostra. O mais rápido e fácil é usar o aplicativo Postman. O Postman permite fazer solicitações POST no servidor. Instale o aplicativo Postman no sistema.
    Inicie o aplicativo e insira o seguinte URL para testar a API de dados de exportação
    http://localhost:4502/content/AemFormsSamples/assemblerservice.html

Forneça os seguintes parâmetros de entrada, conforme especificado na captura de tela. Você pode usar os documentos de amostra baixados anteriormente,
xdp-stitch-postman

NOTE
Verifique se a instalação do AEM Forms foi concluída. Todos os seus pacotes precisam estar no estado ativo.
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e