AEM Forms stellt eine REST-basierte Such-API bereit, die Web-Entwickler verwenden können, um Abfragen in Formularsätzen durchzuführen und Formularsätze abzurufen, die die Suchkriterien erfüllen. Sie können APIs zum Durchsuchen von Formularen auf Basis verschiedener Filter verwenden. Das Antwortobjekt enthält Formularattribute, -Eigenschaften und Render-Endpunkte der Formulare.

Um Formulare mit dem REST-API zu suchen, senden Sie unter https://[server]:[port]/libs/fd/fm/content/manage.json eine POST-Anfrage mit den unten beschriebenen Abfrageparametern an den Server.

Abfrageparameter

Attributname
Beschreibung
func

Gibt die Funktion zum Aufrufen an. Legen Sie zur Suche nach Formularen für den Wert des func-Attributs searchForms fest.

Beispiel:
URLParameterBuilder entityBuilder=new URLParameterBuilder ();
entityBuilder.add("func", "searchForms");

Hinweis: Dieser Parameter ist obligatorisch.

appPath

Gibt den Anwendungspfad für die Suche nach Formularen an. Standardmäßig durchsucht das appPath-Attribut alle Anwendungen, die auf der Ebene des Stammknotens verfügbar sind.

Sie können bei einer einzelnen Suchabfrage mehrere Anwendungspfade angeben. Trennen Sie mehrere Pfade mit einem senkrechten Strich (|).  

cutPoints

Gibt die Eigenschaften an, die mit den Elementen abgerufen werden sollen. Sie können Sternchen (*) verwenden, um alle Eigenschaften gleichzeitig abzurufen. Verwenden Sie den senkrechten Strich (|), um mehrere Eigenschaften anzugeben.  

Beispiel: cutPoints=propertyName1|propertyName2|propertyName3

Hinweis

  • Eigenschaften wie ID, Pfad und Name werden immer abgerufen.
  • Jedes Element verfügt über einen anderen Satz an Eigenschaften. Eigenschaften wie formUrl, pdfUrl und guideUrl hängen nicht vom cutpoints-Attribut ab. Diese Eigenschaften sind vom Elementtyp abhängig und werden entsprechend abgerufen.  
relation
Gibt die zugehörigen Elemente an, die neben den Suchergebnissen abgerufen werden. Sie können eine der folgenden Optionen auswählen, um zugehörige Elemente abzurufen:
  • NO_RELATION: Zugehörige Elemente nicht abrufen.
  • IMMEDIATE: Es werden Elemente abgerufen, die direkt mit den Suchergebnissen zusammenhängen.
  • ALL: Rufen Sie direkt und indirekt zugehörige Elemente ab.
maxSize Gibt die maximale Anzahl an Formularen zum Abrufen an.
offset Gibt die Anzahl an Formularen an, die ab dem Start übersprungen werden können.
returnCount Gibt an, ob die Suchergebnisse zurückgegeben werden, die den angegebenen Kriterien entsprechen oder nicht. 
statements

Gibt die Liste der Anweisungen an. Die Abfragen werden in der Liste der Anweisungen ausgeführt, die im JSON-Format angegeben sind. 

Beispiel,

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

Im oben genannten Beispiel gilt Folgendes: 

  • name: gibt den Namen der Eigenschaft an, nach der gesucht werden soll.
  • value: gibt den Wert der Eigenschaft an, nach der gesucht werden soll.
  • operator: gibt den Operator an, der bei der Suche angewendet werden soll. Die folgende Operatoren werden unterstützt:
    • EQ (equal to – gleich)  
    • NEQ (not equal to – ungleich)
    • GT (greater than – größer als)
    • LT (less than – kleiner als)
    • GTEQ (greater than or equal to – größer oder gleich)
    • LTEQ (less than or equal to – kleiner oder gleich)
    • CONTAINS (ENTHÄLT – A enthält B, wenn B Teil von A ist)
    • FULLTEXT (Volltextsuche)
    • STARTSWITH (BEGINNT MIT – A beginnt mit B, wenn B der Anfangsteil von A ist)
    • ENDSWITH (ENDET MIT – A endet mit B, wenn B der Endteil von A ist)
    • LIKE (WIE – der LIKE-Operator wird implementiert)
    • AND (UND – kombinieren Sie mehrere Anweisungen)

    Hinweis: Die Operatoren GT, LT, GTEQ und LTEQ gelten für Eigenschaften des linearen Typs wie LONG, DOUBLE und DATE.

orderings

Gibt die Kriterien für die Reihenfolge der Suchergebnisse an. Die Kriterien sind im JSON-Format definiert. Sie können die Suchergebnisse auf mehr als einem Feld sortieren. Die Ergebnisse werden in der Reihenfolge sortiert, in der die Felder in der Abfrage angezeigt werden.

Beispiel,

Um die Abfrageergebnisse nach Titeleigenschaft in aufsteigender Reihenfolge abzurufen, fügen Sie den folgenden Parameter hinzu:  

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: Gibt den Namen der Eigenschaft an, die zum Sortieren der Suchergebnisse verwendet werden soll.
  • criteria: Gibt die Reihenfolge der Ergebnisse an. Das Sortierattribut akzeptiert die folgenden Werte:
    • ASC – verwenden Sie ASC, um die Ergebnisse in aufsteigender Reihenfolge anzuordnen.
    • DES – verwenden Sie DES, um die Ergebnisse in absteigender Reihenfolge anzuordnen.
includeXdp Gibt an, ob der binäre Inhalt abgerufen werden soll oder nicht. Das includeXdp-Attribut gilt für Elemente vom Typ FORM, PDFFORM und PRINTFORM.
assetType Gibt die Elementtypen an, die von allen veröffentlichten Elementen abgerufen werden sollen. Verwenden Sie den senkrechten Strich (|), um mehrere Elementtypen anzugeben. Die folgenden Elementtypen sind gültig: FORM, PDFFORM, PRINTFORM, RESOURCE und GUIDE.

Musteranforderung

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

Musterantwort

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

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie