Kostenloses Live-Webinar: VergabeHero in Aktion erleben.

Anlage 6 - Schnittstelle VIS - CMIS-Schnittstelle Konfiguration.pdf

Fachsoftware für das Feststellungsverfahren im Schwerbehindertenrecht

Extrahierter Dokumenttext · Stand: 02.10.2026, 08:22 (Europe/Berlin)

Herkunft: www.evergabe-online.de

Tabellen, Layout und Zeichen können bei der Extraktion abweichen. Maßgeblich ist die Originaldatei.

Originaldatei öffnen

[Seite 1]

VIS CMIS-Schnittstelle

Konfiguration

Version: 6.5

Stand: 28. März 2024

[Seite 2]

© Copyright by PDV GmbH Haarbergstraße 73 99097 Erfurt

Alle Rechte vorbehalten. Sämtliche Angaben vorbehaltlich technischer Änderungen. Trotz sorgfältiger Prüfung wird für den Inhalt keine Haftung übernommen. Alle aufgeführten Warennamen sind eingetragen und als solche zu behandeln.

Im Interesse der besseren Lesbarkeit des Textes wird auf geschlechterspezifische Formulierungen verzichtet. Die männliche Form wird als generisches Maskulinum und damit ausdrücklich als Sammelbezeichnung für beide Geschlechter verwendet.

Nachdruck und Vervielfältigung – auch auszugsweise – nur mit Genehmigung der PDV GmbH, Erfurt

[Seite 3]

Inhaltsverzeichnis

Inhaltsverzeichnis

1 Einleitung ................................................................................................................ 4 1.1 Begleitende Dokumente ........................................................................................ 4 1.2 Änderungsverzeichnis ........................................................................................... 4 2 CMIS im Überblick .................................................................................................. 5 2.1 Entwicklung von CMIS und aktueller Stand ........................................................... 5 2.2 Vorteile von CMIS ................................................................................................. 5 2.3 Anbindungen ......................................................................................................... 6 3 Konfiguration eines Nutzers für die CMIS-Schnittstelle ...................................... 7 3.1 Authentifizierung mittels Basic-Authentifizierung ................................................... 7 3.2 Authentifizierung mittels Kerberos ......................................................................... 7 4 CMIS-Funktionen in VIS ......................................................................................... 8 4.1 Verbindung zu einem VIS-Mandanten herstellen................................................... 9 4.2 Repository-Funktionen ........................................................................................ 10 4.3 Objekt-Funktionen ............................................................................................... 14 4.4 Navigations-Funktionen....................................................................................... 20 5 Beispiel .................................................................................................................. 22 6 Verwendung der CMIS Workbench ...................................................................... 25 6.1 Installation und Starten der CMIS Workbench ..................................................... 25 6.2 Verbindung zum VIS-Mandanten herstellen ........................................................ 26 6.3 Arbeiten mit der CMIS Workbench ...................................................................... 28 6.3.1 Informationen zum Mandanten anzeigen ......................................................30 6.3.2 Anzeigen und Bearbeiten der Objekteigenschaften ......................................31 6.3.3 Erstellen neuer Objekte ................................................................................38 7 Anhang .................................................................................................................. 41 7.1 Standard-Objekttypen und ihre IDs ..................................................................... 41 7.2 Abkürzungsverzeichnis ....................................................................................... 44

3

[Seite 4]

Einleitung

1 Einleitung

In der öffentlichen Verwaltung kommen verschiedene und teils mehrere Dokumentenmanagement- und Vorgangssysteme sowie diverse Fachanwendungen zum Einsatz. CMIS (Content Management Interoperability Services) ist ein offener und herstellerunabhängiger Standard, dessen Ziel es ist, die Interoperabilität proprietärer Systeme herstellerübergreifend zu ermöglichen.

Mit der implementierten CMIS-Schnittstelle stehen nun für Fachanwendungen Funktionen zum Erstellen und Verwalten von Schriftgutobjekten und Geschäftsgängen in der VIS-Suite zur Verfügung. Basierend auf Webtechnologien werden die Systeme miteinander gekoppelt. Ebenso werden für die Kommunikation Webdienste genutzt. Eine effizientere Zusammenarbeit der Anwender der Systeme wird erreicht.

Dieses Dokument gibt einen Überblick über die Entwicklung des CMIS Standards, beschreibt die Voraussetzungen für den Einsatz von CMIS und den Funktionsumfang von CMIS in der VIS-Suite und erklärt anhand von Beispielen den Einsatz der Schnittstelle.

1.1 Begleitende Dokumente

VersionDokument
6.5Fachadministration Handbuch

Tabelle 1: Begleitende Dokumente

1.2 Änderungsverzeichnis

VersionKommentar
6.5neue Kapitel: • 6 Verwendung der CMIS Workbench Neuerungen: • Ergänzung des Kapitels 6.3.3 Erstellen neuer Objekte zu Allowable Actions in CMIS

Tabelle 2: Änderungsverzeichnis

4

[Seite 5]

CMIS im Überblick

Entwicklung von CMIS und aktueller Stand

2 CMIS im Überblick

In diesem Kapitel wird erläutert, wie sich der CMIS-Standard entwickelt hat, welches Ziel hinter der Entwicklung steht und welche Vorteile der CMIS-Standard insbesondere für die öffentliche Verwaltung bietet.

G 2 ut

.1 Entwicklung von CMIS und aktueller Stand

CMIS (Content Management Interoperability Services) ist ein offener und herstellerunabhängiger Standard für eine Verbindung zu Content- und Dokumentenmanagementsystemen durch die Nutzung von Webprotokollen. Es werden standardisierte Dienste für den Zugriff auf Dokumente im ECM-System und deren Bearbeitung bereitgestellt. Diese Dienste ermöglichen es, Verwaltungstätigkeiten wie das Erstellen, Anzeigen, Aktualisieren, Löschen, Versionieren und die Rechtvergabe von Content jeglicher Art einheitlich über den Standard durchzuführen, ohne direkt mit dem jeweiligen ECM-System arbeiten zu müssen.

AIIM, ein internationaler Branchenverband für Informationsmanagement mit Mitgliedern aus Herstellern und Anwendern von ECM-Systemen, begann bereits im Jahre 2005 an der Arbeit an einem Standard für ECM. Später wurde die Entwicklung unter dem Dach von OASIS, ein Konsortium für Webstandards bestehend aus namhaften Unternehmen vorangetrieben. Im Mai 2010 wurde schließlich die Version 1.0 offiziell veröffentlicht. Aktuell liegt die Version 1.1 als OASIS Standard vom 23. Mai 2013 vor.

2.2 Vorteile von CMIS

CMIS ermöglicht Zugriffe auf ECM-Systeme zu vereinheitlichen und die Interoperabilität zwischen proprietären Softwaresystemen. Es ist nicht notwendig, die jeweiligen Besonderheiten des ECM-Systems zu kennen.

So lassen sich ECM-Systeme deutlich einfacher in eine bestehende Fachverfahrenslandschaft integrieren und eine realistische Einhaltung der E-Government- Vorgaben ist möglich.

Da die CMIS-Dienste auf Standards basieren, müssen nicht erst noch projektspezifische bzw. herstellerspezifische Schnittstellen entwickelt werden. Finanzielle Risiken bei der Einführung eines neuen ECM-Systems reduzieren sich und die Verwaltung der Softwaresysteme wird vereinfacht.

5

[Seite 6]

CMIS im Überblick

Anbindungen

2.3 Anbindungen

