DMS-Engine (Engine dms)
Der DMS Executor umfasst Jobs zum Anfragen und Bearbeiten von Indexdaten, DMS-Objekten und Mappen unter Berücksichtigung des Sicherheitssystems. Weiterhin existieren Jobs um das Sicherheitssystem auf Objektebene zu verwalten.
1. Objektverwaltung
1.1. Allgemeine Beschreibung der XML-Import-Jobs
Alle XML-Import-Jobs folgen demselben Schema und können zum großen Teil allgemein behandelt werden.
Sie besitzen dieselben Eingabeparameter (Flags, Options, XML) und im Wesentlichen dieselben Rückgabeparameter.
Über Flags wird das allgemeine Verhalten des Jobs gesteuert (z. B. Fehlerlistengenerierung oder XML-Validierung).
Über Options können bestimmte Überprüfungen (z. B. Schlüsselfeldprüfung) an- bzw. ausgeschaltet werden.
XML enthält die Daten, die das einzufügende Objekt beschreiben.
JobUserGUID ermöglicht es, den Benutzerkontext für diesen Job zu ändern.
1.1.1. Das Import-Schema
Das XML-Argument muss Base64-kodiert übergeben werden, da der Server anderenfalls Probleme mit Sonderzeichen oder UTF-16/UCS-4-Formaten hätte.
Zu der XML-Struktur existiert ein Schema, das mit dms.GetXMLSchema (Parameter Schema = "DMSData") abgerufen werden kann.
Werden Attribute gesetzt, die vom Job nicht ausgewertet werden sollen, sind Text-Attribute mit dem Leer-String "" und numerische Attribute mit -1 vorzubelegen.
<?xml version="1.0" encoding="UTF-8"?>
<DMSData>
<Archive internal_name="patient">
<ObjectType internal_name="medical_letter" type="DOCUMENT">
<Object>
<Fields>
<Field internal_name="firstname">Max</Field>
</Fields>
</Object>
</ObjectType>
</Archive>
</DMSData>
XML-Elemente
DMSData-
Wurzelelement. Über das optionale Attribut
query_languagelässt sich die Sprache für DMS-Bezeichner angeben (z. B."7"für Deutsch,"9"für Englisch). Wird das Attribut weggelassen oder auf"0"gesetzt, gilt die Server-Standardsprache. Archive-
Identifiziert den Schrank, in dem der Objekttyp liegt oder eingefügt werden soll. Wird kein Attribut angegeben, versucht der Server den Schrank anhand des Objekttyps zu ermitteln — dies geht jedoch zu Lasten der Performance. Identifikationsattribute:
internal_name(interner Schrankname),name(Schrankname),id(Objekttyp-ID),osguid(GUID). ObjectType-
Legt den Objekttyp des zu behandelnden Objekts fest. Das Attribut
typeist Pflicht und gibt an, ob es sich um einen Ordner (FOLDER), ein Register (REGISTER) oder ein Dokument (DOCUMENT) handelt. Identifikationsattribute:internal_name,name,id,table,osguid, oder eine gültige Kombination ausmaintypeundcotype(siehe Objekttyp-ID). Object-
Enthält Informationen zum konkret zu behandelnden Objekt. Bei Jobs, die ein bestehendes Objekt voraussetzen (z. B. dms.XMLUpdate), muss
object_idals Attribut angegeben werden. Für die Standortangabe (z. B. bei dms.XMLInsert) werdenregister_id,register_typeund/oderfolder_idverwendet. Bei Dokumenten kannmaintypegesetzt werden. Varianten von W-Dokumenten werden übervariantparent_id(ID des Elterndokuments) angegeben. Überconcurrency_timestamp(kombiniert mit dem FeldwertMODIFYTIME) kann geprüft werden, ob das Objekt seit der Abfrage von einem anderen Benutzer geändert wurde.sourceparent_idbestimmt beim Verschieben/Löschen von Dokumenten mit mehreren Standorten, welcher Standort betroffen ist. Fields-
Darf pro Objekt nur einmal vorhanden sein. Enthält die Liste der zu behandelnden Felder.
Field-
Beschreibt ein einzelnes Feld. Identifikationsattribute:
internal_name,name,dbname,sortpos,osguid. Der Elementtext enthält den zuzuweisenden Wert. Systemfelder werden über das Attributsystem="1"gekennzeichnet. Folgende Systemfelder können überFieldgesetzt werden:Datenbankname Interner Name Bedeutung OSOWNERBesitzer des Objektes
FOREIGNIDFremd-ID eines Verweises
SYSTEMIDSystem-ID eines Objektes
Über das optionale Attribut
field_functionkann ein berechneter Wert gesetzt werden:Attributwert Bedeutung NULLFeldwert wird als DB-NULL eingefügt (Feld leer)
Feldwert entspricht der internen ID des Objektes
USERFeldwert entspricht dem Namen des angemeldeten Benutzers
MultiFields-
Darf pro Objekt nur einmal vorhanden sein. Enthält die Liste der zu behandelnden Mehrfachfelder (nur bei Dokumenten erlaubt).
Multifield-
Identifiziert ein bestimmtes Mehrfachfeld. Identifikationsattribute:
internal_name,name,dbname,osguid. Page-
Bezeichnet eine bestimmte Seite des Mehrfachfelds; die Seitennummer steht im Attribut
id. Value-
Enthält den Wert für die zugeordnete Seite (als Elementtext).
TableFields-
Darf pro Objekt nur einmal vorhanden sein. Enthält die Liste der zu behandelnden Tabellenfelder.
TableField-
Identifiziert ein Tabellenfeld (Table Control). Identifikationsattribute:
internal_name,name,dbname,osguid. Row(innerhalb vonTableField)-
Beschreibt eine Zeile des Tabellenfelds (Zusammenfassung aller Spalten einer Zeile).
Field(innerhalb vonRow)-
Wert einer konkreten Spalte; Identifikation über
internal_name,nameoderdbname.Alternativ zur
Row/Field-Schreibweise können Zeilen durchColumns/Rows/Value-Elemente beschrieben werden: Columns-
Definiert die Spaltenreihenfolge für die folgende Werteliste.
Column-
Beschreibt eine Spalte; Identifikation über
internal_name,nameoderdbname. Rows-
Liste von
Row-Elementen. Row(innerhalb vonRows)-
Eine Zeile; die Reihenfolge der Werte entspricht der unter
Columnsdefinierten Spaltenreihenfolge. Value(innerhalb vonRow)-
Wert einer Spalte als Elementtext.
Remarks-
Liste von Notizen (
RemarkTextoderRemarkObject). RemarkText-
Notiztext für das Objekt (als Elementtext).
RemarkObject-
Verknüpft das Objekt über die Notizen mit einem anderen Objekt. Attribute:
object_id(ID des Objekts),object_type(Typ des Objekts).
1.1.2. Parameter Flags
Über Flags wird das allgemeine Verhalten des Jobs gesteuert.
Die Flags können addiert werden (z. B. 1 + 16 = 17 für Fehlerliste als Datei in UTF-16).
| Flag (dezimal) | Beschreibung |
|---|---|
|
Die Fehlerliste wird in Dateiform zurückgeliefert. |
|
Der Job liefert keine Fehlerliste zurück. |
|
Keine Validierung der XML-Daten gegen die XSD-Datei. |
|
Die mitgelieferten Dateien werden am Server nicht gelöscht. |
|
Die zurückgelieferte Fehlerliste wird in UTF-16 kodiert (Standard: UTF-8). |
1.1.3. Parameter Options
Über Options können bestimmte Überprüfungen aktiviert oder deaktiviert werden.
Der Wert ist eine Semikolon-separierte Liste im Format OPTION1=1;OPTION2=0;….
Deaktivierung kann zu erheblicher Performance-Steigerung führen.
| Option | Beschreibung | Default | Nutzbar in |
|---|---|---|---|
Gibt an, ob beim Update und der Variantenerzeugung anzuhängende Dateien vor ( |
|
||
Gibt an, ob das Dokument den Status „archivierbar" ( |
dms.XMLInsert: |
dms.XMLInsert, dms.XMLUpdate, dms.XMLCopy, dms.XMLUnknownToKnown |
|
Gibt an, ob das Dokument sofort archiviert wird ( |
|
||
Gibt an, ob zu einem sofort archivierten Dokument ( |
|
||
Benutzerrechte für das Objekt werden geprüft ( |
|
dms.XMLInsert, dms.XMLUpdate, dms.XMLMove, dms.XMLDelete, dms.XMLCopy, dms.XMLUnknownToKnown |
|
Es wird geprüft, ob alle übergebenen Katalogeinträge im Original-Katalog vorhanden sind ( |
|
||
Es wird geprüft, ob das angegebene Objekt an der angegebenen Position existiert ( |
|
dms.XMLInsert, dms.XMLUpdate, dms.XMLMove, dms.XMLDelete, dms.XMLCopy, dms.XMLUnknownToKnown |
|
Es wird geprüft, ob Schlüsselfelder eindeutig sind ( |
|
||
Es wird geprüft, ob alle Pflichtfelder gesetzt wurden ( |
|
||
Es wird geprüft, ob angegebene (Ziel-)Objekte (z. B. Ordner) existieren ( |
|
||
Es wird geprüft, ob keine Felder verändert wurden, für die keine Schreibrechte bestehen ( |
|
||
Gibt an, ob Objekte kaskadierend kopiert werden sollen, wenn sie Unterobjekte enthalten ( |
|
||
Gibt an, ob nur die Indexdaten kopiert werden ( |
|
||
Gibt an, ob Informationen zum Kopieren in die Historie eingetragen werden ( |
|
||
Gibt an, ob Objekte kaskadierend gelöscht werden sollen, auch wenn sie Unterobjekte enthalten ( |
|
||
Gibt an, ob das Löschen einer inaktiven Variante zum Löschen des gesamten Variantenbaums führt ( |
|
||
Gibt an, ob die letzte übermittelte Datei Volltextdaten für das Dokument enthalten soll ( |
|
||
Gibt an, ob das Objekt endgültig gelöscht werden soll (nicht in den Papierkorb, |
|
||
Gibt an, ob alle nicht gesetzten Felder mit den Standardwerten belegt werden sollen ( |
|
||
Gibt an, ob das Objekt in die Benutzer-Ablage eingefügt werden soll ( |
|
||
Gibt an, ob das Objekt in die Workflow-Ablage eingefügt werden soll ( |
|
||
Gibt an, ob ein bereits existierender Link nicht als Fehler gewertet werden soll ( |
|
||
Gibt an, ob ein Dokument nur einen neuen Standort erhalten soll ( |
|
||
Gibt an, ob bereits gespeicherte Dateien durch die übergebenen ersetzt ( |
dms.XMLInsert (Varianten): |
||
Gibt an, ob die übergebenen Mehrfachfelder die originalen ersetzen ( |
|
||
Gibt an, ob die übergebenen Notizen die originalen ersetzen ( |
|
||
Gibt an, ob die übergebenen Tabellenfelder die originalen ersetzen ( |
|
||
Gibt an, ob übergebene Strings abgeschnitten werden sollen, wenn sie länger sind als definiert ( |
|
||
Gibt an, ob das Objekt als typenlos in die Ablage eingefügt werden soll ( |
|
||
Gibt an, ob nicht angegebene Felder auf leer gesetzt werden sollen ( |
|
||
Gibt an, ob die Variante auf der gleichen Ebene ( |
|
||
Gibt an, ob die neue Variante im selben Schritt als „Aktive" gesetzt wird ( |
|
||
Gibt an, ob die neue Variante die geplante Retention-Zeit des Original-Dokuments übernehmen soll ( |
|
||
Gibt an, ob beim Verschieben eines Dokuments dieses von der Workflow-Ablage in die Benutzer-Ablage verschoben werden soll ( |
|
1.1.4. Parameter JobUserGUID
Über JobUserGUID kann der Benutzerkontext des XML-Jobs geändert werden.
Wird hier die GUID eines Benutzers angegeben, so werden alle Prüfungen (z. B. Zugriffsrechte) sowie Ablageoperationen mit dem angegebenen Benutzer durchgeführt.
| Diese Option ist nur verfügbar, wenn die Jobs serverseitig aus anderen Jobs heraus aufgerufen werden. Einem Client wird das Setzen dieser Option stets verweigert. |
1.1.5. Parameter File_N
Alternativ zur Dateiübertragung über den TCP-Stream können Dateipfade als Parameter File_0, File_1 usw. (aufsteigend) übergeben werden.
Der Parameter ist vom Typ STRING und enthält den vollständigen Dateipfad (lokal oder UNC-Notation).
Dies setzt voraus, dass der Aufrufer sich auf demselben Rechner wie der Server befindet und der Pfad vom Server mit den erforderlichen Rechten erreichbar ist.
Es kann entweder nur eine Dateiliste oder ausschließlich File_N-Parameter übergeben werden — eine Mischung beider Varianten ist nicht zulässig.
|
1.1.6. Rückgabewerte
Neben jobspezifischen Rückgabewerten liefert jeder Job eine Rückgabenummer.
Diese ist im Erfolgsfall 0. Bei Fehler kann die Nummer zur groben Qualifizierung genutzt werden;
für eine detaillierte Analyse ist die XML-Fehlerliste (Parameter DMSResult) erforderlich.
| Fehlernummer | Beschreibung |
|---|---|
|
Job erfolgreich ausgeführt. |
|
Allgemeiner Fehler (nicht näher spezifizierbar). |
|
Kein Schrank angegeben. |
|
Angegebener Schrank unbekannt. |
|
Kein Registertyp angegeben. |
|
Angegebener Registertyp unbekannt. |
|
Kein Dokumenttyp angegeben. |
|
Angegebener Dokumenttyp unbekannt. |
|
Das angegebene Register befindet sich nicht im angegebenen Ordner. |
|
Der angegebene Dokumenttyp ist in dem angegebenen Schrank nicht zugelassen. |
|
Benötigte Identifizierung des Ordners fehlt. |
|
Benötigte Identifizierung des Dokuments fehlt. |
|
Benötigte Identifizierung des Registers fehlt. |
|
Benötigte Identifizierung des Registers ist unbekannt. |
|
Benötigte Identifizierung des Ordners ist unbekannt. |
|
Benötigte Identifizierung des Dokuments ist unbekannt. |
|
Aktualisierung des Ordners fehlgeschlagen. |
|
Aktualisierung des Dokuments fehlgeschlagen. |
|
Aktualisierung des Registers fehlgeschlagen. |
|
Das Dokument wurde bereits archiviert. |
|
Das angegebene/benötigte Objekt ist unbekannt. |
|
Die ID des angegebenen Registers existiert nicht auf dem Archivserver. |
|
Der Feldname konnte nicht aufgelöst werden. |
|
Der Wert für ein gegebenes Feld ist nicht erlaubt. |
|
Die angegebene Objekt-ID ist ungültig. |
|
Die Pflichtfelder sind nicht gefüllt worden. |
|
Der angegebene Wert stimmt nicht mit dem Typ auf dem Archivserver überein. |
|
Die angegebene/benötigte Datei existiert nicht. |
|
Ein Übergabeparameter ist fehlerhaft oder fehlt vollständig. |
|
Der Benutzer besitzt die entsprechenden Rechte auf dem Archivserver nicht. |
|
Das Dokument besitzt keine Seiten. |
|
Es konnte kein Index vom Server bezogen werden. |
|
Das Verschieben von Ordnern ist nicht erlaubt. |
|
Die Beziehung zwischen Dokument und Register ist nicht erlaubt. |
|
Verweisdokumente können nicht ohne Angabe eines Standortes verschoben werden. |
|
Es sind keine Dokumentseiten erlaubt. |
|
Der angegebene Wert konnte im zugehörigen Katalog nicht gefunden werden. |
|
Das Schlüsselfeld ist nicht eindeutig. |
|
Es wurde versucht, ein schreibgeschütztes Feld zu setzen. |
|
Es wurde keine Dokumentliste angegeben. |
|
Das angegebene Objekt ist mit einem Workflow-Prozess verbunden. |
|
Die angefragte Funktionalität ist in der vorliegenden Version nicht implementiert. |
|
Beim Lesen der Objektdefinitionen vom ObjDefReader ist ein Fehler aufgetreten. |
|
Es konnte auf eine angeforderte Datei nicht zugegriffen werden. |
|
Das Objekt liegt im Papierkorb. |
|
Das Dokument liegt in einer Mappe. |
|
Die Rekurrierungstiefe ist zu groß, die Aktion wurde abgebrochen. |
|
Das Zielregister ist ein Kind des zu verschiebenden Registers. |
|
Es wurde eine System-ID, jedoch keine Foreign-ID angegeben. |
|
Einem Verweisdokument können keine Seiten hinzugefügt werden. |
|
Das Dokument kann nicht auf ein anderes Dokument verweisen, da es Seiten besitzt. |
|
Beim Parsen des XML-Textes ist ein Fehler aufgetreten. |
|
Bei der Validierung des XML-Textes ist ein Fehler aufgetreten. |
|
Der XML-Text ist unvollständig. |
|
Der angegebene Besitzer konnte nicht ermittelt werden. |
|
Der Objekttyp ist bei dieser Operation ungültig. |
|
Es darf nicht kaskadierend gelöscht werden, das Objekt besitzt jedoch noch Unterobjekte. |
|
Der Verweis wurde nicht gefunden. |
|
Das angegebene Systemfeld darf nicht vom Benutzer geändert werden. |
|
Ein Jobparameter fehlt. |
|
Der angegebene Parameterwert ist ungültig. |
|
Es ist für den Benutzer nicht möglich, die Rechteprüfung abzustellen. |
|
Für ein Tabellenfeld wurden mehr Werte angegeben als Spalten vorhanden sind. |
|
Beim Einfügen der Notiz-Objekte/-Texte ist ein Fehler aufgetreten. |
|
Ein XML-Element ist unbekannt. |
|
Ein Objekttyp ist auf dem DMS-Server nicht gefunden worden. |
|
Ein Objektfeld ist auf dem DMS-Server nicht gefunden worden. |
|
Der Job wurde auf Benutzeranfrage hin abgebrochen. |
|
Die angegebene Bedingung ist ungültig. |
|
Ein XML-Attribut ist fehlerhaft. |
|
Ein notwendiges XML-Attribut fehlt. |
|
Es dürfen nur Dokumente ausgecheckt werden. |
|
Das Dokument ist eingecheckt worden. |
|
Das Dokument ist ausgecheckt worden. |
|
Das Dokument wurde an einen anderen Benutzer ausgecheckt. |
|
Das Dokument wurde an eine andere Station ausgecheckt. |
|
Das Dokument kann nicht ausgecheckt werden, da es keine Seiten besitzt. |
|
Das Dokument befindet sich nicht in der Workflow-Ablage. |
|
Das Dokument befindet sich in der Workflow-Ablage. |
|
Die Elternvariante des Dokuments konnte nicht ermittelt werden. |
|
Es dürfen nur für W-Dokumente neue Varianten angelegt werden. |
|
Die Dokumentvariante konnte nicht ermittelt werden. |
|
Die Angaben für die Benutzerdaten sind nicht eindeutig. |
|
Eine konkurrierende Aktualisierung eines Objektes ist fehlgeschlagen. |
|
Die Anfrage wurde nicht gefunden. |
|
Die Kopie des Objektes existiert bereits an dem angegebenen Standort. |
|
Das Anfrageformat wird nicht unterstützt. |
|
Der Schrankname konnte nicht ausgelesen werden. |
|
Der Dokumentenname konnte nicht ausgelesen werden. |
|
Der Registername konnte nicht ausgelesen werden. |
|
Ein Ausdruck besitzt ein ungültiges Format. |
|
Der Sektionsname ist ungültig. |
|
Allgemeiner Fehler beim Auslesen der Anfrage. |
|
Unbekannter Anfragetyp. |
|
Die neue Variante wurde angelegt, konnte jedoch nicht auf „Aktiv" gesetzt werden. |
|
Die Anfrage konnte nicht bearbeitet werden. |
|
Das Verschieben bzw. Verlinken von Objekten ist systemweit gesperrt. |
|
Der Standort des Objektes konnte nicht ermittelt werden. |
|
Das Dokument existiert bereits an dem Standort. |
|
Das Kopieren von Objekten mit Schlüsselfeldern ist nicht erlaubt. |
|
Das angegebene Passwort ist falsch. |
|
Das neue und das alte Passwort unterscheiden sich nicht. |
|
Die Volltextanfrage enthält nur zu ignorierende Wörter. |
|
Es steht nicht genügend Speicher zur Verfügung. |
|
Der Zugriff auf eine Systemressource wurde verweigert. |
|
Im Job dms.XMLImport ist als Aktion bezüglich der Trefferzahl „Fehler" angegeben worden. |
1.1.7. Jobübergreifende Restriktionen
Datums- und Zeitformate
Datumsfelder können in folgenden Formaten importiert werden (TT = zweistelliger Tag, MM = Monat, JJ/JJJJ = zwei-/vierstelliges Jahr):
-
TTMMJJ -
TTMMJJJJ -
TT.MM.JJJJ
Zeitfelder werden im Format HH:MM:SS importiert.
Zeitstempel werden im Format TT.MM.JJJJ HH:MM:SS importiert (Datum und Uhrzeit durch ein Leerzeichen getrennt).
Besondere Feldtypen
-
Ein Kontrollkästchen darf nur die Werte
0oder1enthalten. -
Eine Optionsschaltfläche kann über den Namen der ersten Schaltfläche (nach Tabulatorreihenfolge) oder den Namen des Gruppenfeldes identifiziert werden. Erlaubte Werte beginnen bei
0. -
Die Feldtypen Patientenart, Seite, Geschlecht und Frage akzeptieren sowohl den ersten Buchstaben als auch den vollständig ausgeschriebenen Wert.
-
Dezimalwerte dürfen mit einem Plus- oder Minuszeichen beginnen; Vor- und Nachkommastellen können durch Punkt oder Komma getrennt werden.
-
In mehrzeiligen Textfeldern werden einzelne Zeilen durch Carriage Return + Line Feed getrennt; in XML durch die Kombination

. -
In einem mehrsprachigen Katalog müssen die technischen Werte (entsprechend den Datenbankwerten) hinterlegt werden.
1.1.8. Die XML-Fehlerliste
Bei einem Fehler wird im Rückgabeparameter DMSResult standardmäßig eine XML-Fehlerliste zurückgeliefert.
Optional kann diese auch als Rückgabedatei geliefert werden (Flags = 1).
| Die zuerst aufgeführten Fehler in der Liste sind die aussagekräftigsten. |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DMSData>
<Messages>
<Message Sourcename="oxjobdms">Das Feld >Tabelle - Spalte2< besitzt
einen Katalog; der Wert >7< konnte jedoch nicht im Katalog
gefunden werden</Message>
<Message Sourcename="oxjobdms">SAX Fehler: Common exception</Message>
<Message Sourcename="oxjobdms">Beim XML Import ist ein Fehler
aufgetreten</Message>
</Messages>
</DMSData>
2. Dokumentsperre
Jobs zum exklusiven Sperren und Freigeben von Dokumentdateien, um parallele Bearbeitung durch mehrere Benutzer zu verhindern.
3. Systemkonfiguration
Jobs zur Abfrage der Archivstruktur und Objekttypdefinitionen sowie konzeptionelle Referenzen.
-
Objekttyp-ID — Aufbau und Berechnung der numerischen
objecttypeidausmaintypeundcotype
6. Sicherheitssystem
6.1. Ausführliche Beschreibung
Mit der Version 4.50 steht, zusätzlich zum bestehenden Rechtesystem, ein Sicherheitssystem auf Objektebene (SSOL) zur Verfügung. Bei diesem System kann für jedes Objekt ein sogenannter Security Descriptor (SD) erzeugt werden, der auf eine Access Control List (ACL) — eine Liste von Zugriffssteuerungseinträgen (ACE — Access Control Entry) — verweist. Mit einem Zugriffssteuerungseintrag lassen sich für einen Benutzer oder eine Benutzergruppe Zugriffsberechtigungen für das Ändern von Indexdaten sowie das Ändern, Löschen und Exportieren von Objekten festlegen.
Im DMS Executor sind dafür Jobs zur Bearbeitung der Zugriffsstrukturen für dieses Sicherheitssystem implementiert. Weiterhin existiert mit dms.CheckPermission ein Job, der unabhängig vom verwendeten Rechtesystem die Zugriffsrechte auf ein bestimmtes Objekt prüft.
6.1.1. XML-Format der Zugriffssteuerungseinträge
Um die Liste der Zugriffssteuerungseinträge zu beschreiben, wird XML verwendet. Die Jobs dms.CreateSD, dms.ReadSD und dms.SetSD verwenden dasselbe XML-Schema, welches über dms.GetXMLSchema abgerufen werden kann.
<DMSAccess timestamp="" version="4.50">
<ACL ossd="" object_type="" object_id="">
<UserACE modify_index="0" modify_object="0" delete_object="0"
export_object="0" osuid=""/>
<GroupACE modify_index="0" modify_object="0" delete_object="0"
export_object="0" osgid=""/>
</ACL>
</DMSAccess>
<DMSAccess>-Attribute:
timestamp-
Erstellzeitpunkt der Access Control List (Format:
JJJJ-MM-DDTHH:MM:SS). version-
Produktversionsnummer.
<ACL>-Attribute:
ossd(STRING)-
GUID des Security Descriptor.
object_type(INT)-
Objekttyp.
object_id(INT)-
ID der Objektinstanz.
<UserACE>- bzw. <GroupACE>-Attribute:
osuid(STRING)-
GUID des Benutzers (
<UserACE>). osgid(STRING)-
GUID der Benutzergruppe (
<GroupACE>). modify_index(INT)-
Zugriffsart „Indexdaten schreiben":
0= nicht gesetzt,1= erlaubt,2= verboten. modify_object(INT)-
Zugriffsart „Objekt bearbeiten":
0= nicht gesetzt,1= erlaubt,2= verboten. delete_object(INT)-
Zugriffsart „Objekt löschen":
0= nicht gesetzt,1= erlaubt,2= verboten. export_object(INT)-
Zugriffsart „Objekt exportieren":
0= nicht gesetzt,1= erlaubt,2= verboten.
6.1.2. Glossar
- SSOL
-
Security System at Object Level — Sicherheitssystem auf Objektebene.
- ACE
-
Access Control Entry (Zugriffssteuerungseintrag) — enthält für einen Benutzer oder eine Benutzergruppe die erlaubten oder verbotenen Zugriffsarten.
- ACL
-
Access Control List (Zugriffssteuerungsliste) — Liste aller ACEs, die einem Objekt zugeordnet sind.
- SD
-
Security Descriptor — für jedes Objekt kann ein Security Descriptor erzeugt werden, welcher eine ACL identifiziert. Für Objekte mit SD gilt das SSOL; für Objekte ohne SD gilt das bisherige Rechtesystem auf Objekttypebene.
7. Mappen
7.1. Ausführliche Beschreibung
Diese Jobs dienen dem Anfragen und Bearbeiten von Mappen.
7.1.1. Portfolio-XML-Format
<Portfolios>
<Portfolio id="123" created="135233432" creator="jdoe"
recipient="muster" subject="Mustermappe" objtype="13072">
<Objects>
<Object objecttype_id="13072" id="12"/>
<Object objecttype_id="13072" id="34"/>
</Objects>
</Portfolio>
</Portfolios>
Das Wurzelelement <Portfolios> kann entfallen, wenn nur ein Eintrag definiert wurde.
<Portfolio>-Attribute:
id(INT)-
ID der Mappe.
created(INT)-
Zeitstempel der Erzeugung.
creator(STRING)-
Name des Anlegers.
recipient(STRING)-
Empfänger.
subject(STRING)-
Titel der Mappe.
objtype(INT)-
Objekttyp, auf den die Mappe eingeschränkt ist.
<Objects> enthält die Liste der Objekte (Ordner, Register, Dokumente) in der Mappe.
<Object>-Attribute:
objecttype_id(INT)-
Objekttyp.
id(INT)-
ID der Objektinstanz.
8. Benutzerbezogene Daten
8.1. Ausführliche Beschreibung
Die Jobs dieses Bereiches dienen der Verwaltung beliebiger benutzerbezogener Daten. Jeder Dateneintrag ist durch einen frei wählbaren Namen (maximale Länge 100), einen Typ und die Benutzer-ID gekennzeichnet. Die Benutzer-ID wird von den Jobs automatisch aus der ID des angemeldeten Benutzers bestimmt. Der Wert des Eintrags wird in ein BLOB-Feld geschrieben und kann beliebigen Inhalt haben.
| Der Typ ist nicht frei wählbar. Wird ein neuer Typ benötigt, muss dieser zunächst registriert werden. |
| Typ | Beschreibung |
|---|---|
|
Gespeicherte Anfragen |
|
Externe Programme |
|
AS.INI |
|
Ordnerstruktur unter „Desktop" |
|
Erweiterte Anfragen |
|
Daten aus jetziger aslisten.dat |
|
AS-Objekt im Desktopbereich |
|
Einträge für Listenfelder |
|
Reserviert |
|
Importkonfiguration dBase III |
|
Importkonfiguration dBase IV |
|
Importkonfiguration dBase V / ASCII mit Trennzeichen |
|
Importkonfiguration ASCII feste Feldlänge |
|
Reserviert |
|
Importkonfiguration XML linear |
|
Importkonfiguration MS Access |
|
Importkonfiguration Excel 3 |
|
Importkonfiguration Excel 4 |
|
Importkonfiguration Excel 5 |
|
Importkonfiguration Excel 8 |
|
Externe Importkonfiguration |
|
Importkonfiguration ODBC |
|
Reserviert für Importkonfigurationen |
|
Benutzer-/Gruppen-Exportkonfigurationen |
|
Benutzer-/Gruppen-Importkonfigurationen |
|
Konfiguration automatisches Löschen von Benutzerpapierkörben |
|
Client/Index-Scankonfiguration |
|
Stempelvorlagen für Folien |
|
Nächste Position für öffentliche gespeicherte Anfragen |
|
Favoriten für WF-Addon |
|
Einstellungen für Window-Gadget |
|
Benutzerbezogene Konfigurationsinformationen für Zusatzanwendungen |
9. Events
OS-Events sind serverseitig gespeicherte Scripts, die das Verhalten von enaio®-Clients und -Server steuern. Sie werden an Objekttypen oder die gesamte Anwendung gebunden und bei definierten Ereignissen ausgeführt. Jedes Event legt die Zielplattform (Desktop-Client, Server, WebClient), den UI-Kontext (Datenblatt, Trefferliste, Anfrage, Application) sowie die Scriptsprache (JavaScript oder VBScript) fest.
9.1. JSON-Struktur
Die Events werden als JSON-Objekt im Ausgabeparameter JSON (BASE64-kodiert) zurückgeliefert.
Das Wurzelobjekt enthält das Array osevents mit einem Element pro Event:
{
"osevents": [
{
"id": 9,
"event_code": 13,
"os_class_name": "2",
"object_class": 3,
"app_class": 1,
"is_js": false,
"os_event_params": "B6ACC477B34F41D6BDBEBE13025F243B",
"modify_user": "ROOT",
"last_modified": 1774686279,
"vb_code": "'OnClickButton"
},
{
"id": 1,
"event_code": 5000,
"os_class_name": "Application",
"object_class": 2,
"app_class": 2,
"is_js": true,
"os_event_params": "krn.EmptyJob",
"modify_user": "ROOT",
"last_modified": 1752738837,
"vb_code": "const value = rc.apps.inputParams.get(\"Status\").value;\nif (value !== \"freigegeben\") throw Error(\"Nicht freigegeben.\");"
},
{
"id": 38,
"event_code": 10005,
"os_class_name": "Application",
"object_class": 2,
"app_class": 2,
"is_js": true,
"os_event_params": "MeineServerBibliothek",
"modify_user": "ROOT",
"last_modified": 1774688890,
"vb_code": "// Einbindung: const utils = require(\"MeineServerBibliothek\")\nfunction formatDate(ts) { return new Date(ts).toISOString().slice(0, 10); }\nmodule.exports = { formatDate };"
}
]
}
9.2. Felder
| Feld | Typ | Abhängigkeit | Beschreibung |
|---|---|---|---|
integer |
— |
Interner Datenbankprimärschlüssel des Events in der Tabelle |
|
integer |
— |
Ereignistyp — legt fest, wann das Script ausgeführt wird. |
|
integer |
— |
Numerische Repräsentation des UI-Kontexts (redundant zum |
|
integer |
— |
Zielplattform (redundant zum |
|
string |
— |
Zielobjekttyp: |
|
boolean |
— |
Scriptsprache: |
|
string |
— |
Ausführbarer Scriptcode (JavaScript oder VBScript). |
|
string |
Optional |
Kontext-Parameter — Inhalt abhängig vom |
|
string |
— |
Login-Name des enaio®-Benutzers, der das Event zuletzt bearbeitet hat |
|
integer |
— |
Unix-Timestamp der letzten Änderung (Sekunden seit 01.01.1970 UTC) |
9.2.1. Feld id
Interner Datenbankprimärschlüssel des Events in der Tabelle osevents. Eindeutig pro Event-Instanz.
Abhängigkeiten: keine
9.2.2. Feld event_code
Legt den Typ des Ereignisses fest — also wann das Script ausgeführt wird. Der Wert entspricht der Spalte eventcode in der Tabelle oseventcodes und kann gegen diese aufgelöst werden, um den Ereignisnamen, den UI-Kontext (objectclass) und die Zielplattform (appclass) zu ermitteln.
SELECT eventname, objectclass, appclass, descrshort
FROM oseventcodes
WHERE eventcode = <event_code>
Abhängigkeiten:
-
Bestimmt die inhaltliche Bedeutung von
object_classundapp_class -
Bestimmt das erwartete Format von
os_event_params(siehe Feldos_event_params) -
Unabhängig von
is_js— derevent_codedefiniert nur den Auslösezeitpunkt, nicht die Scriptsprache. EinOnShow-Event (code 1) ist code 1 unabhängig davon, ob es als VBScript oder JavaScript hinterlegt ist. Ausnahmen: WebClient-Events (11000–11024) undJavascriptLibrary-Events (10005/10006) sind immeris_js=true.
Wertebereiche:
| Bereich | Name | Plattform | Kontext |
|---|---|---|---|
|
Standard Client-Events |
Client |
Datenblatt, Trefferliste, Anfrage, Application |
|
Sammeländerungs-Events |
Client |
Sammeländerung |
|
Schrank-Events |
Client |
Schrank |
|
Server-Events |
Server |
Application, Server-Events |
|
Globale Scripts & Bibliotheken |
Client / Server |
Objekttyp, Application |
|
WebClient-Events |
WebClient |
Datenblatt, Trefferliste, Application |
1 → OnShow (Client / Datenblatt)
13 → OnClickItem (Client / Datenblatt)
5000 → KernelBeforeJob (Server / Application)
5002 → JoblBeforeObject (Server / Server-Events)
10005 → JavascriptLibrary (Server / Application)
11021 → OnAddLocation (WebClient / Trefferliste)
9.2.3. Feld object_class
Numerische Repräsentation des UI-Kontexts, in dem das Event ausgelöst wird. Entspricht inhaltlich der Spalte objectclass in oseventcodes, jedoch als Integer kodiert. Der Wert ist redundant zum event_code — er lässt sich direkt daraus ableiten.
Abhängigkeiten: immer konsistent mit dem event_code, kein eigenständiger Informationsgehalt über event_code hinaus.
| Wert | Bedeutung |
|---|---|
|
Anfrage |
|
Application (server-/anwendungsweit) |
|
Datenblatt |
|
gespeicherte Anfrage (event_code 6, 7 — Wert aus Sequenz abgeleitet, nicht direkt beobachtet) |
|
Objekttyp |
|
Sammeländerung |
|
Schrank |
|
Server-Events |
|
Trefferliste |
3 → Event gehört zum Datenblatt-Kontext (OnShow, BeforeValidate, …)
9 → Event gehört zum Trefferlisten-Kontext (BeforeDelete, OnMove, …)
8 → Event gehört zu Server-Events (JoblBeforeObject, JobAfterObject)
9.2.4. Feld app_class
Gibt die Zielplattform des Events an — also auf welchem Client-Typ oder dem Server das Script ausgeführt wird. Entspricht der Spalte appclass in oseventcodes, jedoch als Integer kodiert. Ist wie object_class redundant zum event_code.
| Wert | Bedeutung |
|---|---|
|
Client (Desktop-Client) |
|
Server |
|
WebClient |
1 → Script läuft im Desktop-Client
2 → Script läuft auf dem Server
3 → Script läuft im WebClient (immer is_js=true)
9.2.5. Feld os_class_name
Identifiziert den Zielobjekttyp, an den das Event gebunden ist. Der Wert ist entweder der String "Application" (für server- oder anwendungsweite Events) oder ein numerischer String, der der globalen type_id eines Objekttyps entspricht.
Die type_id ergibt sich intern als (maintype << 16) | cotype und kann über dms.GetObjDef aufgelöst werden. Die zurückgelieferte asobjdef-XML enthält den internen Namen und den zugehörigen Schrank des Objekttyps.
Abhängigkeiten:
-
Maßgeblich ist
object_class: ist sie2(Application), enthältos_class_nameden Wert"Application"; bei anderen Werten (3Datenblatt,5Objekttyp etc.) enthält das Feld einetype_id -
GlobalObjectTypeScript(event_code10002) ist an einen konkreten Objekttyp gebunden (object_class=5) —os_class_nameenthält hier einetype_id, obwohlapp_class=1(Client) -
JavascriptLibrary Client(event_code10006) hatobject_class=2(Application) —os_class_nameist hier"Application", obwohlapp_class=1(Client) -
Die Faustregel „
app_class=1→ `type_id`" gilt daher nicht allgemein
"Application" → server-/anwendungsweites Event (KernelBeforeJob, OnSessionLogin, …)
"2" → type_id 2 → Objekttyp mit internem Namen "DefinitionTests"
"6488064" → type_id 6488064 → z.B. ein Register-Objekttyp in einem anderen Schrank
"262144" → type_id 262144 → z.B. ein Dokument-Objekttyp
9.2.6. Feld is_js
Gibt die Scriptsprache des in vb_code enthaltenen Codes an.
| Wert | Sprache | Laufzeit |
|---|---|---|
|
JavaScript (ECMAScript) |
enaio® JS-Engine ( |
|
VBScript |
Legacy enaio® VBScript-Engine |
Abhängigkeiten:
-
WebClient-Events (
app_class=3) sind immeris_js=true -
JavascriptLibrary-Events (code 10005/10006) sind immeris_js=true
true → JavaScript-Event, nutzt rc.apps.inputParams, rc.apps.outputParams, etc.
false → VBScript-Event, Legacy-API
9.2.7. Feld vb_code
Enthält den ausführbaren Scriptcode des Events. Trotz des Feldnamens vb_code kann der Inhalt sowohl VBScript (wenn is_js=false) als auch JavaScript (wenn is_js=true) sein.
Abhängigkeiten:
-
Scriptsprache wird durch
is_jsbestimmt -
Bei JavaScript steht die
rc-API zur Verfügung (rc.apps,rc.lib,rc.com) -
Bei
JavascriptLibrary-Events (code 10005/10006) enthält das Feld wiederverwendbaren Bibliothekscode, der überrequire("<os_event_params>")eingebunden wird
9.2.8. Feld os_event_params
Optionaler Kontext-Parameter — der Inhalt ist abhängig vom event_code. Das Feld ist leer, wenn kein spezifischer Kontext konfiguriert wurde (z.B. bei Events, die für den gesamten Objekttyp gelten).
| Event-Code(s) | Event-Name(n) | Inhalt | Bedeutung |
|---|---|---|---|
|
|
Job-Name |
Script wird nur bei diesem spezifischen Job ausgeführt |
|
|
Job-Name |
Script wird nur bei diesem spezifischen Job ausgeführt |
|
|
Feld-GUID (Button) |
Auflösbar über dms.GetObjDef → Feld mit übereinstimmender |
|
|
Feld-GUID |
Auflösbar über dms.GetObjDef → Feld mit übereinstimmender |
|
|
Feld-GUID |
Auflösbar über dms.GetObjDef → Feld mit übereinstimmender |
|
|
Feld-GUID (PageControl) |
Auflösbar über dms.GetObjDef → PageControl-Feld mit übereinstimmender |
|
|
Bibliotheksname |
Name, unter dem die Bibliothek per |
alle anderen |
— |
leer ( |
Event gilt für den gesamten Objekttyp ohne Feldeinschränkung |
GUIDs in os_event_params entsprechen dem Attribut osguid eines Feldes in der asobjdef-XML, die über dms.GetObjDef abgerufen wird. Der zugehörige Objekttyp ist über os_class_name (→ type_id) bestimmbar.
"" → kein spezifisches UI-Element (gilt für gesamten Objekttyp)
"krn.EmptyJob" → KernelBeforeJob: nur bei Ausführung von krn.EmptyJob
"std.DoArchive" → JoblBeforeObject: nur bei Archivierung (std.DoArchive)
"B6ACC477B34F41D6BDBEBE13025F243B" → GUID eines Button-Feldes (OnClickItem)
"AD61A45160D24D9CB48E9F5BA399563D" → GUID eines Eingabefeldes (OnFocusGained)
"329C7E04A5CC4BC3AFF2F8798808914A" → GUID eines PageControl-Feldes (OnEnterPage / OnLeavePage)
"MeineServerBibliothek" → Bibliotheksname für Server-JavascriptLibrary
"MeineClientBibliothek" → Bibliotheksname für Client-JavascriptLibrary
9.3. Event-Codes
Die Event-Codes entsprechen der Spalte eventcode in der Datenbanktabelle oseventcodes und können über folgende Abfrage aufgelöst werden:
SELECT eventname, objectclass, appclass, descrshort
FROM oseventcodes
WHERE eventcode = <event_code>
Die Nummerierung der Event-Codes ist nicht lückenlos. Code 38 existiert nicht (Sequenz springt von 37 zu 39). Im Bereich Globale Scripts existieren 10003 und 10004 nicht (Sequenz springt von 10002 zu 10005). Diese Lücken sind systembedingt und kein Fehler.
|
9.3.1. Standard Client-Events (1–43) — Desktop-Client
| Code | Name | Beschreibung |
|---|---|---|
|
|
Nachdem das Datenblatt geöffnet und mit Werten gefüllt wurde |
|
|
Vor der Validierung der Daten durch den Client |
|
|
Nach erfolgreichem Speichern |
|
|
Wenn ein Menüelement oder eine Schaltfläche angeklickt wurde |
|
|
Wenn eine Seite des Page-Controls aktiviert wird |
|
|
Vor dem Abbrechen des Datenblattes |
|
|
Wenn der Eingabefokus in ein Control gesetzt wird |
|
|
Wenn die Eingabe in ein Control abgeschlossen ist |
|
|
Bevor einem ListControl eine Zeile hinzugefügt wird |
|
|
Bevor aus einem ListControl eine Zeile entfernt wird |
|
|
Nach der Validierung der Daten durch den Client |
|
|
Wenn eine andere Seite des Page-Controls aktiviert wird |
|
|
Wenn der Fokus in eine Zelle eines TabellenControls gesetzt wird |
|
|
Wenn die Eingabe in eine Zelle eines TabellenControls abgeschlossen ist |
| Code | Name | Beschreibung |
|---|---|---|
|
|
Bevor die eigentliche Anfrage durchgeführt wird |
| Code | Name | Beschreibung |
|---|---|---|
|
|
Nachdem eine Anfrage beendet wurde |
|
|
Bevor ein Objekt gelöscht wird |
|
|
Nachdem ein Objekt gelöscht wurde |
|
|
Bevor ein Dokument oder Ordner geöffnet wird |
|
|
Wenn ein Objekt per Drag & Drop innerhalb eines Schrankes verschoben wird |
|
|
Wenn ein Objekt per Drag & Drop kopiert und ein neuer Standort hinzugefügt wird |
|
|
Vor dem Senden des Dokuments zum Applikationsserver |
|
|
Nach dem Senden des Dokuments zum Applikationsserver |
|
|
Bevor auf einem Dokument „Auschecken zurücknehmen" ausgeführt wird |
|
|
Vor dem Wiederherstellen eines Objektes aus dem Papierkorb |
|
|
Nach dem Wiederherstellen eines Objektes aus dem Papierkorb |
|
|
Wenn ein Objekt per Drag & Drop in einen anderen Schrank verschoben wird |
|
|
Wenn eine Kopie von einem Dokument oder Register erzeugt wird |
| Code | Name | Beschreibung |
|---|---|---|
|
|
Bevor eine gespeicherte Anfrage gestartet wurde |
|
|
Nachdem eine gespeicherte Anfrage beendet wurde |
|
|
Nachdem sich der Benutzer angemeldet hat |
|
|
Bevor sich der Benutzer ausloggt |
|
|
Wenn eine voreingestellte Uhrzeit erreicht ist |
|
|
Nachdem der Client fertig initialisiert ist |
|
|
Bevor der Client geschlossen wird |
|
|
Vor dem Verlinken zweier Objekte |
|
|
Nach dem Verlinken zweier Objekte |
|
|
Vor dem Löschen zweier verlinkter Objekte |
|
|
Nach dem Löschen zweier verlinkter Objekte |
|
|
Nachdem ein Eintrag in einer Trefferliste ausgewählt wurde |
|
|
Nach einer Serverbenachrichtigung |
|
|
Bevor der Relationsdialog geöffnet wird |
9.3.2. Sammeländerungs-Events (100–104) — Desktop-Client
| Code | Name | Beschreibung |
|---|---|---|
|
|
Vor der Validierung der Daten in der Sammeländerung |
|
|
Nachdem das Sammeländerungs-Datenblatt geöffnet wurde |
|
|
Wenn ein Menüelement oder eine Schaltfläche angeklickt wurde |
|
|
Wenn eine Seite des Page-Controls aktiviert wird |
|
|
Nach der Validierung der Daten in der Sammeländerung |
9.3.3. Schrank-Events (200) — Desktop-Client
| Code | Name | Beschreibung |
|---|---|---|
|
|
Nach dem Drag & Drop einer Datei aus dem Dateisystem in einen Ordner |
9.3.4. Server-Events (5000–5012) — Server
| Code | Name | Kontext | Beschreibung |
|---|---|---|---|
|
|
Application |
Vor der Ausführung eines Jobs |
|
|
Application |
Nach der Ausführung eines Jobs |
|
|
Server-Events |
Vor der Bearbeitung eines Objektes eines bestimmten Objekttyps |
|
|
Server-Events |
Nach der Bearbeitung eines Objektes eines bestimmten Objekttyps |
|
|
Application |
Bevor ein Archivlauf beginnt |
|
|
Application |
Bevor ein Medium erstmalig beschrieben wird |
|
|
Application |
Bevor ein Medium innerhalb eines Archivlaufes beschrieben wird |
|
|
Application |
Nachdem die Archivierung auf einem Medium abgeschlossen ist |
|
|
Application |
Nachdem ein Medium endgültig abgeschlossen wurde |
|
|
Application |
Am Ende der Archivierung |
|
|
Application |
Wenn ein Fehler in die Rep-Datei geschrieben wird |
|
|
Application |
Bei jedem Eintrag in die Historie eines Objektes |
|
|
Application |
Bei jedem Anmeldeversuch |
9.3.5. Globale Scripts & Bibliotheken (10000–10006) — Client / Server
| Code | Name | Plattform | Beschreibung |
|---|---|---|---|
|
|
Client |
Wird an jedes andere Client-Script angehängt |
|
|
Server |
Wird an jedes andere Server-Script angehängt |
|
|
Client |
Wird an jeden Objekttyp gehängt |
|
|
Server |
Wiederverwendbare JS-Bibliothek, einbindbar per |
|
|
Client |
Wiederverwendbare JS-Bibliothek, einbindbar per |
9.3.6. WebClient-Events (11000–11024) — WebClient
| Code | Name | Beschreibung |
|---|---|---|
|
|
Nachdem das Datenblatt geöffnet und mit Werten gefüllt wurde |
|
|
Vor der Validierung der Daten |
|
|
Nach erfolgreichem Speichern |
|
|
Wenn ein Menüelement oder eine Schaltfläche angeklickt wurde |
|
|
Vor dem Abbrechen des Datenblattes |
|
|
Wenn der Eingabefokus in ein Control gesetzt wird |
|
|
Wenn die Eingabe in ein Control abgeschlossen ist |
|
|
Bevor einem ListControl eine Zeile hinzugefügt wird |
|
|
Bevor aus einem ListControl eine Zeile entfernt wird |
|
|
Nach der Validierung der Daten |
|
|
Wenn eine andere Seite des Page-Controls aktiviert wird |
|
|
Wenn eine Seite des Page-Controls aktiviert wird |
|
|
Wenn der Fokus in eine Zelle eines TabellenControls gesetzt wird |
|
|
Wenn die Eingabe in eine Zelle eines TabellenControls abgeschlossen ist |
| Code | Name | Beschreibung |
|---|---|---|
|
|
Nachdem eine Anfrage beendet wurde |
|
|
Bevor ein Dokument oder Ordner geöffnet wird |
|
|
Wenn ein Objekt per Drag & Drop innerhalb eines Schrankes verschoben wird |
|
|
Wenn ein Objekt per Drag & Drop kopiert und ein neuer Standort hinzugefügt wird |
|
|
Wenn eine Kopie von einem Dokument oder Register erzeugt wird |
|
|
Bevor ein Objekt gelöscht wird |
|
|
Nachdem ein Objekt gelöscht wurde |
| Code | Name | Beschreibung |
|---|---|---|
|
|
Wird an jedes andere WebClient-Script angehängt |
|
|
Wird an jeden Objekttyp gehängt |
|
|
Bevor die eigentliche Anfrage durchgeführt wird |
|
|
Nachdem sich der Benutzer angemeldet hat |
9.4. Abhängigkeitsdiagramm
┌─────────────┐
│ event_code │
└──────┬──────┘
│
├──► object_class Numerische Repräsentation des UI-Kontexts
│ (redundant, direkt aus event_code ableitbar)
│
├──► app_class Zielplattform
│ 1 = Client │ 2 = Server │ 3 = WebClient
│
└──► os_event_params Format abhängig vom event_code
│
├── KernelBeforeJob / KernelAfterJob ──────► Job-Name (z.B. "krn.EmptyJob")
├── JoblBeforeObject / JobAfterObject ──────► Job-Name (z.B. "std.DoArchive")
├── OnClickItem ────────────────────────────► Feld-GUID (Button)
├── OnFocusGained / OnValueChanged ─────────► Feld-GUID (Eingabefeld)
├── OnEnterPage / OnLeavePage ──────────────► Feld-GUID (PageControl)
├── JavascriptLibrary ──────────────────────► Bibliotheksname (für require())
└── alle anderen ───────────────────────────► leer
┌────────────────┐
│ os_class_name │
└───────┬────────┘
│
├── "Application" ──► server-/anwendungsweites Event, kein Objekttyp-Bezug
│
└── "<integer>" ──► type_id ──► dms.GetObjDef (asobjdef-XML)
└──► Objekttyp (interner Name, Schrank)
┌──────────────────────────────────────┐
│ os_event_params (wenn GUID-Format) │
└──────────────────┬───────────────────┘
│
└──► dms.GetObjDef (asobjdef-XML)
└──► Feld mit übereinstimmender osguid
└──► Bezeichnung, interner Name, Control-Typ
11. DMS-Referenz
11.1. Systemfelder
Folgende Systemfelder können in XML-Anfragen einbezogen werden.
11.1.1. Allgemeine Objektfelder
OBJECT_ID
Interner Name |
|
osguid |
1100 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Interne ID des Objektes. Kann im XML-Import über das Attribut |
OBJECT_COUNT
Interner Name |
|
osguid |
1101 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Anzahl der Dokumentdateien (Seiten) eines Dokumentes. |
OBJECT_FLAGS
Interner Name |
|
osguid |
1102 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Statusflags des Dokumentes, z. B. ob das Dokument archivierbar ist oder bereits archiviert wurde. |
OBJECT_AVID
Interner Name |
|
osguid |
1103 |
DB |
|
Typ |
Text |
Länge |
255 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Benutzername des Archivars, der das Dokument archiviert hat. |
OBJECT_AVDATE
Interner Name |
|
osguid |
1104 |
DB |
|
Typ |
Datum |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Datum der Archivierung des Dokumentes. |
OBJECT_CRID
Interner Name |
|
osguid |
1105 |
DB |
|
Typ |
Text |
Länge |
255 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Benutzername des Erstellers des Objektes. |
OBJECT_CRDATE
Interner Name |
|
osguid |
1106 |
DB |
|
Typ |
Datum |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Erstellungsdatum des Objektes. |
OBJECT_TIME
Interner Name |
|
osguid |
1107 |
DB |
|
Typ |
Zeitstempel |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Zeitstempel des Objektes (Zeitpunkt der letzten Indexdatenänderung). |
OBJECT_MAIN
Interner Name |
|
osguid |
1108 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Haupttyp des Dokumentes, z. B. |
OBJECT_CO
Interner Name |
|
osguid |
1109 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Untertyp des Dokumentes. |
OBJECT_MEDDOCID
Interner Name |
|
osguid |
1110 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
ID des Archivierungsmediums der Dokumentdatei. |
OBJECT_MEDDIAID
Interner Name |
|
osguid |
1111 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
ID des Archivierungsmediums der Vorschaudatei (Dia). |
OBJECT_MEDDOCNA
Interner Name |
|
osguid |
1112 |
DB |
|
Typ |
Text |
Länge |
24 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Mediumname der Dokumentdatei auf dem Archivierungsmedium. |
OBJECT_MEDDIANA
Interner Name |
|
osguid |
1113 |
DB |
|
Typ |
Text |
Länge |
24 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Mediumname der Vorschaudatei (Dia) auf dem Archivierungsmedium. |
OBJECT_LINKS
Interner Name |
|
osguid |
1114 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Anzahl der Verknüpfungen des Objektes. |
OBJECT_VERID
Interner Name |
|
osguid |
1115 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Versionsnummer des Dokumentes. |
OBJECT_LOCKUSER
Interner Name |
|
osguid |
1116 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Sperrstatus des Dokumentes. Mögliche Anzeigewerte: |
OBJECT_SYSTEMID
Interner Name |
|
osguid |
1117 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
System-ID des Objektes. Kann im XML-Import gesetzt werden, um ein Objekt einem externen System zuzuordnen. Wird auch zum Setzen von Verweisdokumenten per dms.XMLUpdate verwendet. |
OBJECT_MODIFYTIME
Interner Name |
|
osguid |
1118 |
DB |
|
Typ |
Zeitstempel |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Zeitstempel der letzten Änderung am Objekt. |
OBJECT_MODIFYUSER
Interner Name |
|
osguid |
1119 |
DB |
|
Typ |
Text |
Länge |
256 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Benutzername des letzten Bearbeiters des Objektes. |
OBJECT_FOREIGNID
Interner Name |
|
osguid |
1124 |
DB |
|
Typ |
Text |
Länge |
248 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Fremd-ID eines Verweisdokumentes. Wird per dms.XMLUpdate gesetzt oder mit |
OBJECT_USERGUID
Interner Name |
|
osguid |
1125 |
DB |
|
Typ |
Text |
Länge |
32 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
GUID des Eigentümers des Objektes. Im XML-Import wird der Eigentümer über den Benutzernamen (nicht die GUID) gesetzt. Der Anzeigetext enthält den Namen; die GUID wird als |
OBJECT_DELETED
Interner Name |
|
osguid |
1126 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Markierung für in den Papierkorb verschobene Objekte. |
OBJECT_INDEXHISTFLAGS
Interner Name |
|
osguid |
1127 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Flags zur Steuerung der Indexdaten-Historisierung. |
OBJECT_DOCHISTFLAGS
Interner Name |
|
osguid |
1128 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Flags zur Steuerung der Dokumentdatei-Historisierung. |
OBJECT_OSSD
Interner Name |
|
osguid |
1129 |
DB |
|
Typ |
Text |
Länge |
32 |
Verfügbar bei |
Ordner, Register, Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
ID des Security Descriptors des Objektes. Wird von den Zugriffssteuerungs-Jobs dms.SetSD, dms.ReadSD und dms.CreateSD verwendet. |
OBJECT_MIMETYPEID
Interner Name |
|
osguid |
1900 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
MIME-Typ-ID der Dokumentdatei. Verweist auf die über dms.GetOsMimetypes abrufbare MIME-Typ-Liste. |
OBJECT_FILESIZE
Interner Name |
|
osguid |
1902 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Größe der Dokumentdatei in Bytes. |
OBJECT_DOCPAGECOUNT
Interner Name |
|
osguid |
— |
DB |
— |
Typ |
Zahl |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Anzahl der realen Dokumentseiten. |
OBJECT_RETENTION_PLANNED
Interner Name |
|
osguid |
1903 |
DB |
|
Typ |
Datum |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Geplantes Aufbewahrungsenddatum des Dokumentes (vor Bestätigung durch den Benutzer). |
OBJECT_LOCATIONSCOUNT
Interner Name |
|
osguid |
1993 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Anzahl der Ablageorte eines Dokumentes bei Mehrfach-Ablage. |
OBJECT_RETENTION
Interner Name |
|
osguid |
1904 |
DB |
|
Typ |
Datum |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Verbindliches Aufbewahrungsenddatum des Dokumentes. Dokumente dürfen vor Ablauf dieses Datums nicht gelöscht werden. |
OBJECT_SIGNSTATE
Interner Name |
|
osguid |
1906 |
DB |
|
Typ |
Zahl |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Signaturzustand des Dokumentes. |
11.1.2. Stammdaten-Felder
STAMM_ID
Interner Name |
|
osguid |
1000 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
— |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Interne ID der Ordner-Stammdaten. |
STAMM_TIME
Interner Name |
|
osguid |
1001 |
DB |
|
Typ |
Zeitstempel |
Länge |
10 |
Verfügbar bei |
— |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Zeitstempel der Ordner-Stammdaten. |
STAMM_LINKS
Interner Name |
|
osguid |
1002 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
— |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Anzahl der Verknüpfungen in den Ordner-Stammdaten. |
11.1.3. Registerfelder
REG_ID
Interner Name |
|
osguid |
1120 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
Interne ID des Registers. |
REG_STAID
Interner Name |
|
osguid |
1121 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
ID des übergeordneten Ordners (Stamm-ID) des Registers. |
REG_PARID
Interner Name |
|
osguid |
1122 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Ja |
Beschreibung |
ID des übergeordneten Registers bei hierarchisch verschachtelten Registern. |
11.1.4. Strukturdaten-Felder
SDSTA_ID
Interner Name |
|
osguid |
1130 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Ordner-ID (Stamm-ID) in den Strukturdaten des Dokumentes. |
SDOBJ_ID
Interner Name |
|
osguid |
1131 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Objekt-ID in den Strukturdaten des Dokumentes. |
SDOBJTYPE
Interner Name |
|
osguid |
1132 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Objekttyp in den Strukturdaten des Dokumentes. |
SDREG_ID
Interner Name |
|
osguid |
1133 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Register-ID in den Strukturdaten des Dokumentes. |
SDDEL
Interner Name |
|
osguid |
1134 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Löschmarkierung in den Strukturdaten des Dokumentes. |
SDTIME
Interner Name |
|
osguid |
1135 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Zeitstempel in den Strukturdaten des Dokumentes. |
SDREG_TYPE
Interner Name |
|
osguid |
1136 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Registertyp in den Strukturdaten des Dokumentes. |
11.1.5. Ordner- und Registerbezugsfelder
FOLDERID
Interner Name |
|
osguid |
1181 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
ID des übergeordneten Ordners des Registers. |
FOLDERTYPE
Interner Name |
|
osguid |
1182 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Typ des übergeordneten Ordners des Registers. |
REGISTERID
Interner Name |
|
osguid |
1183 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
ID des Registers, in dem das Objekt abgelegt ist. |
REGISTERTYPE
Interner Name |
|
osguid |
1184 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Typ des Registers, in dem das Objekt abgelegt ist. |
PARENTREGID
Interner Name |
|
osguid |
1185 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
ID des übergeordneten Registers bei hierarchisch verschachtelten Registern. |
PARENTREGTYPE
Interner Name |
|
osguid |
1186 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Register |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Typ des übergeordneten Registers bei hierarchisch verschachtelten Registern. |
11.1.6. Mappen-Felder
MDDEL
Interner Name |
|
osguid |
1140 |
DB |
|
Typ |
Text |
Länge |
5 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Löschmarkierung der Mappen-Zuordnung. |
MDTIME
Interner Name |
|
osguid |
1141 |
DB |
|
Typ |
Zeitstempel |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Zeitstempel der Mappen-Zuordnung. |
MDMAP_ID
Interner Name |
|
osguid |
1142 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
ID der Mappe (Portfolio), der das Dokument zugeordnet ist. Wird von dms.AddPortfolio und dms.DelPortfolio verwendet. |
MDSTA_ID
Interner Name |
|
osguid |
1143 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Ordner-ID (Stamm-ID) in den Mappen-Zuordnungsdaten. |
MDOBJ_ID
Interner Name |
|
osguid |
1144 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Objekt-ID in den Mappen-Zuordnungsdaten. |
MDOBJTYPE
Interner Name |
|
osguid |
1145 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Objekttyp in den Mappen-Zuordnungsdaten. |
MDMOD
Interner Name |
|
osguid |
1146 |
DB |
|
Typ |
Text |
Länge |
5 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Modul-Identifier der Mappen-Zuordnung. |
MDIN
Interner Name |
|
osguid |
1147 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Eingangswert der Mappen-Zuordnung (Zielreferenz). |
MDOUT
Interner Name |
|
osguid |
1148 |
DB |
|
Typ |
Text |
Länge |
10 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Ausgangswert der Mappen-Zuordnung (Quellreferenz). |
MDCOUNT
Interner Name |
|
osguid |
1149 |
DB |
|
Typ |
Text |
Länge |
5 |
Verfügbar bei |
Dokument |
In dms.GetObjectDetails verfügbar |
Nein |
Beschreibung |
Anzahl der Objekte in der Mappen-Zuordnung. |
11.2. Datumsformate
Formatierungsanweisungen für Datumsfelder werden durch ein Prozentzeichen (%) eingeleitet.
Zeichenfolgen ohne führendes % werden unverändert in den Ergebnisstring kopiert.
| Formatierung | Beschreibung |
|---|---|
|
Abgekürzter Wochentagsname |
|
Wochentagsname (vollständig) |
|
Abgekürzter Monatsname |
|
Monatsname (vollständig) |
|
Datums- und Zeitrepräsentation entsprechend der lokalen Einstellungen |
|
Tag im Monat numerisch (01–31) |
|
Tag im Jahr numerisch (001–366) |
|
Monat als Zahl (01–12) |
|
Kalenderwoche mit Sonntag als erstem Wochentag (00–53) |
|
Wochentag als Zahl (0–6; Sonntag = 0) |
|
Wochentag als Zahl (0–6; Montag = 0) |
|
Datumsrepräsentation entsprechend der lokalen Einstellungen |
|
Zeitrepräsentation entsprechend der lokalen Einstellungen |
|
Zweistellige Jahresangabe (00–99) |
|
Vierstellige Jahresangabe |
|
(Abgekürzter) Name der Zeitzone; leer, wenn Zeitzone unbekannt |
|
Prozentzeichen |