Show Menu
SUJETS×

Affichage d’une liste des formulaires sur une page Web à l’aide d’API

AEM Forms fournit une API de recherche basée sur REST que les développeurs Web peuvent utiliser pour interroger et récupérer un jeu de formulaires qui répond à leurs critères de recherche. Vous pouvez utiliser des API pour effectuer des recherches dans des formulaires en fonction de divers filtres. L’objet de réponse contient des attributs et propriétés de formulaire, ainsi que des points de fin de rendu.
Pour rechercher des formulaires à l’aide de l’API REST, envoyez une requête GET au serveur https://[server]:[port]/libs/fd/fm/content/manage.json avec les paramètres de requête décrits ci-dessous.

Paramètres de requête

Nom de l’attribut Description
func
Indique la fonction à appeler. Pour effectuer une recherche dans les formulaires, définissez la valeur de l’attribut func sur searchForms .
Par exemple : URLParameterBuilder entityBuilder=new URLParameterBuilder (); entityBuilder.add("func", "searchForms");
Remarque : ce paramètre est obligatoire.
appPath
Spécifie le chemin d’application pour la recherche de formulaires. Par défaut, l’attribut appPath recherche toutes les applications disponibles au niveau du nœud racine.
Vous pouvez spécifier plusieurs chemins d’application dans une seule requête de recherche. Plusieurs chemins distincts avec une barre verticale (|).
cutPoints
Indique les propriétés à récupérer avec les ressources. Vous pouvez utiliser l’astérisque (*) pour récupérer toutes les propriétés simultanément. Utilisez la barre verticale (|) pour indiquer plusieurs propriétés.
Par exemple : cutPoints=propertyName1|propertyName2|propertyName3
Remarque  :
  • Les propriétés telles que l’ID, le chemin et le nom sont toujours récupérées.
  • Chaque ressource possède un ensemble de propriétés différent. Les propriétés telles que formUrl, pdfUrl et guideUrl ne dépendent pas de l’attribut cutPoints. Ces propriétés dépendent du type de ressource et sont récupérées en conséquence.
relation Indique les ressources connexes à récupérer avec les résultats de la recherche. Vous pouvez sélectionner l’une des options suivantes pour récupérer les ressources connexes :
  • NO_RELATION  : ne pas récupérer les actifs connexes.
  • IMMEDIATE  : récupérer les ressources liées directement aux résultats de la recherche.
  • ALL  : récupérer toutes les ressources liées (directement et indirectement).
maxSize Indique le nombre maximal de formulaires à récupérer.
offset Indique le nombre de formulaires à ignorer à partir du début.
returnCount Indique si les résultats de la recherche doivent être renvoyés selon les critères donnés ou non.
statements
Indique la liste d’instructions. Les requêtes sont des exécutions sur la liste des instructions spécifiées au format JSON.
Par exemple :
JSONArray statementArray=new JSONArray(); JSONObject statement=new JSONObject(); statement.put("name", "title"); statement.put("value", "SimpleSurveyAF"); statement.put("operator", "EQ"); statementArray.put(statement);
Dans l’exemple ci-dessus,
  • name  : indique le nom de la propriété à rechercher.
  • value  : indique la valeur de la propriété à rechercher.
  • operator  : indique l’opérateur à appliquer au cours de la recherche. Les opérateurs ci-dessous sont pris en charge :
    • EQ - Est égal à
    • NEQ – Est différent de 
    • GT – Est supérieur à
    • LT – Est inférieur à
    • GTEQ – Est supérieur ou égal à
    • LTEQ – Est inférieur ou égal à
    • CONTAINS – A contient B si B fait partie de A
    • FULLTEXT – Recherche de texte intégral
    • STARTSWITH – A commence par B si B est le début de A
    • ENDSWITH – A se termine par B si B est la fin de A
    • LIKE – Implémente l’opérateur LIKE
    • AND – Combine plusieurs instructions
    Remarque : les opérateurs GT, LT, GTEQ et LTEQ s’appliquent aux propriétés de type linéaire, telles que LONG, DOUBLE et DATE.
orderings
Indique les critères d’ordre relatifs aux résultats de la recherche. Les critères sont définis au format JSON. Vous pouvez classer les résultats de la recherche selon plusieurs champs. Les résultats sont classés selon l’ordre d’apparition des champs dans la requête.
Par exemple :
Pour récupérer les résultats de la requête triés par propriété de titre dans l’ordre croissant, ajoutez le paramètre suivant :
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  : indique le nom de la propriété à utiliser pour classer les résultats de la recherche.
  • criteria  : indique l’ordre des résultats. L’attribut order accepte les valeurs suivantes :
    • ASC – Utilisez l’attribut ASC pour classer les résultats dans l’ordre croissant.
    • DES - Utilisez DES pour classer les résultats dans l'ordre décroissant.
includeXdp Indique si le contenu binaire doit être récupéré ou non. The includeXdp attribute is applicable for assets of type FORM , PDFFORM , and PRINTFORM .
assetType Spécifie les types de ressource à récupérer de toutes les ressources publiées. Utilisez la barre verticale (|) pour indiquer plusieurs types de ressource. Les types de ressource valides sont FORM, PDFFORM, PRINTFORM, RESOURCE et GUIDE.

Exemple de demande

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”}]

Exemple de réponse

[
{"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}
]