Standardmäßig werden über CMIS drei Möglichkeiten der Anbindung angeboten: • AtomPub-Anbindung • SOAP Webservice-Anbindung • Browser-Anbindung (JSON)

Die Anbindung an das VIS-System erfolgt über AtomPub, die auf dem REST-konformen Atom Publishing Protocol basiert. Der CMIS-Standard erweitert das Protokoll um Funktionen, wie beispielsweise Zugriffskontrollen, Versionierung und die Hierarchie von Objekten.

Die Daten werden konform nach dem Atom Syndication Format übertragen. Dieses Format ist ein XML-Format und ermöglicht so einen plattformunabhängigen Datenaustausch. Für die Kommunikation werden die HTTP-Methoden GET, POST, PUT und DELETE genutzt.

MethodeBeschreibung
GETzum Abrufen von Daten
POSTzum Erstellen neuer Objekte
PUTzum Bearbeiten und Aktualisieren von Daten und Objekten
DELETEzum Löschen von Objekten

Tabelle 3: HTTP-Methoden des AtomPub-Protokolls

Abbildung 1: Anbindungen an VIS über die AtomPub-Bindung

6

[Seite 7]

Konfiguration eines Nutzers für die CMIS-Schnittstelle

Authentifizierung mittels Basic-Authentifizierung

3 Konfiguration eines Nutzers für die CMIS-Schnittstelle

Es wird empfohlen, einen speziellen VIS-Nutzer anzulegen, der nur für die Verwendung der CMIS-Schnittstelle genutzt wird. Die Rechte dieses VIS-Nutzers werden beim Ausführen von Aktionen über VIS genutzt. Eine Anleitung zum Einrichten eines VIS-Nutzers finden Sie im »Handbuch Fachadministration«.

Darüber hinaus sieht die CMIS-Spezifikation für die Authentifizierung ein Verfahren auf der HTTP-Transportebene vor.

3.1 Authentifizierung mittels Basic-Authentifizierung

Ist für die CMIS-Schnittstelle ein eigener Nutzer konfiguriert, muss für diesen die Basic- Authentifizierung aktiviert sein.

3.2 Authentifizierung mittels Kerberos

Soll die CMIS-Schnittstelle nur innerhalb des Unternehmensnetzes verfügbar sein, so besteht theoretisch1 auch die Möglichkeit, mit dem Kerberos-Verfahren zu authentisieren.

1 PDV ist derzeit kein CMIS-Client-Framework bekannt, welches Kerberos unterstützt.

7

[Seite 8]

CMIS-Funktionen in VIS

4 CMIS-Funktionen in VIS

In diesem Kapitel werden alle CMIS-Funktionen vorgestellt, die von der aktuellen VIS-Suite bereitgestellt werden. Die Funktionalitäten werden anhand von kleinen Beispielen in Java veranschaulicht.

FunktionskategorieFunktionsname
Repository-FunktionengetRepositories
getRepositoryInfo
getTypeChildren
getTypeDescendants
getTypeDefinition
Object-FunktionencreateDocument
createFolder
createItem
getObject
getContentStream
setContentStream
deleteContentStream
delete
Navigation-FunktionengetChildren
getDescendants
getFolderTree
getFolderParent
getObjectParents

Tabelle 4: Übersicht über CMIS-Funktionen in VIS

8

[Seite 9]

CMIS-Funktionen in VIS

Verbindung zu einem VIS-Mandanten herstellen

4.1 Verbindung zu einem VIS-Mandanten herstellen

In diesem Kapitel wird erläutert, wie Sie eine Verbindung über CMIS zu einem VIS- Mandanten herstellen, um im Anschluss Daten über die Schnittstelle abzurufen oder zu bearbeiten.

Für eine Verbindung sind die folgenden Parameter notwendig: • Deklaration der Parameter

// Deklaration SessionFactory sessionFactory = SessionFactoryImpl.newInstance(); Map<String, String> parameter = new HashMap<>(); Repository repository; Session session;

• Verbindungsparameter Die Endpoint/URL für die Schnittstelle an VIS setzt sich folgendermaßen zusammen:

// Endpoint/URL // http://[Servername].[Domain]:[Port]/vis/[Mandantenkennung]/cmis String endpoint = "http://visserver.pdv.lan:8080/12345A67-B890-123C- 45D6-7E8901F234G8/cmis";

Verbindungstyp ist AtomPub:

// AtomPub als Verbindungstyp festlegen parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value()); parameter.put(SessionParameter.ATOMPUB_URL, endpoint);

• Authentifizierung gegenüber VIS Zur Authentifizierung gegenüber dem VIS-Server ist ein spezieller Nutzer notwendig (3 Konfiguration eines Nutzers für die CMIS-Schnittstelle).

// Benutzerdaten übergeben parameter.put(SessionParameter.USER, "username"); parameter.put(SessionParameter.PASSWORD, "password");

9

[Seite 10]

CMIS-Funktionen in VIS

Repository-Funktionen

• Verbindungsaufbau

// Erstes Element der Liste der Repositories wird zurückgegeben // Bei VIS: 1 Repository = 1 Mandanten repository = sessionFactory.getRepositories(parameter).get(0); session = repository.createSession();

4.2 Repository-Funktionen

Die Repository-Funktionen in CMIS liefern Informationen zu den Repositories des VIS-Mandanten zurück. Bei VIS entspricht ein Repository einem Mandanten, d. h. bei einer Verbindung ist immer nur ein Repository verfügbar. Neben allgemeinen Informationen wie der Name oder die ID der Datenbank können auch Details zu den Objekttypen und abgeleiteten Objekttypen in der Datenbank abgefragt werden.

getRepositories

Die Funktion liefert eine Liste der zur Verfügung stehenden Repositories zurück, die über die angegebene Schnittstelle erreichbar sind. Bei VIS enthält die Liste immer nur ein Element, da ein Repository einem Mandanten entspricht.

Map<String, String> parameters = new HashMap<String, String>(); parameters.putAll(session.getSessionParameters());

// default factory implementation SessionFactory factory = SessionFactoryImpl.newInstance();

// Repositories abfragen List repositories = factory.getRepositories(parameters); System.out.printf("Anzahl: %s\n", repositories.size()); // Anzahl ist immer 1, da ein Repository gleich einem Mandanten ist RepositoryInfo repInfo = repositories.get(0); System.out.printf("ID: %s\n", repInfo.getId()); // Die Mandanten-ID System.out.printf("Name: %s\n", repInfo.getName()); // Name des Repositories (= Name des Mandanten) System.out.printf("Produktname: %s\n", repInfo.getProductName()); System.out.printf("Produktversion: %s\n", repInfo.getProductVersion()); System.out.printf("Produkthersteller: %s\n", repInfo.getVendorName()); System.out.printf("RootFolderID: %s\n", repInfo.getRootFolderId());

10

[Seite 11]

CMIS-Funktionen in VIS

Repository-Funktionen

getRepositoryInfo

Über diese Funktion erhalten Sie Informationen zum angefragten Datendepot, wie z. B. den Namen, die ID des Hauptknotens »RootfolderID« und die unterstützte CMIS-Version.

RepositoryInfo repInfo = session.getRepositoryInfo(); System.out.printf("ID: %s\n", repInfo.getId()); // Die Mandanten-ID System.out.printf("Name: %s\n", repInfo.getName()); // Name des Repositories (= Name des Mandanten) System.out.printf("Produktname: %s\n", repInfo.getProductName()); System.out.printf("Produktversion: %s\n", repInfo.getProductVersion()); System.out.printf("Produkthersteller: %s\n", repInfo.getVendorName()); System.out.printf("RootFolderID: %s\n", repInfo.getRootFolderId());

