Menü der Dokumentation

Erweiterung um eigene Funktionen (DMSApp)

In diesem Thema lernen Sie, wie Sie die DMSApp um eigene Funktionen erweitern können.

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
Hinzufügen von Kontextaktionen zu Listen

Freigegeben: Erweiterungspunkt

Wenn Sie Kontextaktionen zu Listen mit Elementen (z.B. Dokumenten und Akten) hinzufügen, werden diese in folgenden Sektionen angezeigt:

  • Ergebnisse im Feature Suche

  • Inhalt einer Akte

  • Ihre Favoritenlisten und die Liste der beobachteten Elemente im Feature Persönlicher Bereich

Klickt der Anwender auf eine Kontextaktion einer Liste, wechselt die Liste immer zunächst in den Auswahlmodus. Im Auswahlmodus kann der Anwender die gewünschten Elemente auswählen und die Kontextaktion ausführen.

Die App, die solche Erweiterungen bereitstellen möchte, muss unter der Linkrelation dmsobjectextensions eine HTTP-Antwort (Response) im JSON-Format zurückgeben, in der zu jeder Kontextaktion folgende Informationen bereitgestellt werden:

  • Kontext des Erweiterungspunkts: DmsObjectListContextAction

  • Aktivierungsbedingungen zum Anzeigen der Kontextaktion.

  • Anzeigename der Kontextaktion in den verfügbaren Übersetzungen.

  • Link zum Symbol der Kontextaktion.

  • Die Aktion, die ausgeführt werden soll, wenn die Auswahl vom Anwender abgeschlossen wurde. Geben Sie einen relativen Link an, der per HTTP GET von der DMSApp aufgerufen wird.

Jede Kontextaktion kann auch per HTTP POST-Anforderung für die URL /dms/extensions in der DMSApp erstellt werden. Die Anforderung darf nur von einem Benutzer mit Administrationsrechten gestellt werden. Wenn die Antwort der Anforderung erfolgreich ist, wird die Erweiterung in der DMSApp gespeichert und Sie erhalten eine Location-URL im Header der Antwort. Ü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.

Beispiel

Das Beispiel zeigt, wie Sie die HTTP-Antwort der Linkrelation dmsobjectextensions gestalten, um eine Kontextaktion mithilfe eines Erweiterungspunkts DmsObjectListContextAction hinzuzufügen. Je Kontextaktion definieren Sie verschiedene Eigenschaften.

{
        "extensions": [
        {
                "id": "myapp.exportList",
                "activationConditions": [{
                        "propertyId": "repository.id",
                        "operator": "or",
                        "values": ["e632f767-5cfa-538d-ab55-6756c36a74c9"]
                }],
                "captions": [{
                        "culture": "de",
                        "caption": "Exportieren"
                },
                {
                        "culture": "en",
                        "caption": "Export"
                },
        {
            "culture": "en-GB",
            "caption": "Exportin Great Britain"
        }],
                "descriptions": [{
                        "culture": "de",
                        "description": "Liste als CSV exportieren"
                },
                {
                        "culture": "en",
                        "description": "Export list as CSV"
                },
        {
            "culture": "en-GB",
            "description": "Export list as CSV in Great Britain"
        }],
            "context": "DmsObjectListContextAction",
                "uriTemplate": "/myapp/dosomething?url={dmsobjectlist.url}",
                "iconUri": "/myapp/images/export-list.svg",
        "target": "dapi_navigate"
        }]
}

Eigenschaft

Eigenschaften eines enthaltenen Objekts

Beschreibung

id

-

Legt den eindeutigen technischen Namen fest, der verwendet wird, um die Erweiterung von anderen Erweiterungen zu unterscheiden.

activationConditions

Pro Erweiterung teilt die Anwendung mit, unter welchen Aktivierungsbedingungen die Kontextaktion angezeigt werden soll. Diese Aktivierungsbedingungen werden vorab von der Anwendung mitgeteilt. Würden die Aktivierungsbedingungen nicht vorab mitgeteilt, müsste die DMSApp zu einem späteren Zeitpunkt, an dem der Anwender sich ein Element ansieht, andere Apps mit einer Netzwerkanforderung (Request) abfragen. Die Wartezeit für den Anwender würde dann stark steigen, wenn eine App nur verzögert auf diese Anfrage reagiert.

Eine Kontextaktion wird dann angezeigt, wenn alle Einzelbedingungen zutreffen. Enthält die Liste der Aktivierungsbedingungen keinen Eintrag, ist die Erweiterung generell aktiv.

Sie geben die Aktivierungsbedingungen als Array an.

propertyId

Gibt die ID der Eigenschaft an, die für die Aktivierungsbedingung geprüft wird. Mögliche Werte werden weiter unten beschrieben.

