Verwenden von Erweiterungspunkten

Mit Erweiterungspunkten haben Sie die Möglichkeit, die DMSApp um Ihre eigenen Funktionen zu erweitern. An folgenden Stellen bietet die DMSApp Erweiterungspunkte:

Es gibt zwei Arten, wie Sie die Erweiterungspunkte in der DMSApp erweitern können:

  • Bereitstellen per URL

  • Über die API in der DMSApp anlegen

Vorbereiten Ihrer App

Damit Erweiterungen zu Kontextaktionen oder der Anzeige von Dokumenten von der DMSApp gefunden werden, muss Ihre App diese Schnittstelle bereitstellen. Die DMSApp nutzt zum Auffinden von Apps, die Erweiterungen bereitstellen, das Konzept einer HTTP GET-Anforderung für die Rootressource (systemBaseUri-Pfad mit dem App-Namen) der Apps. Es werden alle Apps abgefragt, die an d.ecs http gateway registriert sind. Stellen Sie sicher, dass der Administrator Ihre App nicht aktiv ausgeschlossen hat.

Bereitstellen der URL zu den Erweiterungspunkten

Die Rootressourcen dieser Apps werden zyklisch abgefragt (Request). Die Antwort (Response) einer App wird daraufhin geprüft, ob eine Linkrelation namens dmsobjectextensions enthalten ist. Diese Linkrelation gilt als Signal, dass die App Erweiterungen für die DMSApp anbietet. Die DMSApp führt ein HTTP GET auf den angegeben Link aus und erwartet von der antwortenden App ein genormtes JSON-Objekt mit dem HTTP-Statuscode 200.

Request

GET https://host/myapp/ HTTP/1.1
Accept: application/hal+json

Response

HTTP/1.1 200 OK
Content-Type: application/hal+json

{
    "_links" : {
        "dmsobjectextensions" : {
            "href" : "/myapp/dmsobjectextensions"
        }
    }
}

Anmerkung

Die Abfrage der Rootressourcen erfolgt anonym (ohne Authentifizierung) und wird als asynchroner Hintergrundprozess innerhalb der DMSApp ausgeführt.

Über die API in der DMSApp erstellen

Mit einer HTTP POST-Anforderung für die URL /dms/extensions können Sie eine Erweiterung bei der DMSApp erstellen. Wenn Sie mehrere Erweiterungen erstellen möchten, wiederholen Sie den Vorgang. Die Anforderung darf nur von einem Benutzer mit Administrationsrechten gestellt werden. Ist die Antwort der Anforderung erfolgreich, wird die Erweiterung in der DMSApp gespeichert und Sie erhalten eine Location-URL im Header der Antwort. Der Aufbau des genormten JSON-Objektes ist in den folgenden Seiten beschrieben.

Request

POST /dms/extensions
Origin: https://baseuri
Content-Type: application/json
Content-Length: 619

{
    "id": "myapp.openExternalApp",
    "activationConditions": [{
            "propertyId": "repository.id",
            "operator": "or",
            "values": ["e632f767-5cfa-538d-ab55-6756c36a74c9"]
        }
    ],
    "captions": [{
            "culture": "de",
            "caption": "Externe Applikation öffnen"
        }, {
            "culture": "en",
            "caption": "Open external application"
        }
    ],
    "context": "DmsObjectDetailsContextAction",
    "uriTemplate": "/myapp/dosomething?id={dmsobject.property_document_id}",
    "iconUri": "/myapp/images/goto.svg"
}

Response

HTTP/1.1 201 Created
Location: /dms/extensions/dmsapp-custom-myapp.openExternalApp

Über die Location-URL kann ein Benutzer mit Administrationsrechten die Erweiterung in der DMSApp auch wieder löschen. Dazu muss eine HTTP DELETE-Anforderung an den Wert der Location-URL gesendet werden.

Request

DELETE /dms/extensions/dmsapp-custom-myapp.openExternalApp
Origin: https://baseuri

Response

HTTP/1.1 200 OK

Anzeigen von Erweiterungspunkten

Freigegeben: HTML-Seite

Sie können die bei der DMSApp registrierten Erweiterungspunkte anzeigen. Geben Sie einfach die URL /dms/extensions im Browser ein.

Request

GET /dms/extensions
Accept: text/html