getTypeChildren

Mit Ausführung dieser Funktion wird eine Liste mit den von einem angegebenen Objekttypen abgeleiteten Objekttypen zurückgegeben.

// Abfrage der Basisobjekttypen, die das Repository unterstützt ItemIterable typeChildren = session.getTypeChildren(null, false); for (Iterator it = typeChildren.iterator(); it.hasNext();) { ObjectType objType = it.next(); System.out.printf("Name: %s, ID: %s\n", objType.getDisplayName(), objType.getId()); }

11

[Seite 12]

CMIS-Funktionen in VIS

Repository-Funktionen

Das Beispiel liefert als Ergebnis die Basisobjekttypen cmis:document, cmis:folder und cmis:item. Ersetzen Sie den ersten Parameter in der Funktion durch den Objekttyp cmis:item liefert die Funktion die abgeleiteten Objekttypen des Basisobjekttyps zurück. Das folgende Beispiel veranschaulicht, wie alle verpflichtenden Attribute des Objekttyps cmis:item ausgegeben werden können:

// Abfrage der Objekttypen von "cmis:item" inkl. aller Attribute ItemIterable typeChildren = session.getTypeChildren("cmis:item", true); for (Iterator it = typeChildren.iterator(); it.hasNext();) { ObjectType oType =it.next(); Map<String, PropertyDefinition<?>> propDef = oType.getPropertyDefinitions(); System.out.printf("Bezeichnung: %s, ID: %s – Anzahl der Attribute:%d\n", oType.getDisplayName(), oType.getId(), propDef.size()); for (Map.Entry e : propDef.entrySet()) { if (((PropertyDefinition)e.getValue()).isRequired()) System.out.printf("ID: %s, Bezeichnung: %s\n", e.getKey(), propDef.get(e.getKey()).getDescription()); } }

getTypeDescendants

Diese Funktion liefert für die Datenbank definierte Objektdefinitionen in hierarchischer Form zurück.

// Abfrage der Objekttypdefinition der Akte (ID 1) und Anzeige der // Bezeichnung und ID List<Tree>trees = session.getTypeDescendants("1",1,false); for (Tree tree : trees) { ObjectType objectType = tree.getItem(); System.out.printf("Bezeichnung: %s, ID: %s\n", objectType.getDisplayName(),objectType.getId());

12

[Seite 13]

CMIS-Funktionen in VIS

Repository-Funktionen

getTypeDefinition

Die Funktion gibt die Definition für den angegebenen Objekttypen zurück.

// Abfrage der Definition einer Aktennotiz (ID -70) ObjectType objType = session.getTypeDefinition("-70", true); System.out.printf("DisplayName: %s, QueryName: %s, Erzeugbar: %s", objType.getDisplayName(), objType.getQueryName(), objType.isCreatable());

Zusätzlich werden hierüber die Definitionen aller Attribute ausgegeben.

// Abfrage der Definition einer Aktennotiz (ID -70) ObjectType objType = session.getTypeDefinition("-70", true); System.out.printf("DisplayName: %s, QueryName: %s, Erzeugbar: %s", objType.getDisplayName(), objType.getQueryName(), objType.isCreatable());

Map<String, PropertyDefinition<?>> propDef = objType.getPropertyDefinitions(); System.out.printf("Bezeichnung: %s(ID: %s) – Anzahl der Attribute: %d\n\n", objType.getDisplayName(), objType.getId(), propDef.size());

for (Map.Entry e : propDef.entrySet()) System.out.printf("Attribut: %s, Definition: %s\n", e.getKey(), e.getValue());

13

[Seite 14]

CMIS-Funktionen in VIS

Objekt-Funktionen

4.3 Objekt-Funktionen

createDocument

Die Funktion erstellt ein Dokument des angegebenen Objekttyps. Der Objekttyp wird über die Eigenschaft cmis:objectTypeId zugewiesen. Ein Dokument (vis:document) in CMIS entspricht einer Datei in VIS.

Im nachfolgenden Beispiel wird eine PDF-Datei dem Dokument »Bescheid« hinzugefügt. Der Pfad des Bescheids wird als bekannt vorausgesetzt. Die PDF-Datei befindet sich im Hauptverzeichnis C:\ und hat den Namen Bescheid.pdf.

Folder bescheid = (Folder)session.getObjectByPath("[FOLDER_PATH]"); String fileName = "abc.pdf"; String filePath = "C:/abc.pdf"; Path path = Paths.get(filePath); InputStream stream = new FileInputStream(filePath); Map<String, String> docProps = new HashMap<>(); docProps.put(PropertyIds.NAME, fileName); docProps.put(PropertyIds.OBJECT_TYPE_ID, "vis:document"); ContentStream contentStream = session.getObjectFactory().createContentStream (fileName, Files.size(path), "application/pdf", stream); bescheid.createDocument(docProps, contentStream, VersioningState.NONE);

createFolder

Diese Funktion erstellt einen Ordner des angegebenen Objekttyps an dem zugewiesenen Objekt. Ein Ordner in CMIS entspricht einem Schriftgutobjekt (z. B. Akte, Vorgang, Dokument) in VIS.

Um ein neues Geschäftsobjekt in VIS anzulegen, wird die Objekttyp-ID benötigt. Die Grundobjektarten Akte, Band, Vorgang, Untervorgang, Dokument und Strukturobjekte besitzen zudem eine Objektart-ID mit dem Präfix vis:art:. Beim Erzeugen von Bänden (ID vis:art:2) und Untervorgängen (ID vis:art:210) muss diese vollständig angegeben werden.

Eine Übersicht der Standardgeschäftsobjekte und ihrer ID finden Sie zudem in Kapitel 7.1 Standard-Objekttypen und ihre IDs.

14

[Seite 15]

CMIS-Funktionen in VIS

Objekt-Funktionen

Im nachfolgenden Beispiel wird eine Klage (ID 70) als Typ eines Vorgangs innerhalb einer bestehenden Akte angelegt. Der Pfad der Akte wird als bekannt vorausgesetzt.

Folder akte = (Folder)session.getObjectByPath("[FOLDER_PATH]"); String objTypeName = session.getTypeDefinition("70").getDisplayName();

// Ausgabe des Typs des Geschäftsobjektes, das erzeugt werden soll, // sowie des Namens und des Typs des Geschäftsobjektes, in dem das // neue Objekt erzeugt wird System.out.printf ("Geschäftsobjekt '%s' wird in Akte '%s' des Typs'%s' erzeugt\n", objTypeName, akte.getName(), akte.getType().getDisplayName());

// Definition einiger Eigenschaften für das neue Geschäftsobjekt Map<String, Object> props = new HashMap<>(); props.put(PropertyIds.OBJECT_TYPE_ID, "70"); props.put("vis:kurzbez", "Klage"); props.put("vis:betreff", "Betreff: Klage gegen A");

Folder vorgang = akte.createFolder(props); System.out.printf("ObjektID des neuen Vorgangs: %s\n", vorgang.getId());

createItem

Die Funktion erstellt ein Item des angegebenen Typs. GGV (Geschäftsgangverfügung) und WV (Wiedervorlage) sind Objekte des Basistyps cmis:item. Zum Erstellen einer neuen GGV übergeben Sie als Typ vis:ggv und für eine WV den Typ vis:wv. GGV und WV können nur Objekte des Basistyps cmis:folder erstellt werden. Ablagen (Typ vis:ablage) sind davon jedoch ausgeschlossen.