operator

Der Operator gibt an, auf welche Art und Weise eine Einzelbedingung ausgewertet wird.

Folgender Operator steht zur Verfügung:

or: Eine or-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft einem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

notOr: Eine notOr-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft keinem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

values

Gibt die Werte in Form eines Arrays an, die mit dem Wert der propertyId-Eigenschaft verglichen werden.

captions

Jede Kontextaktion teilt mit, unter welchem Namen sie angezeigt wird. Sie können auch verschiedene Sprachen berücksichtigen, wobei Sie die sprachabhängigen Namen als Array angeben.

Für eine vollständige Kompatibilität von Sprachpaketen geben Sie die Sprachen für folgende Cultures-Bezeichnungen an:

  • cs (Tschechisch)

  • da (Dänisch)

  • de (Deutsch)

  • en (Englisch)

  • es (Spanisch)

  • fr (Französisch)

  • hr (Kroatisch)

  • it (Italienisch)

  • nl (Niederländisch)

  • pl (Polnisch)

  • sr (Serbisch)

  • sk (Slowakisch)

  • zh-CN (Chinesisch (vereinfacht))

Wird vom Anwender eine Sprache angefordert, für die die erweiternde App keine Angabe zum lokalisierten (sprachspezifischen) Namen angegeben hat, wird nach folgenden Regeln eine alternative Sprache für die Anzeige bestimmt:

  • Wenn die Sprachkennung mit Regionscode (z.B. en-GB) nicht gefunden wird, findet eine Prüfung statt, ob die übergeordnete Sprache ohne Regionscode verfügbar ist (z.B. en). Im obigen Beispiel wird "Export List" für eine Anfrage der Sprache "en-GB" angezeigt, da "en" als Alternative verwendet wird.

  • Ist auch die übergeordnete Sprache nicht verfügbar, ist immer Englisch "en" ohne Regionscode die verwendete Alternative.

  • Ist auch "en" nicht als Alternative angegeben, wird die erste angegebene Sprache als Alternative angezeigt.

culture

Gibt die Sprachkennung an, zu der der Name der Kontextaktion definiert wird. Die Angabe enthält den Sprachcode (z.B. en) und optional einen zusätzlichen Regionscode (z.B. en-GB).

caption

Gibt den sprachabhängigen Namen der Kontextaktion an.

descriptions

(Optional) Jede Kontextaktion kann mitteilen, welche Beschreibung für die jeweilige Kontextaktion angezeigt wird. Diese Beschreibung wird als Tooltipp bei der Kontextaktion angezeigt. Verschiedene Sprachen werden wie in der Eigenschaft captions angegeben.

culture

Gibt die Sprachkennung an, zu der die Beschreibung der Kontextaktion definiert wird. Die Angabe enthält den Sprachcode (z.B. en) und optional einen zusätzlichen Regionscode (z.B. en-GB).

description

Gibt die sprachabhängige Beschreibung der Kontextaktion an.

context

-

Gibt den gewünschten Erweiterungspunkt an, zu dem die Kontextaktion hinzugefügt werden soll.

Geben Sie für Kontextaktionen zur Detailansicht folgenden Wert an:

DmsObjectListContextAction

uriTemplate

-

Sie definieren in der Eigenschaft uriTemplate die URL, die aufgerufen werden soll, wenn die Auswahl vom Anwender abgeschlossen wurde. Sie können Platzhalter definieren, um weitere Informationen zum aktuellen Kontext zu erhalten. Die Platzhalter werden beim Aufrufen der Erweiterung durch die tatsächlichen Eigenschaften ersetzt. Die Eigenschaften werden URL-codiert in die URI übernommen. Mögliche Platzhalter finden Sie weiter unten.

Anmerkung

Das Verwenden eines Platzhalters im Host-Teil der URL ist aus Sicherheitsgründen nicht erlaubt und führt zu einem Fehler.

iconUri

-

Gibt den Link zum Symbol an, das für die Kontextaktion angezeigt wird. Die Datei für das Symbol muss im SVG-Format vorhanden sein.

Die Füllfarbe des SVGs darf nicht festgelegt sein, damit die Füllfarbe über das Theming angepasst werden kann.

Wenn Sie eine eigene SVG-Datei als Symbol verwenden möchten, ist es empfehlenswert, die SVG-Datei im Ordner des Installationsverzeichnisses d.3one/dms/Client/Custom zu speichern.

target

-

(Optional) Gibt an, wo der Inhalt der Kontextaktion angezeigt werden soll.

