[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
| Version | Dokument | ||||
|---|---|---|---|---|---|
| 6.5 | Fachadministration Handbuch |
Tabelle 1: Begleitende Dokumente
1.2 Änderungsverzeichnis
| Version | Kommentar | ||||
|---|---|---|---|---|---|
| 6.5 | neue 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.
| Methode | Beschreibung | ||||
|---|---|---|---|---|---|
| GET | zum Abrufen von Daten | ||||
| POST | zum Erstellen neuer Objekte | ||||
| PUT | zum Bearbeiten und Aktualisieren von Daten und Objekten | ||||
| DELETE | zum 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.
| Funktionskategorie | Funktionsname | ||||
|---|---|---|---|---|---|
| Repository-Funktionen | getRepositories | ||||
| getRepositoryInfo | |||||
| getTypeChildren | |||||
| getTypeDescendants | |||||
| getTypeDefinition | |||||
| Object-Funktionen | createDocument | ||||
| createFolder | |||||
| createItem | |||||
| getObject | |||||
| getContentStream | |||||
| setContentStream | |||||
| deleteContentStream | |||||
| delete | |||||
| Navigation-Funktionen | getChildren | ||||
| 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äftsobjektarten | ID | ||||
|---|---|---|---|---|---|
| Ablage | vis:ablage | ||||
| Akte | 1 | ||||
| Band | 2 | ||||
| Vorgang | 3 | ||||
| Untervorgang | 210 | ||||
| Dokument | 4 | ||||
| Umlaufmappe | 5 | ||||
| Strukturobjekt | 440 |
Tabelle 5: Übersicht über die Standardobjekttypen und ihre ID
| Untertypen der Akte | ID | ||||
|---|---|---|---|---|---|
| Spezialakte | 79 | ||||
| Sachakte, bördenintern | 62 | ||||
| Fachakte | 63 |
Tabelle 6: Übersicht über die Standarduntertypen der Akte und ihre ID
| Untertypen des Dokuments | ID | ||||
|---|---|---|---|---|---|
| Eingang | 12 | ||||
| Eingang mit Antwort | 13 | ||||
| Internes Schreiben | 14 | ||||
| Ausgangsschreiben | 15 | ||||
| Bescheid | 139, -81 | ||||
| FuB-Katalog | -83, -84, -85 | ||||
| Untertypen des Dokuments »Eingang« | ID | ||||
| Antrag | -51 | ||||
| Bauantrag | 9 | ||||
| Brief | -50, 135, 138 | ||||
| Bürgerantrag | 8 | ||||
| Rechnung | |||||
| FuB-Katalog | -83, -84, -85 | ||||
| Weglegesache | -82 |
41
[Seite 42]
Anhang
Standard-Objekttypen und ihre IDs
| Untertypen des Dokuments | ID | ||||
|---|---|---|---|---|---|
| Untertypen des Dokuments »Eingang mit Antwort« | ID | ||||
| Anfrage | -60 | ||||
| Bestellung | -61 | ||||
| Untertypen des Dokuments »Ausgangsschreiben« | ID | ||||
| Antwort | -80 | ||||
| Bescheid | 139, -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 | ||||
|---|---|---|---|---|---|
| Bauantrag | 69 | ||||
| Bürgerantrag | 68 | ||||
| Klage | 70 | ||||
| Verwaltungsintern | 110 | ||||
| Untervorgang | 210 |
Tabelle 8: Übersicht über die Untertypen des Vorgangs und ihre ID
| Untertypen des »Korrespondenzschreibens« | ID | ||||
|---|---|---|---|---|---|
| Bescheid | 139, -81 | ||||
| Brief | -50, 135, 138 | ||||
| Untertypen des »Korrespondenzeingangs« | ID | ||||
| Beschwerde | 137 | ||||
| Bitte | 136 | ||||
| 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 | ||||
| Aussonderungsmappe | 36 | ||||
| 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
| CMIS | Content Management Interoperability Services |
|---|---|
| AIIM | Association für Information and Image Management |
| ECM | Enterprise Content Management |
| JSON | JavaScript Object Notation |
| OASIS | Organisation for the Advancement of Structured Information Standards |
| REST | REpresentational State Transfer |
| SOAP | Simple Object Access Protocol |
| GGV | Geschäftsgangverfügung |
| WV | Wiedervorlage |
Tabelle 11: Verzeichnis der verwendeten Abkürzungen
44
[Seite 45]
Anhang
Abkürzungsverzeichnis
45