Definieren von Suchvorgängen

Freigegeben: HTML-Seite

Mit dem Feature Suche können Sie die im Repository gespeicherten Elemente finden, vorausgesetzt, Sie verfügen über die entsprechenden Berechtigungen. Aufgrund ihres Aufgabenbereichs suchen Anwender häufig nach denselben Elementen, die sie mithilfe von ausgewählten Eigenschaften und Kategorien schnell finden. Sie können den Suchvorgang vereinfachen, indem Sie den Anwendern die Möglichkeit bieten, einen bereits definierten Suchvorgang zu verwenden. Im Suchvorgang haben Sie bereits die Werte definiert, die ihre Anwender andernfalls immer wieder eingeben müssen.

Um einen definierten Suchvorgang bereitzustellen, übergeben Sie die Parameter der URL.

Sie haben zwei Möglichkeiten, den Suchvorgang aufzurufen:

  • Sie rufen den Suchvorgang ohne Angabe eines speziellen Repositorys auf. In diesem Fall wird das zuletzt ausgewählte Repository für den Suchvorgang verwendet, der Anwender kann jedoch das Repository jederzeit wechseln.

  • Sie rufen den Suchvorgang speziell für ein Repository auf, sodass der Anwender das Repository nicht mehr wechseln kann.

Suchen, ohne ein Repository anzugeben

Wenn Sie den Suchvorgang ohne Angabe eines Repositorys definieren möchten, müssen Sie wie folgt vorgehen:

Wenn Sie die URL /dms aufrufen, wird Ihnen mit folgender HTTP-Antwort die URL für den Suchvorgang inklusive verfügbarer Parameter mitgeteilt:

Request

GET /dms
Accept: application/hal+json

Das JSON-Objekt zu der Rootressource enthält die Linkrelation search mit Platzhaltern für die Werte, mit deren Hilfe die Suche nach DMS-Objekten durchgeführt wird.

Response

{
        _links: {
                search: {
                        href: "/dms/s/{?objectdefinitionids,fulltext,properties,showresultlist,repositoryid}"
                        templated: true
                }
        }
}

Suchen in einem definierten Repository

Wenn Sie einen Suchvorgang speziell für ein Repository definieren möchten, müssen Sie zunächst die URL zu einem Repository ermitteln. Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die URL zu einem Repository ermitteln.

Wenn Sie die URL zu einem Repository ermittelt haben (beispielsweise: /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27) und die URL per HTTP GET aufrufen, dann erhalten Sie folgendes Ergebnis, das die repositoryspezifische URL für den Suchvorgang enthält:

Request

GET /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27
Accept: application/hal+json

Das JSON-Objekt zu einem Repository enthält die Linkrelation search mit Platzhaltern für die Werte, mit dessen Hilfe die Suche nach DMS-Objekten durchgeführt wird.

Response

{
        _links: {
                search: {
                        href: "/dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27/s/{?objectdefinitionids,fulltext,properties,showresultlist}"
                        templated: true
                }
        },
        id: "dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27"
}

Angeben von verhaltenssteuernden Parametern

Das Verhalten beim Suchen und Anzeigen steuern Sie mit den folgenden Parametern:

Parameter

Beschreibung

showresultlist

Legt fest, wenn Werte für einen Suchvorgang vorhanden sind, ob der Suchvorgang direkt ausgeführt wird und die Ergebnisse der Suchanfrage angezeigt werden (Standardwert: false).

repositoryid

Definiert die Repository-ID.

Die Beschreibungen zu den Parametern objectdefinitionids, fulltext und properties finden Sie im Kapitel Definieren der Parameter für einen Suchvorgang und eine Ergebnisliste.

Anmerkung

Sie können zu einem Parameter auch mehrere Werte definieren, sofern für die zugehörige Eigenschaft Facetten angezeigt werden. Falls keine Facetten für die Eigenschaft zum Anzeigen definiert wurden, wird immer der letzte Wert für den Suchvorgang übernommen.

Aufrufen der URL für den Suchvorgang

Wenn Sie eine URL für den Suchvorgang erzeugt haben, dann können Sie die Ergebnisse mit den entsprechenden Anforderungen aufrufen.

Anforderung ohne Repository-ID:

Request

GET /dms/s/?objectdefinitionids=["RECH"]&fulltext=Mustermann&properties={"227":["KND001"]}&repoid=dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27
Accept: text/html

Anforderung mit Repository-ID:

Request

GET /dms/r/dee1f3d3-eae8-5d9d-84d8-2d758c5ddc27/s/?objectdefinitionids=["RECH"]&fulltext=Mustermann&properties={"227":["KND001"]}
Accept: text/html

Als Ergebnis wird dann der Suchvorgang im Feature Suche mit den übergebenen Parametern geladen.

Anmerkung

Sie müssen die Parameter der URL encodieren (z.B. Leerzeichen in %20). Die Länge des encodierten Abfrageparameters darf 2000 Zeichen nicht überschreiten.

Anwendungsbeispiele für verschiedene Suchanfragen (nicht encodiert):

  • Suchen in einer Kategorie: Ergänzen Sie die URL um den Teil objectdefinitionids=["<ID der Kategorie>"].

https://<Basisadresse>/dms/r/<RepositoryID>/s/?fulltext=5353&objectdefinitionids=["RECH"]

  • Suchen in mehreren Kategorien: Ergänzen Sie die URL um den Teil objectdefinitionids=["<ID der Kategorie>","<ID der Kategorie>"].

https://<Basisadresse>/dms/r/<RepositoryID>/s/?fulltext=5353&objectdefinitionids=["RECH","AUFT"]

  • Suchen nach PDF-Dokumenten mit Einschränkungen auf den Dateityp: Ergänzen Sie die URL um den Teil properties={"property_filetype":["<Dateierweiterung>"]}.

https://<Basisadresse>/dms/r/<RepositoryID>/s/?fulltext=test&properties={"property_filetype":["pdf"]}

  • Suchen nach einer alphanumerischen Eigenschaft: Ergänzen Sie den properties-Parameter in der URL um properties={"227":["KND001"]} (nicht encodiert), um das Eigenschaftsfeld mit der RID 227 (Kundennummer) und dem Wert "KND001" als Kundennummer zu suchen.

https://<Basisadresse>/dms/r/<RepositoryID>/s/?objectdefinitionids=["RECH"]&fulltext=&properties={"227":["KND001"]}

  • Suchen nach mehreren Eigenschaften: Ergänzen Sie den properties-Parameter in der URL um properties={"227":["KND001"],"231":["|-100"]} (nicht encodiert), um das Eigenschaftsfeld mit der RID 227 (Kundennummer) mit dem Wert "KND001" und das Eigenschaftsfeld mit der RID 231 (Rechnungsbetrag) mit dem Wert kleiner oder gleich 100 zu suchen.

https://<Basisadresse>/dms/r/<RepositoryID>/s/?objectdefinitionids=["RECH"]&fulltext=&properties={"227":["KND001"],"231":["|-100"]}