Mögliche Werte:

  • dapi_navigate (Standardwert): Navigiert innerhalb der Shell-App zu einer neuen Main-Ressource mit dem Inhalt.

  • dapi_inner_supply: Öffnet einen Inner Supply (Anzeigebereich unterhalb der App-Leiste) mit dem Inhalt.

  • dapi_outer_supply: Öffnet einen Outer Supply (Anzeigebereich oberhalb der App-Leiste) mit dem Inhalt.

  • _blank: Öffnet einen neuen Tab im Browser mit dem Inhalt.

Verwenden Sie beim Definieren von Aktivierungsbedingungen bei Kontextaktionen zu Listen folgende Werte für die propertyId-Eigenschaft:

Bedingungskontext

propertyId

Beschreibung

Repository

repository.id

ID des Repositorys, wie in der d.ecs repo-App angegeben. Die Repository-ID finden Sie in der Detailsektion des Features d.3 Repositorys (https://<Basisadresse>/repo/repositories/). Sie erhalten diese ID, indem Sie entweder die URL nutzen oder im Startmenü auf Alle Programme > d.velop > d.3one > Repository-Konfiguration klicken.

Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die ID zu einem Repository programmatisch ermitteln.

Benutzer

user.d3.group_id

Aktivierungsbedingung: ID einer d.3-Benutzergruppe (maximal acht Zeichen), in der der aktuell angemeldete Anwender Mitglied ist.

user.idp.group_id

Aktivierungsbedingung: GUID einer Benutzergruppe der identity provider-App, in der der aktuell angemeldete Anwender Mitglied ist.

Für eine Kontextaktion vom Typ DmsObjectListContextAction können Sie folgende Eigenschaften als Platzhalter in der uriTemplate-Eigenschaft verwenden:

Eigenschaft

Beschreibung

dmsobjectlist.url

Eine URL-codierte URL, unter der die Liste der vom Anwender ausgewählten Elemente (Dokumente und Akten) abgefragt werden kann. Als HTTP-Antwort erhalten Sie diese URL als JSON-Array selectionList, das zu jedem Element folgende Informationen zurückgibt:

  • _links.self.href: Relative URL zum Element, mit der Sie weitere Detailinformationen zum Element abrufen können.

  • id: Dokument-ID des Elements.

  • caption: Titel des Elements.

Beispiel:

selectionList

 {
        "selectionList": 
    [{
                "_links": {
                        "self": {
                                "href": "/dms/r/e632f767-5cfa-538d-ab55-6756c36a74c9/o2/A0000000001"
                        }
                },
                "id": "A0000000001",
                "caption": "Title of the item"
        },
        ...
        ]
}

repository.id

ID des Repositorys, wie in der d.ecs repo-App angegeben. Die Repository-ID finden Sie in der Detailsektion des Features d.3 Repositorys (https://<Basisadresse>/repo/repositories/). Sie erhalten diese ID, indem Sie entweder die URL nutzen oder im Startmenü auf Alle Programme > d.velop > d.3one > Repository-Konfiguration klicken.

Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die ID zu einem Repository programmatisch ermitteln.

user.d3.group_id

Platzhalter uriTemplate: Liste der IDs der d.3-Benutzergruppen (jeweils maximal acht Zeichen) als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

user.idp.group_id

Platzhalter uriTemplate: Liste der GUIDs der Benutzergruppen der identity provider-App als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

Hinzufügen von Kontextaktionen zur Detailansicht

Freigegeben: Erweiterungspunkt

Sie können Kontextaktionen zur Detailansicht für ein Element (DMS-Objekt, Dokument oder Akte) hinzufügen. Diese Kontextaktionen werden auch im Menü für Kontextaktionen (drei übereinander liegende Pünktchen) für ein Element zusammengefasst. Die App, die eine solche Erweiterung bereitstellen möchte, muss unter der Linkrelation dmsobjectextensions eine HTTP-Antwort im JSON-Format zurückgeben, in der zu jeder Kontextaktion folgende Informationen bereitgestellt werden:

  • Kontext des Erweiterungspunkts: DmsObjectDetailsContextAction

  • Aktivierungsbedingungen zum Anzeigen der Kontextaktion.

  • Anzeigename der Kontextaktion in den verfügbaren Übersetzungen.

  • Link zum Symbol der Kontextaktion.

  • Die Aktion, die ausgeführt werden soll, wenn der Anwender auf die Kontextaktion geklickt hat. Geben Sie einen relativen Link an, der per HTTP GET von der DMSApp aufgerufen wird.

Jede Kontextaktion kann auch per HTTP POST-Anforderung für die URL /dms/extensions in der DMSApp erstellt werden. Die Anforderung darf nur von einem Benutzer mit Administrationsrechten gestellt werden. Wenn die Antwort der Anforderung erfolgreich ist, wird die Erweiterung in der DMSApp gespeichert und Sie erhalten eine Location-URL im Header der Antwort. Ü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.

Beispiel

Das Beispiel zeigt, wie Sie die HTTP-Antwort der Linkrelation dmsobjectextensions gestalten, um eine Kontextaktion mithilfe eines Erweiterungspunkts DmsObjectDetailsContextAction hinzuzufügen. Je Kontextaktion definieren Sie verschiedene Eigenschaften.

{
        "extensions": [
        {
                "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",
        "target": "dapi_navigate"
        }]
}

Eigenschaft

Eigenschaften eines enthaltenen Objekts

Beschreibung

id

-

Legt den eindeutigen technischen Namen fest, der verwendet wird, um die Erweiterung von anderen Erweiterungen zu unterscheiden.

activationConditions

Pro Erweiterung teilt die Anwendung mit, unter welchen Aktivierungsbedingungen die Kontextaktion angezeigt werden soll. Diese Aktivierungsbedingungen werden vorab von der Anwendung mitgeteilt. Würden die Aktivierungsbedingungen nicht vorab mitgeteilt, müsste die DMSApp zu einem späteren Zeitpunkt, an dem der Anwender sich ein Dokument ansieht, andere Apps mit einer Netzwerkanforderung (Request) abfragen. Die Wartezeit für den Anwender würde dann stark steigen, wenn eine App nur verzögert auf diese Anfrage reagiert.

Eine Kontextaktion wird dann angezeigt, wenn alle Einzelbedingungen zutreffen. Enthält die Liste der Aktivierungsbedingungen keinen Eintrag, ist die Erweiterung generell aktiv.

Sie geben die Aktivierungsbedingungen als Array an.

propertyId

Gibt die ID der Eigenschaft an, die für die Aktivierungsbedingung geprüft wird. Mögliche Werte werden weiter unten beschrieben.

operator

Der Operator gibt an, auf welche Art und Weise eine Einzelbedingung ausgewertet wird.

Folgender Operator steht zur Verfügung:

or: Eine or-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft einem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

notOr: Eine notOr-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft keinem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

values

Gibt die Werte in Form eines Arrays an, die mit dem Wert der propertyId-Eigenschaft verglichen werden.

captions

Jede Kontextaktion teilt mit, unter welchem Namen sie angezeigt wird. Sie können auch verschiedene Sprachen berücksichtigen, wobei Sie die sprachabhängigen Namen als Array angeben.

Für eine vollständige Kompatibilität von Sprachpaketen geben Sie die Sprachen für folgende Cultures-Bezeichnungen an:

  • cs (Tschechisch)

  • da (Dänisch)

  • de (Deutsch)

  • en (Englisch)

  • es (Spanisch)

  • fr (Französisch)

  • hr (Kroatisch)

  • it (Italienisch)

  • nl (Niederländisch)

  • pl (Polnisch)

  • sr (Serbisch)

  • sk (Slowakisch)

  • zh-CN (Chinesisch (vereinfacht))

Wird vom Anwender eine Sprache angefordert, für die die erweiternde App keine Angabe zum lokalisierten (sprachspezifischen) Namen angegeben hat, wird nach folgenden Regeln eine alternative Sprache für die Anzeige bestimmt:

  • Wird die Sprachkennung mit Regionscode (z.B. en-GB) nicht direkt gefunden, wird geprüft, ob die übergeordnete Sprache (Sprache ohne Regionscode) verfügbar ist (en). Im obigen Beispiel wird "Export List" für eine Anfrage der Sprache "en-GB" angezeigt, da "en" als Alternative genutzt wird.

  • Ist auch die übergeordnete Sprache nicht verfügbar, so ist immer Englisch "en" ohne Regionscode die verwendete Alternative.

  • Ist auch "en" nicht als Alternative angegeben, so wird die erste angegebene Sprache als Alternative angezeigt.

culture

Gibt die Sprachkennung an, zu der der Name der Kontextaktion definiert wird. Die Angabe enthält den Sprachcode (z.B. en) und optional einen zusätzlichen Regionscode (z.B. en-GB).

caption

Gibt den sprachabhängigen Namen der Kontextaktion an.

context

-

Gibt den gewünschten Erweiterungspunkt an, zu dem die Kontextaktion hinzugefügt werden soll.

Geben Sie für Kontextaktionen zur Detailansicht folgenden Wert an:

DmsObjectDetailsContextAction

uriTemplate

-

Sie definieren in der Eigenschaft uriTemplate die URL, die aufgerufen werden soll, wenn der Anwender auf die Kontextaktion klickt. Sie können Platzhalter definieren, um weitere Informationen zum aktuellen Kontext zu erhalten. Die Platzhalter werden beim Aufrufen der Erweiterung durch die tatsächlichen Eigenschaften ersetzt. Die Eigenschaften werden URL-codiert in die URI übernommen. Mögliche Platzhalter finden Sie weiter unten.

iconUri

-

Gibt den Link zum Symbol an, das für die Kontextaktion angezeigt wird. Die Datei für das Symbol muss im SVG-Format vorhanden sein.

Die Füllfarbe des SVGs darf nicht gesetzt sein, damit diese über das Theming angepasst werden kann.

Wenn Sie eine eigene SVG-Datei als Symbol verwenden möchten, ist es empfehlenswert, die SVG-Datei im Ordner des Installationsverzeichnisses d.3one/dms/Client/Custom zu speichern.

target

-

(Optional) Gibt an, wo der Inhalt der Kontextaktion angezeigt werden soll.

Mögliche Werte:

  • dapi_navigate (Standardwert): Navigiert innerhalb der Shell-App zu einer neuen Main-Ressource mit dem Inhalt.

  • dapi_inner_supply: Öffnet einen Inner Supply (Anzeigebereich unterhalb der App-Leiste) mit dem Inhalt.

  • dapi_outer_supply: Öffnet einen Outer Supply (Anzeigebereich oberhalb der App-Leiste) mit dem Inhalt.

  • _blank: Öffnet einen neuen Tab im Browser mit dem Inhalt.

Die nachfolgenden Werte können Sie bei der Definition von Kontextaktionen zur Detailansicht in folgenden Bereichen nutzen:

  • Definition von Aktivierungsbedingungen für die Eigenschaft propertyId

  • Festlegen von Platzhaltern in der Eigenschaft uriTemplate

Thema

Wert

Beschreibung

Repository

repository.id

ID des Repositorys, wie in der d.ecs repo-App angegeben. Die Repository-ID finden Sie in der Detailsektion des Features d.3 Repositorys (https://<Basisadresse>/repo/repositories/). Sie erhalten diese ID, indem Sie entweder die URL verwenden oder im Startmenü auf Alle Programme > d.velop > d.3one > Repository-Konfiguration klicken.

Benutzer

user.d3.group_id

Aktivierungsbedingung: ID einer d.3-Benutzergruppe (maximal acht Zeichen), in der der aktuell angemeldete Anwender Mitglied ist.

Platzhalter uriTemplate: Liste der IDs der d.3-Benutzergruppen (jeweils maximal acht Zeichen) als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

user.idp.group_id

Aktivierungsbedingung: GUID einer Benutzergruppe der identity provider-App, in der der aktuell angemeldete Anwender Mitglied ist.

Platzhalter uriTemplate: Liste der GUIDs der Benutzergruppen der identity provider-App als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

Eigenschaften zum Element

dmsobject.property_editor

Bearbeiter des Elements.

dmsobject.property_owner

Besitzer des Elements.

dmsobject.property_filename

Dateiname des Elements.

dmsobject.property_filetype

Dateityp des Elements.

dmsobject.property_document_number

Dokumentnummer des Elements.

dmsobject.property_creation_date

Erstellungsdatum des Elements.

dmsobject.property_size

Dateigröße des Elements.

dmsobject.property_state

Dokumentstatus des Elements.

Mögliche Werte:

  • Archived: Das Element hat den Status Archiv.

  • VerificationInProgress: Das Element hat den Status Prüfung.

  • Processing: Das Element hat den Status Bearbeitung.

  • Released: Das Element hat den Status Freigabe.

dmsobject.property_variant_number

Variantennummer des Elements.

dmsobject.property_access_date

Zugriffsdatum des Elements.

dmsobject.property_remark

Bemerkungen zum Element.

dmsobject.property_last_alteration_date

Änderungsdatum des Elements.

dmsobject.property_caption

Titel des Elements.

dmsobject.property_category

ID der Kategorie des Elements.

dmsobject.property_category_uuid

UUID der Kategorie des Elements.

dmsobject.property_colorcode

Farbmarkierung des Elements.

dmsobject.property_document_class

Aktivierungsbedingung: Kürzel einer Dokumentklasse des Elements.

Platzhalter uriTemplate: Liste der IDs der Dokumentklassen des Elements als Array im JSON-Format.

dmsobject.property_document_id

Dokument-ID des Elements.

dmsobject.property_display_version_id

Eindeutige ID der Anzeigeversion seitens der DMSApp.

dmsobject.type

Typ des Elements.

Mögliche Werte:

  • Document: Das Element ist ein Element vom Typ "Dokument".

  • Folder: Das Element ist ein Element vom Typ "Akte".

dmsobject.<NUMBER|UUID>

Geben Sie für den Platzhalter <NUMBER|UUID> die ID oder die UUID der erweiterten Eigenschaft an, wie sie im d.3-Repository definiert ist.

Handelt es sich bei der d.3-Eigenschaft um eine Mehrfacheigenschaft, wird der Platzhalter durch den ersten oder den ersten gefüllten Wert der Eigenschaft ersetzt (abhängig von der d.3-Repositorykonfiguration). Sind mehrere Werte für die Mehrfacheigenschaft vorhanden, wird der zurückgegebene Wert um drei Punkte (...) ergänzt.

dmsobject.fieldposition.<NUMBER>

Geben Sie für den Platzhalter <NUMBER> die Datenbankposition der erweiterten Eigenschaft an.

Anmerkung

Wir empfehlen Ihnen dringend, die ID der erweiterten Eigenschaft (dmsobject.<NUMBER>) zu verwenden. Verwenden Sie die Datenbankposition nur im Ausnahmefall, wenn Ihnen die ID der erweiterten Eigenschaft nicht vorliegt oder diese nur sehr aufwändig zu ermitteln ist.

Handelt es sich bei der d.3-Eigenschaft um eine Mehrfacheigenschaft, wird der Platzhalter durch den ersten oder den ersten gefüllten Wert der Eigenschaft ersetzt (abhängig von der d.3-Repositorykonfiguration). Sind mehrere Werte für die Mehrfacheigenschaft vorhanden, wird der zurückgegebene Wert um drei Punkte (...) ergänzt.

dmsobject.self_url_relative

Relative URL des Elements.

Originaldatei des Elements

dmsobject.mainblob.content_type

MIME-Typ der Originaldatei (z.B. text\plain oder image\jpeg).

dmsobject.mainblob.content_url

(Veraltet) Absolute URL der Originaldatei. Wenn der Benutzer keine Berechtigung hat, das Dokument zu exportieren, dann ist dieser Parameter leer.

dmsobject.mainblob.content_url_relative

Relative URL der Originaldatei. Wenn der Benutzer keine Berechtigung hat, das Dokument zu exportieren, dann ist dieser Parameter leer.

dmsobject.mainblob.id

ID der Originaldatei, falls der Anwender das Recht besitzt, die Originaldatei zu exportieren.

Abhängige Dateien zum Element

dmsobject.dependentblobs

Liste der IDs der abhängigen Dateien, falls der Anwender das Recht besitzt, die abhängige Datei zu exportieren.

dmsobject.dependentblob.ID.content_url

(Veraltet) Absolute URL der abhängigen Datei mit der ID aus dmsobject.dependentblobs.

dmsobject.dependentblob.ID.content_url_relative

Relative URL der abhängigen Datei mit der ID aus dmsobject.dependentblobs.

Ersetzen des Inhalts der Perspektive "Anzeige" in der Detailansicht

Freigegeben: Erweiterungspunkt 

Sie können den Inhalt der Perspektive Anzeige zur Detailansicht zu einem Element (z.B. Dokument oder Akte) ersetzen, damit Sie unter bestimmten Bedingungen eine eigene Vorschau darstellen können.

Die App, die eine solche Erweiterung bereitstellen möchte, muss unter der Linkrelation dmsobjectextensions eine HTTP-Antwort im JSON-Format zurückgeben, in der zu jedem Erweiterungspunkt der Anzeige-Perspektive folgende Informationen bereitgestellt werden:

  • Kontext des Erweiterungspunkts: DmsObjectDetailsPreview

  • Aktivierungsbedingungen zum Anzeigen Ihrer Vorschau.

  • Die URL für die Vorschau, die angezeigt werden soll, wenn der Anwender die Perspektive Anzeige der Detailansicht öffnet und Ihre definierten Aktivierungsbedingungen zutreffen. Geben Sie einen relativen Link an, der per HTTP GET von der DMSApp aufgerufen wird.

Jede Kontextaktion kann auch per HTTP POST-Anforderung für die URL /dms/extensions in der DMSApp erstellt werden. Die Anforderung darf nur von einem Benutzer mit Administrationsrechten gestellt werden. Wenn die Antwort der Anforderung erfolgreich ist, wird die Erweiterung in der DMSApp gespeichert und Sie erhalten eine Location-URL im Header der Antwort. Ü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.

Beispiel 

Das Beispiel zeigt, wie Sie die HTTP-Anfrage gestalten, um eine Erweiterung zum Erweiterungspunkt DmsObjectDetailsPreview hinzuzufügen. Je Erweiterung definieren Sie verschiedene Eigenschaften.

        {
        "id": "myapp.viewer",
        "activationConditions": [{
            "propertyId": "dmsobject.mainblob.content_type",
            "operator": "or",
            "values": [
                                "text/plain",
                "application/pdf"
                        ]
        }],
        "context": "DmsObjectDetailsPreview",
        "uriTemplate": "/myapp/preview?layer0={dmsobject.mainblob.content_url}"        
        }

Eigenschaft

Eigenschaften eines enthaltenen Objekts

Beschreibung

id 

-

Legt den eindeutigen technischen Namen fest, der verwendet wird, um die Erweiterung von anderen Erweiterungen zu unterscheiden.

activationConditions 

Pro Erweiterung teilt die Anwendung mit, unter welchen Aktivierungsbedingungen die Erweiterung der Anzeige-Perspektive angezeigt werden soll. Diese Aktivierungsbedingungen werden vorab von der Anwendung mitgeteilt. Würden die Aktivierungsbedingungen nicht vorab mitgeteilt, müsste die DMSApp zu einem späteren Zeitpunkt, an dem der Anwender sich ein Element ansieht, andere Apps mit einer Netzwerkanforderung (Request) abfragen. Die Wartezeit für den Anwender würde dann stark steigen, wenn eine App nur verzögert auf diese Anforderung reagiert.

Eine Erweiterung wird dann angezeigt, wenn alle Einzelbedingungen zutreffen. Enthält die Liste der Aktivierungsbedingungen keinen Eintrag, ist die Erweiterung generell aktiv.

Sie geben die Aktivierungsbedingungen als Array an.

propertyId 

Gibt die ID der Eigenschaft an, die für die Aktivierungsbedingung geprüft wird. Mögliche Werte werden weiter unten beschrieben.

operator 

Der Operator gibt an, auf welche Art und Weise eine Einzelbedingung ausgewertet wird.

Folgender Operator steht zur Verfügung:

or: Eine or-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft einem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

notOr: Eine notOr-Bedingung ist dann erfüllt, wenn der aktuelle Wert der Eigenschaft keinem der Werte entspricht. Die Groß-/Kleinschreibung wird nicht berücksichtigt.

values 

Gibt die Werte in Form eines Arrays an, die mit dem Wert der propertyId-Eigenschaft verglichen werden.

context 

-

Gibt den gewünschten Erweiterungspunkt an, zu dem die Erweiterung hinzugefügt werden soll.

Geben Sie für Erweiterungen der Anzeige-Perspektive der Detailansicht folgenden Wert an:

DmsObjectDetailsPreview 

uriTemplate 

-

Sie definieren in der Eigenschaft uriTemplate die URL, die aufgerufen werden soll, wenn der Anwender die Anzeige-Perspektive der Detailansicht öffnet. Sie können Platzhalter definieren, um weitere Informationen zum aktuellen Kontext zu erhalten. Die Platzhalter werden beim Aufrufen der Erweiterung durch die tatsächlichen Eigenschaften ersetzt. Die Eigenschaften werden URL-codiert in die URI übernommen. Mögliche Platzhalter finden Sie weiter unten. 

Anmerkung

Das Verwenden eines Platzhalters im Host-Teil der URL ist aus Sicherheitsgründen nicht erlaubt und führt zu einem Fehler.

Die nachfolgenden Werte können Sie bei der Definition von Erweiterungen, die den Inhalt der Anzeige-Perspektive ersetzen, in folgenden Bereichen nutzen:

  • Definieren von Aktivierungsbedingungen für die Eigenschaft propertyId

  • Festlegen von Platzhaltern in der Eigenschaft uriTemplate

Thema

Wert

Beschreibung

Repository

repository.id 

ID des Repositorys, wie in der d.ecs repo-App angegeben. Die Repository-ID finden Sie in der Detailsektion des Features d.3 Repositorys (https://<Basisadresse>/repo/repositories/). Sie erhalten diese ID, indem Sie entweder die URL verwenden oder im Startmenü auf Alle Programme > d.velop > d.3one > Repository-Konfiguration klicken.

Im Kapitel Ermitteln eines Repositorys können Sie nachlesen, wie Sie die ID zu einem Repository programmatisch ermitteln.

Benutzer

user.d3.group_id 

Aktivierungsbedingung: ID einer d.3-Benutzergruppe (maximal acht Zeichen), in der der aktuell angemeldete Anwender Mitglied ist.

Platzhalter uriTemplate: Liste der IDs der d.3-Benutzergruppen (jeweils maximal acht Zeichen) als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

user.idp.group_id 

Aktivierungsbedingung: GUID einer Benutzergruppe der identity provider-App, in der der aktuell angemeldete Anwender Mitglied ist.

Platzhalter uriTemplate: Liste der GUIDs der Benutzergruppen der identity provider-App als Array im JSON-Format, in denen der aktuell angemeldete Anwender Mitglied ist.

Eigenschaften zum Element

dmsobject.property_editor 

Bearbeiter des Elements.

dmsobject.property_owner 

Besitzer des Elements.

dmsobject.property_filename 

Dateiname des Elements.

dmsobject.property_filetype 

Dateityp des Elements.

dmsobject.property_document_number 

Dokumentnummer des Elements.

dmsobject.property_creation_date 

Erstellungsdatum des Elements.

dmsobject.property_size 

Dateigröße des Elements.

dmsobject.property_state 

Dokumentstatus des Elements.

Mögliche Werte:

  • Archived: Das Element hat den Status Archiv.

  • VerificationInProgress: Das Element hat den Status Prüfung.

  • Processing: Das Element hat den Status Bearbeitung.

  • Released: Das Element hat den Status Freigabe.

dmsobject.property_variant_number 

Variantennummer des Elements.

dmsobject.property_access_date 

Zugriffsdatum des Elements.

dmsobject.property_remark 

Bemerkungen zum Element.

dmsobject.property_last_alteration_date 

Änderungsdatum des Elements.

dmsobject.property_caption 

Titel des Elements.

dmsobject.property_category 

ID der Kategorie des Elements.

dmsobject.property_category_uuid 

UUID der Kategorie des Elements.

dmsobject.property_colorcode 

Farbmarkierung des Elements.

dmsobject.property_document_class 

Aktivierungsbedingung: ID einer Dokumentklasse des Elements.

Platzhalter uriTemplate: Liste der IDs der Dokumentklassen des Elements als Array im JSON-Format.

dmsobject.property_document_id 

Dokument ID des Elements.

dmsobject.property_display_version_id 

Eindeutige ID der Anzeigeversion seitens der DMSApp.

dmsobject.property_version_id 

Eindeutige ID der aktuellen Version seitens der DMSApp.

dmsobject.type 

Typ des Elements.

Mögliche Werte:

  • Document: Das Element ist ein Element vom Typ "Dokument".

  • Folder: Das Element ist ein Element vom Typ "Akte".

dmsobject.<NUMBER|UUID> 

Geben Sie für den Platzhalter <NUMBER|UUID> die ID oder UUID der erweiterten Eigenschaft an, wie sie im d.3-Repository definiert ist.

Handelt es sich bei der d.3-Eigenschaft um eine Mehrfacheigenschaft, wird der Platzhalter durch den ersten oder den ersten gefüllten Wert der Eigenschaft ersetzt (abhängig von der d.3-Repositorykonfiguration). Sind mehrere Werte für die Mehrfacheigenschaft vorhanden, wird der zurückgegebene Wert um drei Punkte (...) ergänzt.

dmsobject.fieldposition.<NUMBER> 

Geben Sie für den Platzhalter <NUMBER> die Datenbankposition der erweiterten Eigenschaft an.

Anmerkung

Wir empfehlen Ihnen dringend, die ID der erweiterten Eigenschaft (dmsobject.<NUMBER>) zu verwenden. Verwenden Sie die Datenbankposition nur im Ausnahmefall, wenn Ihnen die ID der erweiterten Eigenschaft nicht vorliegt oder diese nur sehr aufwändig zu ermitteln ist.

Handelt es sich bei der d.3-Eigenschaft um eine Mehrfacheigenschaft, wird der Platzhalter durch den ersten oder den ersten gefüllten Wert der Eigenschaft ersetzt (abhängig von der d.3-Repositorykonfiguration). Sind mehrere Werte für die Mehrfacheigenschaft vorhanden, wird der zurückgegebene Wert um drei Punkte (...) ergänzt.

dmsobject.self_url_relative 

Relative URL des Elements.

Originaldatei des Elements

dmsobject.mainblob.content_type 

MIME-Typ der Originaldatei (z.B. text\plain oder image\jpeg).

dmsobject.mainblob.content_url 

(Veraltet) Absolute URL der Originaldatei. Wenn der Benutzer keine Berechtigung hat, das Dokument zu exportieren, dann ist dieser Parameter leer.

dmsobject.mainblob.content_url_relative 

Relative URL der Originaldatei. Wenn der Benutzer keine Berechtigung hat, das Dokument zu exportieren, dann ist dieser Parameter leer.

dmsobject.mainblob.id 

ID der Originaldatei, falls der Anwender das Recht besitzt, die Originaldatei zu exportieren.

Abhängige Dateien zum Element

dmsobject.dependentblobs 

Liste der IDs der abhängigen Dateien, falls der Anwender das Recht besitzt, die abhängige Datei zu exportieren.

dmsobject.dependentblob.ID.content_url 

(Veraltet) Absolute URL der abhängigen Datei mit der ID aus dmsobject.dependentblobs.

dmsobject.dependentblob.ID.content_url_relative 

Relative URL der abhängigen Datei mit der ID aus dmsobject.dependentblobs.