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 objectX tables (see below).

  • Positions 36+: type-specific index fields (feld1, feld2, …, zahl1, …, datum1, …, real1, …) — configured differently per X.

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

id

int

Internal object ID (primary key). Corresponds to DMS system field OBJECT_ID.

zeitstempel

int

Timestamp of the last index-data change (UNIX time). Corresponds to OBJECT_TIME.

haupttyp

smallint

Numeric main type of the object — determines the table assignment (X = haupttyp + 1, i.e. a row in object17 has haupttyp = 16). Corresponds to the DMS system field OBJECT_MAIN (where it is shown as a descriptive value such as WINDOWS or IMAGE).

untertyp

smallint

Subtype of the document. Corresponds to OBJECT_CO.

anzahl

smallint

Number of document files (pages). Corresponds to OBJECT_COUNT.

angelegt

datetime

Creation date of the object. Corresponds to OBJECT_CRDATE.

anleger

nvarchar

255

User name of the creator. Corresponds to OBJECT_CRID.

archiviert

datetime

Archiving date. Corresponds to OBJECT_AVDATE.

archivar

nvarchar

255

User name of the archivist. Corresponds to OBJECT_AVID.

flags

int

Status flags of the document (bitmask, e.g. archivable/archived). Corresponds to OBJECT_FLAGS.

links

smallint

Number of links of the object. Corresponds to OBJECT_LINKS.

medium_doc

int

ID of the archive medium of the document file. Corresponds to OBJECT_MEDDOCID. References medien.

name_doc

nvarchar

255

Medium name of the document file on the archive medium. Corresponds to OBJECT_MEDDOCNA.

medium_dia

int

ID of the archive medium of the preview file (slide). Corresponds to OBJECT_MEDDIAID.

name_dia

nvarchar

24

Medium name of the preview file (slide). Corresponds to OBJECT_MEDDIANA.

version

int

Version number of the document. Corresponds to OBJECT_VERID.

lockuser

int

ID of the locking user (0 = not locked). References benutzer.id. The DMS system field OBJECT_LOCKUSER returns the display values UNLOCKED / SELF / OTHERS on the Server-API instead and passes the raw DB value as the value attribute.

foreignid

nvarchar

248

Foreign ID of a reference document. Corresponds to OBJECT_FOREIGNID.

systemid

int

System ID of the object (assignment to an external system). Corresponds to OBJECT_SYSTEMID.

modifyuser

nvarchar

255

User name of the last modifier. Corresponds to OBJECT_MODIFYUSER.

modifytime

int

Timestamp of the last modification (UNIX time). Corresponds to OBJECT_MODIFYTIME.

deleted

int

Marker for objects moved to the recycle bin. Corresponds to OBJECT_DELETED.

osowner

nvarchar

32

GUID of the owner of the object. Corresponds to OBJECT_USERGUID. References benutzer.osguid.

ossd

nvarchar

32

ID of the security descriptor of the object. Corresponds to OBJECT_OSSD. Used by dms.SetSD, dms.ReadSD and dms.CreateSD.

dochistflags

smallint

Flags controlling document-file history. Corresponds to OBJECT_DOCHISTFLAGS.

indexhistflags

smallint

Flags controlling index-data history. Corresponds to OBJECT_INDEXHISTFLAGS. Controls whether shadow rows are written to the objectXs table on change.

filesize

bigint

Size of the document file in bytes. Corresponds to OBJECT_FILESIZE.

mimetypeid

int

MIME-type ID of the document file. Corresponds to OBJECT_MIMETYPEID. References the MIME-type list available via dms.GetOsMimetypes.

props

int

Property flags of the object (internal bitmask).

signstate

int

Signature state of the document. Corresponds to OBJECT_SIGNSTATE.

retention_planned

datetime

Planned retention end date (before user confirmation). Corresponds to OBJECT_RETENTION_PLANNED. Set by std.SetPlannedRetention.

retention

datetime

Binding retention end date. Corresponds to OBJECT_RETENTION. Documents must not be deleted before this date.

docpagecount

int

Number of real document pages. Corresponds to OBJECT_DOCPAGECOUNT.

txtnoticecnt

int

Number of text notices on the document.

pdfannocnt

int

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

feld1, feld2, …

nvarchar(N)

TEXT (ostype="X")

<Field dbname="feldN" datatype="TEXT" ostype="X">…</Field>

zahl1, zahl2, …

int / smallint

INTEGER (ostype="9")

<Field dbname="zahlN" datatype="INTEGER" ostype="9">…</Field>

datum1, datum2, …

datetime

DATE (ostype="D")

<Field dbname="datumN" datatype="DATE" ostype="D">…</Field>

real1, real2, …

decimal / real

DECIMAL

<Field dbname="realN" datatype="DECIMAL">…</Field>

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 of feld*, 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

id

int

Object ID. References objectX.id.

type

int

Permission type (e.g. user, group, role) — internal bitmask distinguishing the principal.

value

nvarchar

255

Permission value: GUID of the user/group (benutzer.osguid or gruppen.osguid) or role name, depending on type.

field

int

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 objectX table (e.g. feld1, zahl1, datum1, …) — with identical data types and lengths.

  • The 35 common system fields from objectX (id, zeitstempel, …) are not present in objectXs — shadow tables historise index data only, not system fields.

Cross-references:

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

id

int

Reference to objectX.id — binds all grid rows to a specific main object.

line

int

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.