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-Antwort der Linkrelation dmsobjectextensions gestalten, um eine Erweiterung zum Erweiterungspunkt DmsObjectDetailsPreview hinzuzufügen. Je Erweiterung definieren Sie verschiedene Eigenschaften.

{
        "extensions": [
        {
        "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.