1. General Information
Installation
To use the REST APIs, you need the following microservice from the enaio® service mananger setup:
DMS service
The microservice must be installed with at least one instance.
Release Information
For each released version of the DMS service you will find detailed information in our Documentation Portal (available in English and German):
10.0 - https://help.optimal-systems.com/enaio/v100/release/trn/de/sr/dms-neuerungen.htm
10.10 - https://help.optimal-systems.com/enaio/v1010/release/trn/de/sr/dms-neuerungen.htm
11.0 - See breaking changes section | https://help.optimal-systems.com/enaio/v110/release/trn/de/sr/dms-neuerungen.htm
Versioning
The mentioned microservice does not carry the same version number as enaio®. The following table shows which version is compatible with which enaio® version. It will be extended with each enaio® version released.
enaio® | DMS service – current version | First release |
---|---|---|
11.10 Final | Version 6.5.0 ( |
|
11.0 Final | Version 6.2.1 (Mar 2024) | in July 2023 with version 6.0.0 |
10.10 Final | Version 5.5.3 (Mar 2024) | in July 2022 with version 5.2.2 |
10.0 Final (out of maintenance) | Version 5.5.3 (Mar 2024) | in May 2021 with version 4.0.2 |
9.10 Final (out of maintenance) | Version 3.2.4 | in April 2020 with version 3.0.0 |
Our general version management looks like this:
Major version number change (2.3.4): breaking changes. NOT backwards compatible. Please check the Changelog.
Minor version number change (2.3.4): new features plus fixed problems - backwards compatible
Patch version number change (2.3.4): fixed problems only - backwards compatible
Breaking Changes – DMS service for enaio® version 6.0.0 (as of enaio® 11.0.0)
The DMS service for enaio® 6.0.0 – which is available as of enaio® version 11.0.0 comes with some breaking changes. They provide a more uniform API and avoid the output of not requested data in the search result. Please read the following information carefully and check/adjust your custom code accordingly.
Native Search Endpoint
The /objects/search/native search endpoint was removed. Please use /objects/search instead.
Default Job Options
By default, the following server job options in GetResultList
are no longer queried in /objects/search
.
It is now necessary to set them manually in the query options (see below).
Status: 1
FileInfo: 1
Rights: 1
Variants: 1
By default, the object icon based on an icon catalog on the form is no longer queried in /objects/search
.
It is now necessary to query it manually with the query option:
Icon: 1
Native Options
The nativeOptions
were replaced by options
in /objects/search
query JSON
OLD (line 6 onwards)
{
"statement" : "SELECT * FROM sysemail WHERE email = @emailAddress AND sysfrom IN @from AND CONTAINS(@text)",
"skipCount" : 0,
"maxItems" : 50,
"handleDeletedDocuments" : "DELETED_DOCUMENTS_EXCLUDE",
"nativeOptions": {
"includePermissions": true,
"registerContext": true,
"exportDepth": 5
}
}
NEW (line 6 onwards)
{
"statement" : "SELECT * FROM sysemail WHERE email = @emailAddress AND sysfrom IN @from AND CONTAINS(@text)",
"skipCount" : 0,
"maxItems" : 50,
"handleDeletedDocuments" : "DELETED_DOCUMENTS_EXCLUDE",
"options": {
"Rights": 1,
"RegisterContext": 0
"ExportDepth": 5,
"Baseparams": 1
}
}
Top Level Parameters
Top level parameters in /objects/search
query JSON were moved to the above mentioned options
object:
OLD (lines 5/6/7)
{
"statement" : "SELECT * FROM sysemail WHERE email = @emailAddress AND sysfrom IN @from AND CONTAINS(@text)",
"skipCount" : 0,
"maxItems" : 50,
"baseParameter" : true,
"exportDepth" : 5,
"includePermissions" : true,
"handleDeletedDocuments" : "DELETED_DOCUMENTS_EXCLUDE",
}
}
NEW (line 6 onwards)
{
"statement" : "SELECT * FROM sysemail WHERE email = @emailAddress AND sysfrom IN @from AND CONTAINS(@text)",
"skipCount" : 0,
"maxItems" : 50,
"handleDeletedDocuments" : "DELETED_DOCUMENTS_EXCLUDE",
"options": {
"ExportDepth": 5,
"Baseparams": 1,
"Rights": 1,
}
}
System Fields in /objects/search
In the result JSON, the following system fields are now of type Integer instead of String.
system:OBJECT_FLAGS
system:OBJECT_MAIN
system:OBJECT_CO
system:OBJECT_MEDDOCID
system:OBJECT_LINKS
system:OBJECT_SYSTEMID
system:OBJECT_INDEXHISTFLAGS
system:OBJECT_DOCHISTFLAGS
system:OBJECT_MIMETYPEID
system:OBJECT_SIGNSTATE
system:OBJECT_PDFANNOTATIONCOUNT
system:OBJECT_TXTNOTICECOUNT
system:SDSTA_ID
system:SDREG_ID
system:SDREG_TYPE
system:REG_STAID
system:REG_PARID
system:FOLDERTYPE
system:PARENTREGTYPE
system:REG_COLAB
system:STAMM_COLAB
system:OBJECT_LOCATIONSCOUNT
In the result JSON, the following system fields are now ISO-DateTime strings instead of Unix timestamps.
system:OBJECT_DELETED
system:OBJECT_CHECKOUTTIME
The OBJECT_USERGUID
system field that contains the owner, now contains the user name instead of the user guid. As do the system fields system:createdBy
and system:lastModifiedBy
which also contain user names instead of guids.
By default, if no search server job options are set, only three system fields are returned:
system:objectId
system:objectTypeId
system:baseTypeId
A new option is available for SELECT * FROM MyObjectType WHERE …
to define which system fields are to be returned.
To return all system fields for the object type, set the option SystemFields with a star value
{
"statement" : "SELECT * FROM sysemail WHERE email = @emailAddress AND sysfrom IN @from AND CONTAINS(@text)",
"skipCount" : 0,
"maxItems" : 50,
"handleDeletedDocuments" : "DELETED_DOCUMENTS_EXCLUDE",
"options": {
"SystemFields": ["*"]
}
}
To return only specific system fields in addition to all index data fields (because of the SELECT * FROM …) they can be listed seperated by a semicolon
{
"statement" : "SELECT * FROM sysemail WHERE email = @emailAddress AND sysfrom IN @from AND CONTAINS(@text)",
"skipCount" : 0,
"maxItems" : 50,
"handleDeletedDocuments" : "DELETED_DOCUMENTS_EXCLUDE",
"options": {
"SystemFields": [
"system:OBJECT_LOCATIONSCOUNT",
"system:OBJECT_PDFANNOTATIONCOUNT"
]
}
}
Table Conditions
A table column condition with a <>
operator (not equal) will now also include NULL values.
A conditionGroup
is created for DMS.GetResultList
like this:
<FieldGroup operator="OR">
<TableCondition internal_name="Relocatons">
<TableColumn internal_name="station">
<NULL/>
</TableColumn>
</TableCondition>
<TableCondition internal_name="Relocatons">
<TableColumn internal_name="station" operator="!=">
<Value>IS-RR</Value>
</TableColumn>
</TableCondition>
</FieldGroup>