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.