Document objects (objectX)
| This page was automatically generated from the database schema dump and may be incomplete or incorrect. |
Per configured DMS object type, one objectX table exists holding all objects of that type. X = haupttyp + 1: object1 contains objects with haupttyp = 0, object17 those with haupttyp = 16 etc. The full object-type ID is composed of haupttyp and untertyp (see Object-type ID).
An objectX table has the following column layout:
-
Positions 1–35: the 35 common system fields — identical across all
objectXtables (see below). -
Positions 36+: type-specific index fields (
feld1,feld2, …,zahl1, …,datum1, …,real1, …) — configured differently perX.
1. Common System Fields
The following 35 system fields exist in every objectX table (positions 1–35, in this order). Starting at position 36, type-specific index fields (feld*, zahl*, datum*, real*) follow — these differ per X and are not documented here.
| Name | Type | Length | Description |
|---|---|---|---|
|
— |
Internal object ID (primary key). Corresponds to DMS system field |
|
|
— |
Timestamp of the last index-data change (UNIX time). Corresponds to |
|
|
— |
Numeric main type of the object — determines the table assignment ( |
|
|
— |
Subtype of the document. Corresponds to |
|
|
— |
Number of document files (pages). Corresponds to |
|
|
— |
Creation date of the object. Corresponds to |
|
|
255 |
User name of the creator. Corresponds to |
|
|
— |
Archiving date. Corresponds to |
|
|
255 |
User name of the archivist. Corresponds to |
|
|
— |
Status flags of the document (bitmask, e.g. archivable/archived). Corresponds to |
|
|
— |
Number of links of the object. Corresponds to |
|
|
— |
ID of the archive medium of the document file. Corresponds to |
|
|
255 |
Medium name of the document file on the archive medium. Corresponds to |
|
|
— |
ID of the archive medium of the preview file (slide). Corresponds to |
|
|
24 |
Medium name of the preview file (slide). Corresponds to |
|
|
— |
Version number of the document. Corresponds to |
|
|
— |
ID of the locking user ( |
|
|
248 |
Foreign ID of a reference document. Corresponds to |
|
|
— |
System ID of the object (assignment to an external system). Corresponds to |
|
|
255 |
User name of the last modifier. Corresponds to |
|
|
— |
Timestamp of the last modification (UNIX time). Corresponds to |
|
|
— |
Marker for objects moved to the recycle bin. Corresponds to |
|
|
32 |
GUID of the owner of the object. Corresponds to |
|
|
32 |
ID of the security descriptor of the object. Corresponds to |
|
|
— |
Flags controlling document-file history. Corresponds to |
|
|
— |
Flags controlling index-data history. Corresponds to |
|
|
— |
Size of the document file in bytes. Corresponds to |
|
|
— |
MIME-type ID of the document file. Corresponds to |
|
|
— |
Property flags of the object (internal bitmask). |
|
|
— |
Signature state of the document. Corresponds to |
|
|
— |
Planned retention end date (before user confirmation). Corresponds to |
|
|
— |
Binding retention end date. Corresponds to |
|
|
— |
Number of real document pages. Corresponds to |
|
|
— |
Number of text notices on the document. |
|
|
— |
Number of PDF annotations on the document. References dms.GetPDFAnnotations. |
2. Type-specific index fields
Starting at column 36, the index fields configured in the DMS object definition (osobjdef / osobjfields) for that object type X follow. The column names follow a type-dependent positional notation; the suffix scheme is identical across all DMS object tables (objectX, stammX, registerX):
| Suffix scheme | DB data type | DMS data type (see dms.GetResultList) | XML access in DMSData |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The mapping "DB column name → semantic index field (display name, mask position, validation, value list)" is configured per object type and accessible via dms.GetObjDef. In Server-API calls a field can be addressed alternatively via dbname (DB column), internal_name (internal field name from the object definition), osguid (field GUID) or name (display name) — see dms.GetResultList.
Number, order and data types of the type-specific fields differ per X:
-
Example
object10: 39 type-specific fields (a mix offeld*,zahl*,datum*,real*). -
Example
object11: 1 type-specific field (feld1). -
Example
object17: 2 type-specific fields (datum1,feld1).
| Gaps in the numbering are normal — when an index field is removed from the object definition, its DB column is kept unused, and new fields receive the next free number. |
3. Rights table (objectXr)
For every objectX table there is a rights table objectXr (X = object-type ID). It stores per-object permission entries (complementary to the global security system via ossd and security descriptors).
All objectXr tables have the same exact 4 fields (all NOT NULL):
| Name | Type | Length | Description |
|---|---|---|---|
|
— |
Object ID. References |
|
|
— |
Permission type (e.g. user, group, role) — internal bitmask distinguishing the principal. |
|
|
255 |
Permission value: GUID of the user/group ( |
|
|
— |
Field/action bitmask controlling which operations (read, modify, delete, …) are allowed on which index fields. |
Further reading: the system-wide security concept (security descriptors, access-control jobs) is described in Security System.
4. Shadow table (objectXs) — index-data history
For every objectX table there is a shadow table objectXs. It holds the index-data history: whenever an index-data change is triggered by dms.XMLUpdate (or comparable jobs), the previous state of the type-specific index fields is historised in objectXs, provided the objectX.indexhistflags flag is enabled.
Structure:
-
First column (always):
osguid(nvarchar(32)) — GUID of the snapshot. Identifies a concrete history version. The job dms.RestoreIndexdataVersion references versions via this GUID. -
After that: all type-specific index fields of the corresponding
objectXtable (e.g.feld1,zahl1,datum1, …) — with identical data types and lengths. -
The 35 common system fields from
objectX(id,zeitstempel, …) are not present inobjectXs— shadow tables historise index data only, not system fields.
Cross-references:
-
dms.GetShadowData — read the history of an object.
-
dms.GetObjectHistory — overview of all history entries.
-
dms.RestoreIndexdataVersion — restore a history version.
5. Table fields (objectXlistY, objectXlistYs)
Table fields (grid fields) on an object type X are stored in dedicated tables objectXlistY. Y is the sequential number of the table field in the object definition (list1, list2, list3, …); each table field gets its own objectXlistY table. One row per grid row.
Common columns of every objectXlistY table:
| Name | Type | Length | Description |
|---|---|---|---|
|
|
— |
Reference to |
|
|
— |
Row number in the grid (1-based, sequential). |
After that, the type-specific columns of the respective table field follow (e.g. feld1, feld2, datum1, …) — analogous to the index fields on the main object table.
For every table field there is a shadow variant objectXlistYs with index-data history. Common columns: osguid (snapshot identifier) and line; followed by the type-specific columns.
6. Related Server-API jobs
-
dms.XMLInsert — create new objects.
-
dms.XMLUpdate — update index data / system fields (triggers a shadow entry when
indexhistflagsis active). -
dms.XMLImport — insert/update via search match (combines search + insert/update on the same tables).
-
dms.XMLDelete — delete an object or move it to the recycle bin.
-
dms.GetObjectDetails — read system fields of an object.
-
dms.GetObjectHistory — history overview.
-
dms.GetShadowData — read the content of a shadow version.
-
dms.RestoreIndexdataVersion — restore index data from shadow.
-
dms.GetObjDef — mapping of the type-specific index fields.
-
Object-type ID — structure of the object-type ID X.