Template für cloudfähige DMS Schnittstellen

Template für cloudfähige DMS Schnittstellen

Mit Vertec 6.3 wurden cloudfähige DMS Schnittstellen eingeführt. Diese Schnittstellen (Extensions) sind vom Typ DMS.

Ein Beispiel, welches von uns mitgeliefert und gewartet wird, ist die SharePoint Online DMS Schnittstelle.

Grundsätzlich können aber auch andere DMS aus Vertec heraus angesprochen werden. Es gibt ein Beispiel-Template, welches zeigt, was man implementieren muss, um eine lauffähige DMS Schnittstelle zu erstellen.

Erstellen Sie dafür in Vertec im Ordner Einstellungen > Extensions eine neue Extension und geben Sie als Extension-ID DmsExampleExtension.DmsExampleExtension an. Über den Button mit den drei Punkten kann dann der Code eingesehen werden:

Um eine eigene DMS Extension zu erstellen, kann der Code rauskopiert und als Scripts 

Vertec DMS Extensions und Pfadpräfixe

Eine DMS Extension kann auch neben einem normalen Filesystem eingesetzt werden. Das geschieht über einen Präfix, den man selber definieren kann - die Pfade sind dann z.B. vom Format Dropbox:\meine Dateien\....

Es können nicht mehrere DMS Extensions oder mehrere Dokumentbibliotheken parallel eingesetzt werden. Unterstützt ist jeweils eine installierte DMS Extension, welche sich mit einer Dokumentbibliothek verbindet.

Ändert sich ein Präfix oder gibt es dafür keine Extension, wird bei den entsprechenden Operationen ein Fehler geworfen.

Einen neuen Präfix einführen

Folgende Schritte müssen durchgeführt werden, um einen neuen Präfix zu implementieren:

  1. Einen noch nicht existierenden Präfix wählen, z.B. MyNewPrefix:
  2. Eine neue DMSMyNewPrefix.py Extension implementieren
  3. Pfade mit MyNewPrefix:\... in Vertec verwenden

In Vertec können Sie mit diesem Präfix beginnen, um den Dateispeicherort festzulegen:

MyNewPrefix:\customers\DemoInc\invoice337.pdf

Vertec versucht nicht, den Pfad selbst zu validieren. Sobald er mit einem Präfix startet, wird das gesamte Filehandling über die entsprechende DMS Extension abgewickelt.

Ein gültiger Präfix:

  • enthält nur Gross- oder Kleinbuchstaben
  • ist mindestens zwei Zeichen lang (weil C:\ zum Beispiel ein Windows Pfad ist)
  • ist maximal 20 Zeichen lang
  • wird immer gefolgt durch einen Doppelpunkt : und einen Backslash \

Extensions implementieren

class DmsExampleExtension(VertecExtension):

Eine Vertec DMS Extensions muss folgende Klassen-Methoden definieren (vertecFilePath ist immer ein Pfad in der Form SharePoint:\dir1\dir2\file.txt oder MyDmsExt:\dir3\dir4\someOtherFile.docx):

def DirectoryExists(self, vertecFilePath):

Soll True oder False zurückgeben, je nachdem, ob das angegebene Verzeichnis existiert.

def DirectoryCreate(self, vertecFilePath):

Soll das angegebene Verzeichnis erzeugen. Falls nicht möglich, werfe eine Exception mit einer Fehlermeldung. Diese Methode soll auch die übergeordneten Verzeichnisse erzeugen.

Kein Rückgabewert.

def DirectoryOpen(self, vertecFilePath):

Soll das angegebene Verzeichnis in einer nützlichen Variante öffnen, z.B. in einer Browser Ansicht.

Kein Rückgabewert.

def DocumentExists(self, vertecFilePath):

Soll True oder False zurückgeben, je nachdem, ob das angegebene Dokument existiert.

def DocumentOpen(self, vertecFilePath):

Soll das angegebene Dokument in einer nützlichen Variante öffnen, z.B. in einer Browser Ansicht.

Kein Rückgabewert.

def StoreDocument(self, content, vertecFilePath, aktivitaet):

Vertec hat eine In-Memory-Datei erstellt, die im DMS gespeichert werden soll.

  • content: In-Memory-Byte-Array mit dem Inhalt der Datei.
  • vertecFilePath: der Zieldateipfad
  • aktivitaet: bietet einen Kontext für die Übertragung von Metadaten.

Kein Rückgabewert.

def create_or_update_folder(self, project):

Ab Vertec 6.8.0.11. Optionale Funktion. Ist sie in der installierten DMS Schnittstelle vorhanden, erscheint auf einzelnen Projekten im Menü Aktionen / im Kontextmenü auf Rechtsklick der Menüpunkt Im DMS aktualisieren:

Wird die Funktion aufgerufen, wird die Methode in der DMS Schnittstelle ausgeführt und das gewählte Projekt als project übergeben. Was damit im Zielsystem genau geschieht, kann hier implementiert werden. 

Kein Rückgabewert. 

Netherlands

United Kingdom