Wichtig:
Für Aufgaben (Geschäftsgangverfügungen und Wiedervorlagen) mit einem
Fälligkeitsdatum muss die Java-Bibliothek »GregorianCalendar« eingebunden werden.
Die folgende Code-Zeile ist am Angang des Skripts zu ergänzen:
import java.util.GregorianCalendar;

15

[Seite 16]

CMIS-Funktionen in VIS

Objekt-Funktionen

Im folgenden Beispiel ist das Anlegen einer GGV an einem Vorgang erläutert.

// Neue GGV für einen Vorgang anlegen Folder vorgang = (Folder)session.getObject("[OBJECT-ID]"); String ggvname = "Neue Aufgabe per CMIS"; Map<String, Object> itemProps = new HashMap<>(); itemProps.put(PropertyIds.OBJECT_TYPE_ID, "vis:ggv");

// Aufgabenbeschreibung itemProps.put("vis:aufgabe", ggvname); itemProps.put(PropertyIds.NAME, ggvname); itemProps.put("vis:erledigung", "Vermerk"); itemProps.put("vis:stufe",10);

// ID der GGV-Kategorie itemProps.put("vis:kategorie", "141");

// ADM-ID des Users, der die GGV erstellt itemProps.put("vis:erlassen_fuer_id", "177");

// Termin im Format Jahr, Monat, Tag itemProps.put("vis:termin", new GregorianCalendar(2021,1,14));

// GGV erzeugen Item item = vorgang.createItem(itemProps);

16

[Seite 17]

CMIS-Funktionen in VIS

Objekt-Funktionen

// Neue WV für einen Vorgang anlegen Folder vorgang = (Folder)session.getObject("[OBJECT-ID]");

String wvname = "Neue Aufgabe per CMIS"; Map<String, Object> itemProps = new HashMap<>();

// Wiedervorlagenbeschreibung itemProps.put(PropertyIds.OBJECT_TYPE_ID, "vis:wv"); itemProps.put(PropertyIds.NAME, wvname); itemProps.put("vis:aufgabe", wvname); itemProps.put("vis:erledigung", "Vermerk");

// Termin im Format Jahr, Monat, Tag itemProps.put("vis:termin", new GregorianCalendar(2021,1,14));

// ADM-ID des Users, der die WV erstellt itemProps.put("vis:erlassen_fuer_id", "177");

// Angabe des Zyklus in Textform itemProps.put("vis:zyklus","jeder 01. des Monats");

// WV erzeugen Item item = vorgang.createItem(itemProps);

getObject

Es werden die angegebenen Informationen für das entsprechende Objekt zurückgegeben. Bei dem Objekt kann es sich dabei um ein Objekt des Typs cmis:document oder cmis:folder handeln.

// In Bezug auf das vorangegangene Beispiel wird die ID des erzeugten Vorgangs verwendet CmisObject cmisObj = session.getObject("[OBJECT-ID]");

// Ausgabe des Basisobjekttyps

System.out.printf("Basistyp: %s", cmisObj.getBaseTypeId());

17

[Seite 18]

CMIS-Funktionen in VIS

Objekt-Funktionen

getContentStream

Es wird entweder der Inhalt des angegebenen Dokumentes zurückgegeben oder die eines Dokumentes oder Ordners in Form eines »RenditionStreams«.

// Auslesen und Anzeige des Inhalts einer Textdatei Document doc = (Document)session.getObject("[ID Textdatei]"); ContentStream cs = doc.getContentStream(); if (cs != null) { String text = IOUtils.toString(cs.getStream(), "UTF-8"); System.out.printf("Inhalt der Datei:\n%s\n", text); } else System.out.printf("Datei ist leer.");

setContentStream

Der Inhalt des angegebenen Dokuments wird gesetzt.

// Leere Datei (schon angelegt) wird mit Text gefüllt Document emptyDoc = (Document)session.getObject("[DATEI-PFAD]");

// Text definieren und InputStream erzeugen String docText = "Das ist mein Text."; byte[] content = docText.getBytes(); boolean overwrite = true, refresh = true; InputStream iStream = new ByteArrayInputStream(content);

// ContentStream erzeugen // "Leer" durch den Dateinamen ersetzen ContentStream contentStream = session.getObjectFactory().createContentStream ("Leer", Long.valueOf(content.length),"text/plain", iStream);

// Inhalt der Datei ersetzen boolean overwrite = true, refresh = true; emptyDoc.setContentStream(contentStream, overwrite, refresh);

18

[Seite 19]

CMIS-Funktionen in VIS

Objekt-Funktionen

deleteContentStream

Es wird der Inhalt des Dokumentes gelöscht.

// Löschen des Inhalts einer Datei und Ausgabe der Dateigröße vor und // nach dem Löschen Document doc = (Document)session.getObject("[DATEI-PFAD]"); System.out.printf("Dateigröße vor dem Löschen: %s Bytes\n", doc.getProperty("cmis:contentStreamLength").getValueAsString()); boolean refresh = true; doc.deleteContentStream(refresh); System.out.printf("Dateigröße nach dem Löschen: %s Bytes\n", doc.getProperty("cmis:contentStreamLength").getValueAsString());

deleteObject

Das angegebene Objekt wird gelöscht.

// Löschen einer Datei, Pfad der Datei wird als bekannt // vorausgesetzt CmisObject cmisObj = session.getObject("[DATEI-PFAD]"); cmisObj.delete();

Wichtig:
Standardmäßig können Anwender in VIS nur Dateien löschen. Um Schriftgutobjekte zu
löschen, wird ein spezielles Recht benötigt oder die Papierkorbfunktion muss für die
jeweilige Ablage aktiviert sein. Nähere Erläuterungen finden Sie im
Fachadministration Handbuch.

19

[Seite 20]

CMIS-Funktionen in VIS

Navigations-Funktionen

4.4 Navigations-Funktionen

getChildren

Diese Funktion liefert die in einem Verzeichnis abgelegten Objekte zurück. Unterstützt das Repository versionsabhängiges Ablegen von Dokumenten, muss die entsprechende Version des Dokumentes zurückgegeben werden, ansonsten die letzte Version oder Hauptversion des Dokumentes.

// Anzeige der Objekte eines Verzeichnis // Objekt-ID gilt als bekannt Folder folder = (Folder)session.getObject("[OBJECT-ID]"); ItemIterable children = folder.getChildren(); System.out.printf("Objekte in '%s' des Typs '%s':\n", folder.getName(), folder.getType().getDisplayName()); for (CmisObject child : children) { System.out.printf("Bezeichnung: %s\n", child.getProperty("cmis:name").getValueAsString()); }

getDescendants

Es werden alle in dem Verzeichnis abgelegten Objekte inklusive der in Unterordnern abgelegten Objekte zurückgegeben.

Unterstützt das Repository versionsabhängiges Ablegen von Dokumenten, muss die entsprechende Version des Dokumentes zurückgeben werden, ansonsten die letzte Version oder Hauptversion des Dokumentes.

Unterstützt das Repository das Ablegen von ein und demselben Dokument in mehreren Ordnern, muss das Dokument für jeden Ordner zurückgegeben werden.

// Anzeige der Objekte eines Verzeichnis sowie sämtlicher Unterobjekte // Objekt-ID gilt als bekannt Folder folder = (Folder)session.getObject("[OBJECT-ID]"); System.out.printf("Objekte und Unterobjekte in '%s':\n", folder.getName()); List<Tree> desc = folder.getDescendants(-1);

// Parameter -1 = alle Ebenen werden ausgelesen, ansonsten Anzahl der // Ebenen angeben for (Tree t : folder.getDescendants(-1)) printTree(t, "");

