Listar formulários em uma página da Web usando APIs

O AEM Forms fornece uma API de pesquisa baseada em REST que os desenvolvedores da Web podem usar para consultar e recuperar um conjunto de formulários que atenda aos critérios de pesquisa. Você pode usar APIs para pesquisar formulários com base em vários filtros. O objeto response contém atributos de formulário, propriedades e pontos finais de formulários.

Para pesquisar formulários usando a REST API, envie uma solicitação do GET para o servidor em https://'[server]:[port]'/libs/fd/fm/content/manage.json com parâmetros de consulta descritos abaixo.

Parâmetros de consulta

Nome do atributo
Descrição
func

Especifica a função a ser chamada. Para pesquisar formulários, defina o valor da variável func para searchForms.

Por exemplo, URLParameterBuilder entityBuilder=new URLParameterBuilder (); entityBuilder.add("func", "searchForms");

Observação: Esse parâmetro é obrigatório.

appPath

Especifica o caminho do aplicativo para procurar formulários. Por padrão, o atributo appPath pesquisa todos os aplicativos disponíveis no nível do nó raiz.

Você pode especificar vários caminhos de aplicativo em uma única consulta de pesquisa. Separe vários caminhos com um caractere de barra vertical (|).

cutPoints

Especifica as propriedades a serem buscadas com os ativos. Você pode usar um asterisco (*) para buscar todas as propriedades de uma só vez. Use o operador pipe (|) para especificar várias propriedades.

Por exemplo, cutPoints=propertyName1|propertyName2|propertyName3

Nota:

  • Propriedades como id, caminho e nome são sempre buscadas.
  • Cada ativo tem um conjunto diferente de propriedades. Propriedades como formUrl, pdfUrl e guideUrl não dependem do atributo cutpoints. Essas propriedades dependem do tipo de ativo e são buscadas de acordo.
relation
Especifica os ativos relacionados a serem buscados junto com os resultados da pesquisa. Você pode escolher uma das seguintes opções para buscar ativos relacionados:
  • NO_RELATION: Não buscar ativos relacionados.
  • IMEDIATO: Busca ativos que estão diretamente relacionados aos resultados da pesquisa.
  • TODAS: Buscar ativos direta e indiretamente relacionados.
maxSize Especifica o número máximo de formulários a serem buscados.
offset Especifica o número de formulários a serem ignorados desde o início.
returnCount Especifica se os resultados da pesquisa devem ou não ser retornados de acordo com os critérios especificados.
demonstrativos

Especifica a lista de instruções. As consultas são executadas na lista das instruções especificadas no formato JSON.

Por exemplo,

JSONArray statementArray=new JSONArray(); JSONObject statement=new JSONObject(); statement.put("name", "title"); statement.put("value", "SimpleSurveyAF"); statement.put("operator", "EQ"); statementArray.put(statement);

No exemplo acima,

  • name: especifica o nome da propriedade a ser pesquisada.
  • value: especifica o valor da propriedade a ser pesquisada.
  • operador: especifica o operador a ser aplicado durante a pesquisa. Os seguintes operadores são compatíveis:
    • EQ - Igual a
    • NEQ - Não é igual a
    • GT - Maior que
    • LT - Menor que
    • GTEQ - Maior que ou igual a
    • LTEQ - menor que ou igual a
    • CONTAINS - A contém B se B for parte A
    • FULLTEXT - Pesquisa de texto completo
    • STARTSWITH - A começa com B se B for a parte inicial de A
    • ENDSWITH - A termina com B se B for a parte final de A
    • LIKE - Implementa o operador LIKE
    • AND - Combinar várias declarações

    Observação: Os operadores GT, LT, GTEQ e LTEQ são aplicáveis para propriedades de tipo linear como LONG, DOUBLE e DATE.

ordens

Especifica os critérios de ordem para os resultados da pesquisa. O critério é definido no formato JSON. Você pode classificar os resultados da pesquisa em mais de um campo. Os resultados são classificados na ordem em que os campos aparecem na query.

Por exemplo,

