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:
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:
| |
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. AnmerkungDas 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:
|
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:
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:
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:
| |
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:
|
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:
| |
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:
| |
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. AnmerkungWir 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. AnmerkungDas 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:
| |
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:
| |
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. AnmerkungWir 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. |