20

[Seite 21]

CMIS-Funktionen in VIS

Navigations-Funktionen

Das nachfolgende Konfigurationsbeispiel enthält die Funktion zur Ausgabe des Baumes:

private static void printTree(Tree tree, String tab) { System.out.printf("%s Objekt: %s vom Typ: %s\n", tab, tree.getItem().getName(), tree.getItem().getType().getDisplayName()); for (Tree t : tree.getChildren()) printTree(t, " "); }

getFolderTree

Diese Funktion liefert alle Unterordner eines angegebenen Ordners zurück. Im Gegensatz zur Funktion getDescendants, bei der alle Kind- und Kinderobjekte zurückgeliefert werden, gib die Funktion getFolderTree nur Objekte vom Typ cmis:folder zurück.

getFolderParent

Diese Funktion gibt den übergeordneten Ordner des angegebenen Ordners an. Diese Funktion ist nur auf Schriftgutobjekte (cmis:folder) und nicht auf Dateien anwendbar.

Folder folder = (Folder)session.getObject("[OBJECT-ID]"); Folder parent = folder.getFolderParent(); System.out.printf("Das Schriftgut '%s' befindet sich im Verzeichnis '%s' vom Typ '%s'", folder.getName(), parent.getName(), parent.getType().getDisplayName());

getObjectParents

Der oder die übergeordneten Ordner eines in einem Verzeichnis ablegbaren Objektes werden mittels dieser Funktion angegeben. Diese Funktion ist nur auf Dateien (cmis:document) anwendbar.

Document doc = (Document)session.getObject("[DATEI-PFAD]"); Folder folder = doc.getParents().get(0); System.out.printf("Elternobjekt des Dokuments '%s' ist '%s'\n", doc.getName(), folder.getName());

21

[Seite 22]

Beispiel

5 Beispiel

Im nachfolgenden Beispiel wird in zu einer bestehenden Akte mit der Kurzbezeichnung »cmis« ein neues internes Dokument hinzugefügt. Das interne Dokument hat den Objekttyp »Aktennotiz«. Anschließend wird in das erzeugte Dokument eine PDF-Datei aus der Dateiablage nach VIS kopiert. Das Beispiel deckt die Geschäftsfälle »Neues Schriftgutobjekt erstellen« sowie »Importieren/ Hochladen einer Datei« ab. Die Angaben in den eckigen Klammern [] müssen jeweils durch Ihre spezifischen Daten ersetzt werden.

// Aufbau einer Verbindung zur Datenbank SessionFactory sessionFactory = SessionFactoryImpl.newInstance(); Map<String, String> parameter = new HashMap<>();

// Übergabe der Parameter für die Verbindung: // - Anbindung per ATOMPUB // - URL des CMIS-Servers in der Form // "http://[Servername].[Domain].lan:[Port]/vis/ // [Mandanten-GUID]/cmis" ('cmis' = Name des Servlets)

// Festlegung des Typs der Anbindung per ATOMPUB parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());

// Übergabe der URL über die Atompub-Anbindung parameter.put(SessionParameter.ATOMPUB_URL, "http://srv-app1vis5dev.pd.lan:8084/vis/ F00C197F-EFD5-7362-7532-3AC09270D25C/cmis");

// Übergabe der Daten für die Nutzerauthentifizierung parameter.put(SessionParameter.USER, "[Nutzername]"); parameter.put(SessionParameter.PASSWORD,"[Passwort]");

// Sitzung herstellen Session session; Repository repo;