Para recuperar os resultados da consulta ordenados pela propriedade title na ordem crescente, adicione o seguinte parâmetro:

JSONArray orderingsArray=new JSONArray(); JSONObject orderings=new JSONObject(); orderings.put("name", "title"); orderings.put("criteria", "ASC"); orderingsArray.put(orderings); entityBuilder.add("orderings", orderingsArray.toString());

  • name: Especifica o nome da propriedade a ser usada para ordenar os resultados da pesquisa.
  • critérios: Especifica a ordem dos resultados. O atributo order aceita os seguintes valores:
    • ASC - Use ASC para organizar os resultados na ordem crescente.
    • DES - Use DES para organizar os resultados na ordem decrescente.
includeXdp Especifica se deve ser recuperado o conteúdo binário ou não. O includeXdp é aplicável a ativos do tipo FORM, PDFFORMe PRINTFORM.
assetType Especifica os tipos de ativos a serem recuperados de todos os ativos publicados. Use o operador pipe (|) para especificar vários tipos de ativos. Os tipos de ativos válidos são FORM, PDFFORM, PRINTFORM, RESOURCE e GUIA.

Solicitação de exemplo

func : searchForms
appPath : /content/dam/formsanddocuments/MyApplication23
cutPoints : title|description|author|status|creationDate|lastModifiedDate|activationDate|expiryDate|tags|allowedRenderFormat|formmodel
relation : NO_RELATION
includeXdp : false
maxSize : 10
offset : 0
returnCount : true
statements: [{"name":"name","value":"*Claim.xdp","operator":"CONTAINS"},
                {"name":"","value":"Expense","operator":"FULLTEXT"},
                {"name":"description","value":"ABCD*","operator":"CONTAINS"},
                {"name":"status","value":"false","operator":"EQ"},
                {"name":"lastModifiedDate","value":"01/09/2013","operator":"GTEQ"},
                {"name":"lastModifiedDate","value":"01/18/2013","operator":"LTEQ"}]
orderings:[{"name" :"lastModifiedDate":"order":"ASC"}]

Resposta de exemplo

[
{"resultCount":2},
    {"assetType":"FORM","name":"ExpenseClaim.xdp","id":"509fa2d5-e3c9-407b-b8dc-fa0ba08eb0ce",
       "path":"/content/dam/formsanddocuments/MyApplication23/1.0/ExpenseClaim.xdp",
       "title":"Expense Report","description":"ABCDEFGIJK","author":"Frank Bowman",
       "tags":[],"formUrl":"/content/dam/formsanddocuments/MyApplication23/1.0/ExpenseClaim.xdp/jcr:content",
       "pdfUrl":"/content/dam/formsanddocuments/MyApplication23/1.0/ExpenseClaim.xdp/jcr:content?type=pdf",
       "references":[],"images":[{"assetType":"resource","name":"Image.gif","id":"5477a127-8bbf-4cec-8f81-2689e5cb4a15",
       "path":"/content/dam/formsanddocuments/MyApplication23/1.0/Image.gif","resourceSize":0}],
       "status":false,"creationDate":1358429845623,"lastModifiedDate":1358429846771},
{"assetType":"FORM","name":"ExpenseClaim.xdp","id":"4312239b-b666-4d36-95bc-641b3a39ddd4",
       "path":"/content/dam/formsanddocuments/MyApplication23/ExpenseClaim.xdp",
       "title":"Expense Report","description":"ABCDefghijklm","author":"Frank Bowman",
       "tags":[],"formUrl":"/content/dam/formsanddocuments/MyApplication23/ExpenseClaim.xdp/jcr:content",
       "pdfUrl":"/content/dam/formsanddocuments/MyApplication23/ExpenseClaim.xdp/jcr:content?type=pdf",
       "references":[],"images":[{"assetType":"resource","name":"Image.gif","id":"118a2e3f-7097-4d8c-85d1-651306de284a",
       "path":"/content/dam/formsanddocuments/MyApplication23/Image.gif","resourceSize":0}],"status":false,
       "creationDate":1358429856690,"lastModifiedDate":1358430109023}
]

Artigos relacionados

Nesta página