try { repo = sessionFactory.getRepositories(parameter).get(0); session = repo.createSession(); } catch (CmisConnectionException | CmisRuntimeException e) { // Fehlerbehandlung }

// Die Objekt-ID (941) wird hier übergeben.

22

[Seite 23]

Beispiel

Folder akte = (Folder)session.getObject(new ObjectIdImpl("941")); String objTypeName = session.getTypeDefinition ("-70").getDisplayName();

Map<String, Object> props = new HashMap<>();

// Setzen von einigen Metadaten

props.put("vis:kurzbez", args[0]); props.put(PropertyIds.NAME, args[0]);

// Objekttyp -70 entspricht der Aktennotiz

props.put(PropertyIds.OBJECT_TYPE_ID, "-70"); props.put("vis:betreff", args[1]);

Folder visDoc = akte.createFolder(props); String filePathStr = args[2]; Path filePath = Paths.get(filePathStr); String fileName = filePath.getFileName().toString();

if (Files.exists(filePath)) { Map<String, String> docProps = new HashMap<>(); docProps.put(PropertyIds.NAME, fileName); docProps.put(PropertyIds.OBJECT_TYPE_ID, "vis:document"); ContentStream contentStream = session.getObjectFactory().createContentStream(fileName, Files.size(filePath), "text/plain", Files.newInputStream(filePath));

visDoc.createDocument(docProps, contentStream, VersioningState.NONE); } else { System.out.printf("File '%s' does not exist.\n"); }

23

[Seite 24]

Beispiel

System.out.printf("Content of Akte '%s' with id %s:\n", akte.getName(), akte.getId());

ItemIterable fchds = akte.getChildren(); for (Iterator iterator = fchds.iterator(); iterator.hasNext();) { CmisObject next = iterator.next(); System.out.println(next.getName()); }

24

[Seite 25]

Verwendung der CMIS Workbench

Installation und Starten der CMIS Workbench

6 Verwendung der CMIS Workbench

Die CMIS Workbench ist ein OpenCMIS Client API, d. h. ein Tool mit einer grafischen Oberfläche zur Nutzung der CMIS-Schnittstelle. OpenCMIS sind Java-Bibliotheken, die auf der CMIS-Spezifikation basieren und zur Interoperabilität zwischen Content Management Systemen eine Vielzahl von häufig verwendeten Funktionen wie z. B. den lesenden Zugriff auf Inhalte von Schriftgutobjekten, sowie das Erstellen und Bearbeiten von Schriftgutobjekten und Metadaten bereitstellen.

In den folgenden Kapiteln werden die ersten Schritte für die Arbeit mit der CMIS Workbench anhand des OpenCMIS Client von Apache Chemistry erläutert.

6.1 Installation und Starten der CMIS Workbench

Die CMIS Workbench von Apache Chemistry ist ein OpenCMIS und kann kostenlos heruntergeladen werden. Die Nutzung ist kostenlos. Eine Downloadmöglichkeit finden Sie hier: https://archive.apache.org/dist/chemistry/opencmis/

Nach dem Herunterladen der ZIP-Datei entpacken Sie diese in einem entsprechenden Verzeichnisordner. Eine Installation ist nicht erforderlich. Sie können die CMIS Workbench über die Datei »workbench.bat« starten.

Wichtig:
Als Voraussetzung muss auf Ihrem lokalen Arbeitsrechner Java 8 installiert sein. Achten
Sie darauf, dass im Installationsverzeichnis von Java der Unterordner bin vorhanden ist.
Alternativ kann der Pfad zum bin-Verzeichnis in der Datei »workench.bat« entsprechend
ergänzt werden.
Beispiel:
Start /B "C:
Program Files
Eclipse Adoptium\jdk-8.0.322.6-hotspot\bin\j\avaw" %JAVA_OPTS%
%CUSTOM_JAVA_OPTS% -classpath ".;%~dp0\lib*"
org.apache.chemistry.opencmis.workbench.Workbench

25

[Seite 26]

Verwendung der CMIS Workbench

Verbindung zum VIS-Mandanten herstellen

6.2 Verbindung zum VIS-Mandanten herstellen

Nach dem Start der CMIS Workbench wird automatisch das Login-Dialogfenster zum Verbindungsaufbau mit einem VIS-Mandanten angezeigt.

Tipp:
Wird der Login-Dialog nicht angezeigt, können Sie diesen über die Funktion
»Connection« in der Menüleiste der CMIS Workbench öffnen.

So stellen Sie eine Verbindung zu einem VIS-Mandanten her:

1 - Geben Sie im oberen Bereich des »Login«-Dialoges die notwendigen Verbindungsdaten ein: • URL: Tragen Sie den Endpunkt Ihres VIS-Mandanten nach folgendem Muster ein: http[s]://[server]:[port]/vis/[Mandant-GUID]/cmis/ • Binding: Wählen Sie die Option »AtomPub« aus. • Username: Tragen Sie den VIS-Nutzer für die CMIS-Schnittstelle ein. • Password: Tragen Sie das Passwort für die Authentifizierung ein.

Wichtig:
Im Feld »Authentication« muss die Option »Standard« für die Authentifizierung mittels
Basic-Authentifizierung festgelegt sein. Diese Option ist standardmäßig aktiviert.

26

[Seite 27]

Verwendung der CMIS Workbench

Verbindung zum VIS-Mandanten herstellen

2 - Klicken Sie anschließend auf die Schaltfläche »Load Repositories«.

Zwischenergebnis: Eine Verbindung zum VIS-Mandanten wird hergestellt. Unterhalb der Schaltfläche »Load Repositories« wird eine Übersicht mit Informationen zum Mandanten angezeigt. Die »Login«-Schaltfläche wird aktiviert.

Abbildung 2: Login-Dialog der CMIS Workbench

3 - Um die Anmeldung am Mandanten abzuschließen, betätigen Sie die »Login«- Schaltfläche am Ende des Dialoges.

Ergebnis: Der Login-Dialog schließt sich und die Daten des Mandanten werden geladen.

Abbildung 3: Login-Dialog mit Verbindungsmandanten

Wichtig:
Da in VIS ein Repository einem Mandanten entspricht, ist nur ein Eintrag verfügbar, der automatisch vorausgewählt ist.

27

[Seite 28]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

6.3 Arbeiten mit der CMIS Workbench

Zum Arbeiten mit der CMIS Workbench können die CMIS-Funktionen mithilfe des integrierten Tools »Groovy Console« und über die Oberflächenfunktionen des CMIS- Clients ausgeführt werden.

Das Tool »GroovyConsole«

Für den Aufruf von CMIS-Funktionen via Skript dient das Tool »GroovyConsole«.

Dieses wird über die Schaltfläche »Console« in der Menüleiste der CMIS Workbench aufgerufen. Wählen Sie in der Liste den Eintrag »-Basic template-« aus. Alternativ kann das Tool auch mit Betätigung der Schaltfläche »Open Console« in der Registerkarte »Object« eines selektierten Objektes geöffnet werden.

Abbildung 4: Aufruf des Tools »GroovyConsole« über die CMIS Workbench

28

[Seite 29]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

In dem sich öffnenden Dialog »GroovyConsole« können Sie das gewünschte Groovy- Skript einspielen. Mit der Funktion »Execute Groovy Script« wird dieses anschließend ausgeführt. Das Ergebnis wird im unteren Bereich des Dialoges angezeigt.

Abbildung 5: Dialog »GroovyConsole« mit Skript

Tipp:
Alternativ kann das Skript im Dialog »GroovyConsole« über den Eintrag »Run« im
Menüpunkt »Script« ausgeführt werden.

Für die Ausführung von CMIS-Funktionen über das Tool »GroovyConsole« stehen Ihnen entsprechende Konfigurationsbeispiele im Kapitel 4 CMIS-Funktionen in VIS zur Verfügung.

Funktionen der CMIS Workbench

In der CMIS Workbench besteht alternativ die Möglichkeit, CMIS-Funktionen direkt über die Clientanwendung auszuführen. Hierfür stehen Ihnen in der Menüzeile der CMIS Workbench Funktionen zum u. a. Aufruf der Repository Info, Anzeige der Objekttypdefinitionen und Erstellen neuer Objekte zur Verfügung.

In den nachfolgenden Kapiteln werden Anwendungsbeispiele für grundlegende CMIS- Funktionalitäten unter Verwendung der Funktionen in der CMIS Workbench veranschaulicht.

29

[Seite 30]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

6.3.1 Informationen zum Mandanten anzeigen

Sobald die Anmeldung erfolgt und der Mandant verbunden ist, werden in der CMIS-Workbench die Inhalte des Mandanten angezeigt. Die Informationen des verbundenen Mandanten können Sie über die Funktion »Repository Info« in der Menüleiste der CMIS-Workbench einsehen.

Abbildung 6: Funktion »Repository Info« in der Menüleiste der CMIS Workbench

Nach Aufruf der Funktion wird der Dialog »Repository Info« mit einem Überblick zu den allgemeinen Informationen wie z. B. die Rootfolder-ID oder die unterstütze CMIS-Version sowie Funktionalitäten des Mandanten angezeigt.

Abbildung 7: Übersicht eines Mandanten nach Aufruf der Funktion »Repository Info«

30

[Seite 31]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

6.3.2 Anzeigen und Bearbeiten der Objekteigenschaften

Die Startseite der CMIS Workbench ist in einen linken und rechten Bereich unterteilt. Im linken Bereich sehen Sie die hierarchische Struktur der Geschäftsobjekte und können durch die Struktur navigieren. Der rechte Bereich ist mehrere Registerkarten unterteilt und zeigt Informationen zum aktuellen Objekt in der Hierarchie gruppiert an. Die Registerkarte »Properties« enthält die Eigenschaften des Objekts und entspricht in etwa der Eigenschaften- bzw. Deckblattansicht im VIS SmartClient bzw. VIS WebClient. Über die CMIS Workbench haben Sie die Möglichkeit u. a. die Eigenschaften eines Geschäftsobjekts zu bearbeiten oder nach Objekteigenschaften zu suchen.

Die Startseite der CMIS Workbench ist in die folgenden Bereiche unterteilt: • Im linken Bereich sehen Sie die hierarchische Struktur der Geschäftsobjekte und können durch die Struktur navigieren. • Der rechte Bereich ist in mehrere Registerkarten unterteilt und zeigt Informationen zum aktuellen Objekt in der Hierarchie gruppiert an.

Abbildung 8: Startseite der CMIS Workbench

31

[Seite 32]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

Öffnen von VIS-Objekten über die CMIS Workbench:

Über die Strukturansicht im linken Bereich der Anwendung können Sie das gewünschte Objekt mit einem einfachen Klick zur Bearbeitung auswählen. Die Objekte der untergeordneten Hierarchieebene werden durch einen Doppelklick auf das Geschäftsobjekt geöffnet.

Im Sucheingabefeld oberhalb der Strukturansicht wird der aktuelle Dateipfad angezeigt. Die CMIS-Ordner entsprechen der hierarchischen Struktur in VIS. Die Ebenen sind ähnlich der Strukturierung im Windows-Explorer durch Schrägstriche »/« voneinander getrennt. Die geöffneten Objekte sind durch ihre jeweilige Objekt-ID gekennzeichnet. Über die Schaltfläche »up« gelangen Sie zurück auf die nächsthöhere Hierarchieebene.

Abbildung 9: Aufruf eines VIS-Dokuments in der CMIS Workbench

Weiterhin haben Sie die Möglichkeit, Geschäftsobjekte, Dateien und Aufgaben gezielt aufzurufen. Diese Vorgehensweise bietet sich insbesondere an, wenn Sie über eine umfangreiche Ablagenstruktur verfügen. Die gesuchten Objekte werden in der CMIS Workbench mittels Objekt-ID abgefragt: • Schriftgutobjekte (Akten, Vorgänge, Dokumente) - Abfrage erfolgt auf Ablagenebene mithilfe des Pfad-Markers »a«. • Beispiel zum Abrufen eines Vorgangs: a:2/79/69 = Ablage:[Pool-ID]/[Objekt-ID Akte]/[Objekt-ID Vorgang] • Beispiel zum Abrufen eines Dokuments: a:2/79/69/-80 = Ablage:[Pool-ID]/[Objekt-ID Akte]/[Objekt-ID Vorgang]/ [Objekt-ID Dokument]

• Dateien - Abfrage erfolgt über den Dateipfad mithilfe des Pfad-Markers »d«. Dieser gibt an, dass ein Dateipfad folgt. • Beispiel: d:/165/Notizen_Antrag.docx = d:[Objekt-ID Dokument]/[Dateiname]

32

[Seite 33]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

• Aufgaben (Geschäftsgangverfügungen und Wiedervorlagen) • Beispiel zum Abrufen einer Geschäftsgangverfügung: ggv:233 • Beispiel zum Abrufen einer Wiedervorlage: wv:400

Nach Eingabe des Pfades in das Feld und Betätigung der Schaltfläche »go« wird die das Objekt, die Datei oder die Aufgabe in der CMIS Workbench aufgerufen.

Anzeigen der Objekteigenschaften

Die Eigenschaften des selektierten Objektes werden anschließend rechts auf der Registerkarte »Properties« angezeigt. Diese enthält die Eigenschaften des Objekts und entspricht in etwa der Deckblattansicht im VIS SmartClient bzw. VIS WebClient. Über die CMIS Workbench haben Sie die Möglichkeit u. a. die Eigenschaften eines Geschäftsobjekts zu bearbeiten. Grundsätzlich ist eine Abfrage nach allen CMIS- und VIS-spezifischen Objekteigenschaften bzw. -definitionen möglich.

So bearbeiten Sie die Eigenschaften eines Objekts:

1 - Wählen Sie auf der Startseite der CMIS Workbench in der Strukturansicht ein Schriftgutobjekt aus, dessen Metadaten Sie bearbeiten möchten.

2 - Wählen Sie anschließend die Registerkarte »Actions« aus.

3 - Klicken Sie auf die Schaltfläche »Open Property Editor«, um den Dialog mit den Eigenschaften des Geschäftsobjekts zu öffnen.

Zwischenergebnis: Der Dialog »Property Editor« mit einer Übersicht der Metadaten des Geschäftsobjektes wird angezeigt.

Abbildung 10: Öffnen des Dialogs zur Bearbeitung der Objekteigenschaften

33

[Seite 34]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

4 - Im Dialog »Property Editor« können Sie nur eine oder gleich mehrere Eigenschaften auf einmal bearbeiten. Geben Sie dafür einen neuen Wert in das Eingabefeld unterhalb der Objekteigenschaft ein, die Sie ändern möchten.

Zwischenergebnis: Der Eintrag der Auswahlliste rechts oberhalb des Eingabefeldes wird automatisch zu »Update« geändert.

5 - Betätigen Sie die Schaltfläche »Update«, um den geänderten Wert zu übernehmen.

Ergebnis: Der Dialog wird geschlossen. Der geänderte Wert wurde übernommen.

Abbildung 11: Ändern der Eigenschaften eines VIS-Dokuments

Bei der Umbenennung von Dateien über den Dialog »Property Editor« müssen Sie abschließend in der Strukturansicht der CMIS Workbench die Schaltfläche »go« ausführen, damit Ihnen die Änderung angezeigt wird.

Wichtig:
Im Dialog »Property Editor« werden aufgrund interner Datenbankstrukturen nicht nur
bearbeitbare Eigenschaften angezeigt. Zur Orientierung, welche Eigenschaften eines
ausgewählten Objektes bearbeitbar sind, können Sie den Bearbeitungsmodus des
Deckblatts eines Objektes im VIS SmartClient oder VIS WebClient nutzen. Sollten Sie
dennoch eine Eigenschaft auswählen, die nicht geändert werden kann, wird der
geänderte Wert nicht in die Datenbank übernommen.

34

[Seite 35]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

Suche nach Objekteigenschaften

Sie können in der CMIS Workbench auch gezielt nach Objekten über deren Eigenschaften suchen. Mithilfe einer Abfrage (engl. Query) erfolgt in der CMIS Workbench eine Auflistung der passenden Objekte.

So starten Sie eine Abfrage nach Objekteigenschaften:

1 - Wählen Sie auf der Startseite der CMIS Workbench in der Menüleiste die Schaltfläche Query aus.

Zwischenergebnis: Der Dialog CMIS Query wird geöffnet. In einem Eingabefeld ist bereits eine generelle Abfrage nach allen Eigenschaften von Dateien (cmis:document) angegeben.

Abbildung 12: Schaltfläche Query auf der Startseite der CMIS Workbench

35

[Seite 36]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

2 - Geben Sie im Eingabefeld des Dialoges »CMIS Query« eine Abfrage ein (z. B. Suche in Schriftgutobjekten mit cmis:folder nach dem Attribut Federführung).

Beispiel für eine Abfrage:

SELECT * FROM cmis:folder WHERE vis:federfuehrung = ID

3 - Klicken Sie anschließend auf die Schaltfläche »Query«.

Ergebnis: Die Abfrage wird ausgeführt. In einer Liste werden alle passenden Objekte in einer Tabelle aufgelistet.

Abbildung 13: Abfrage für die Suche nach Objekten über deren Federführung

36

[Seite 37]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

Tipp:
Sie haben die Möglichkeit eine Abfrage sowohl nach cmis:folder als auch vis:folder
durchzuführen.
Für die Suche in Datumsfeldern muss in der Abfrage der Zeitstempel angegeben werden.
Diese Abfrage ist insbesondere bei Zeitraumsuchen mit den Operatoren >,<, >=, <=
sinnvoll.
Syntax:
TIMESTAMP 'YYYY-MM-DDThh:mm:ss.SSS
TIMESTAMP 'YYYY-MM-DDT+hh:mm:ss’
Beispiel:
SELECT * FROM vis:folder where vis:erzeugt am >=TIMESTAMP '2023-05-27T16:23:02’

Standardmäßig werden in der Liste bis zu 100 Treffer angezeigt. Sie können die maximale Trefferanzahl im Dialog bei Bedarf begrenzen.

In der Tabelle sind die verfügbaren Eigenschaften in Spalten aufgeteilt. In den Spalten sind die entsprechenden Werte für CMIS- bzw. VIS-spezifische Attribute angegeben. Die nachfolgende Abbildung zeigt exemplarisch eine Trefferliste mit 10 Einträgen bei einer Suchabfrage nach dem Attributs Federführung mit der Nutzer-ID »6« in Schriftgutobjekten.

Abbildung 14: Dialog CMIS Query mit Trefferliste nach Durchführung einer Abfrage

37

[Seite 38]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

6.3.3 Erstellen neuer Objekte

Für die Erstellung neuer Objekte in VIS steht in der CMIS-Workbench die Funktion »Create Objekt« zur Verfügung.

Hierbei sind die Konfigurationen für den VIS-Mandanten und Rechte bzw. Verbote des VIS-Nutzers für die CMIS-Schnittstelle zu beachten.

Für das Anlegen von neuen Schriftgutobjekte (in CMIS Folder), Dateien (in CMIS Documents) sowie Geschäftsgangverfügungen und Wiedervorlagen (in CMIS Items) werden Ihnen als Orientierung am ausgewählten Objekt auf der Registerkarte »Object« angezeigt, welche Aktionen am Objekt durchgeführt werden können. Das Property »Allowable Actions« enthält eine Auflistung von zulässigen Funktionen am Objekt angezeigt. Diese werden werden über die Repository-ID und die Objekt-ID ermittelt und sind abhängig von der Schriftguthierarchie sowie Rechteverwaltung in VIS.

Einen Überblick der verfügbaren Funktionen in CMIS entnehmen Sie bitte dem Kapitel 4 CMIS-Funktionen in VIS ff..

Abbildung 15: Registerkarte »Object« eines CMIS-Folders mit Funktionen im Property Allowable Actions

38

[Seite 39]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

Im Folgenden wird exemplarisch die Erzeugung einer neuen Datei in VIS über die CMIS- Workbench erläutert.

So erstellen Sie eine neue Datei in CMIS:

1 - Navigieren Sie in der Baumstruktur im linken Bereich der Startseite der CMIS-Workbench zum entsprechenden Ordner (Folder).

2 - Wählen in der Menüleiste die Funktion »Create Object« aus.

3 - Wählen Sie in der Auswahlliste der verfügbaren Objekte den Eintrag »Document« aus.

Zwischenergebnis: Der Dialog zum Erstellen der neuen Datei wird geöffnet.

Abbildung 16: Funktion »Create Object« in der Menüleiste

Tipp:
Während CMIS-Documents Dateien in VIS entsprechen, können bei der Erstellung von
CMIS-Foldern neue Schriftgutobjekte (wie Akte, Vorgang und Dokument) angelegt
werden. Zum Erzeugen von Geschäftsgangverfügungen und Wiedervorlagen muss der
Eintrag »Item« ausgewählt werden.

39

[Seite 40]

Verwendung der CMIS Workbench

Arbeiten mit der CMIS Workbench

4 - Betätigen Sie im Dialog »Create Document« die Schaltfläche »Browse«.

5 - Wählen Sie im sich öffnenden Dialog zur Dateiauswahl die Datei aus, welche Sie im VIS-Mandanten hochladen möchten.

6 - Bestätigen Sie anschließend ihre Angaben mit Betätigung der Schaltfläche »Create Document«.

Tipp:
Im Feld »Name« wird automatisch der Dateiname inklusive der Dateiendung übernommen. Der Name kann nachträglich geändert werden.

Ergebnis: Der Dialog »Create Document« wird geschlossen. Nach dem Erstellen wird die neue Datei im ausgewählten Pfad angezeigt.

Abbildung 17: Dialog »Create Document« mit ausgewählter Datei

Wichtig:
Beachten Sie, dass beim Anlegen neuer Objekte in den jeweiligen Dialogen die Option »create in the current folder:/« ausgewählt ist. Die Option »create unfiled« wird nicht unterstützt und führt im weiteren Verlauf zu einer Fehlermeldung.

40

[Seite 41]

Anhang

Standard-Objekttypen und ihre IDs

7 Anhang

7.1 Standard-Objekttypen und ihre IDs

GeschäftsobjektartenID
Ablagevis:ablage
Akte1
Band2
Vorgang3
Untervorgang210
Dokument4
Umlaufmappe5
Strukturobjekt440

Tabelle 5: Übersicht über die Standardobjekttypen und ihre ID

Untertypen der AkteID
Spezialakte79
Sachakte, bördenintern62
Fachakte63

Tabelle 6: Übersicht über die Standarduntertypen der Akte und ihre ID

Untertypen des DokumentsID
Eingang12
Eingang mit Antwort13
Internes Schreiben14
Ausgangsschreiben15
Bescheid139, -81
FuB-Katalog-83, -84, -85
Untertypen des Dokuments »Eingang«ID
Antrag-51
Bauantrag9
Brief-50, 135, 138
Bürgerantrag8
Rechnung
FuB-Katalog-83, -84, -85
Weglegesache-82

41

[Seite 42]

Anhang

Standard-Objekttypen und ihre IDs

Untertypen des DokumentsID
Untertypen des Dokuments »Eingang mit Antwort«ID
Anfrage-60
Bestellung-61
Untertypen des Dokuments »Ausgangsschreiben«ID
Antwort-80
Bescheid139, -81
FuB-Katalog-83, -84, -85
Untertypen des Dokuments »Internes Schreiben«ID
4-Augen-Löschen-1261
Aktennotiz-70
Offlinearbeitsmappe-2101, -2100
Protokoll-71
Reorg.verzeichnis: Ablagen und Aktenplan-1114
Reorg.verzeichnis: Aufgaben-1910
Reorg.verzeichnis: Aufgabenkontrolle-1911
Reorg.verzeichnis: Federführung-1115
Reorg.verzeichnis: FuB-1251
Reorg.verzeichnis: Experte* (inaktiv)-1116
Aussonderung: Archivieren-1118, -1108
Aussonderung: Bewerten-1119, -1109
Aussonderung: Vernichten-1117, -1107
Aussonderungsverzeichnis-1111, -10941
FuB-Katalog-83, -84, -85
Löschverzeichnis-1112, -10944
Weglegeverzeichnis-1113

Tabelle 7: Übersicht über die Untertypen des Dokuments und ihre ID

42

[Seite 43]

Anhang

Standard-Objekttypen und ihre IDs

Untertypen des »Vorgangs«ID
Bauantrag69
Bürgerantrag68
Klage70
Verwaltungsintern110
Untervorgang210

Tabelle 8: Übersicht über die Untertypen des Vorgangs und ihre ID

Untertypen des »Korrespondenzschreibens«ID
Bescheid139, -81
Brief-50, 135, 138
Untertypen des »Korrespondenzeingangs«ID
Beschwerde137
Bitte136
Brief-50, 135, 138

Tabelle 9: Übersicht über die Untertypen der Korrespondenz und ihre ID

Untertypen der »Mappe«ID
4-Augen-Löschen-1261
Reorganisation: FuB-1250
Offlinearbeitsmappe-2101
Reorganisation: Ablagen und Aktenplan-1104
Reorganisation: Federführung-1105
Reorganisation: Aufgaben-1909
Reorganisation: Aufgabenkontrolle-1908
Reorganisation: Expertenmodus-1106
Aussonderungsmappe36
Aussonderung: Aussondern-1101
Aussonderung: Löschen-1102
Aussonderung: Bewerten-1119, -1109
Aussonderung: Archivieren-1118, -1108
Aussonderung: Vernichten-1117, -1107
Weglegen-1103

Tabelle 10: Übersicht über die Untertypen der Mappe und ihre ID

43

[Seite 44]

Anhang

Abkürzungsverzeichnis

7.2 Abkürzungsverzeichnis

CMISContent Management Interoperability Services
AIIMAssociation für Information and Image Management
ECMEnterprise Content Management
JSONJavaScript Object Notation
OASISOrganisation for the Advancement of Structured Information Standards
RESTREpresentational State Transfer
SOAPSimple Object Access Protocol
GGVGeschäftsgangverfügung
WVWiedervorlage

Tabelle 11: Verzeichnis der verwendeten Abkürzungen

44

[Seite 45]

Anhang

Abkürzungsverzeichnis

45

Alle Unterlagen dieser Ausschreibung