dms.GetConfValues

This job returns records from the table osconf for the user-related data types given in ConfTypes: the records of the logged-in user and the global records (osconfuser = -1). With ConfTypes = "3" it returns the AS.INI of the logged-in user.

For each record, not for each type, a set of numbered output parameters (sConfValue_0, ConfID_0, …) is returned. The numbering _<n> runs continuously across all types. The types appear in the order of ConfTypes; a type given twice is returned twice. Within a type there is no fixed order. Records with osconfuser = 0 or NULL are not returned.

The job dms.GetConfValuesAsString returns the same output as this job with OutputUnicode = 1.

This job is not listed in the official enaio® DMS engine overview. The parameters were reconstructed from the call code of the enaio-jobs-custom template; the behaviour described was measured on enaio® 12.0.

1. Input Parameters

Name Type Required Description

Flags

INT

Yes

Reserved; always pass 0.

ConfTypes

STRING

Yes

Comma-separated list of user-related data types (see types), e.g. "3" for the AS.INI or "1,3".

OutputUnicode

INT

Yes

1 = values as string (sConfValue_<n>, see Conversion); 0 = raw bytes (ConfValue_<n>). For the types 2 and 3, 0 is blocked regardless of the content, also for an empty value: the job fails with -1042609854, the message points to GetConfValuesAsString. If ConfTypes contains a blocked type, the whole call fails ("80,3" returns nothing, not even for type 80) (verified).

2. Output Parameters

Name Type Dependency Description

Count

INT

—

Number of records returned.

sConfValue_<n>

STRING

if OutputUnicode=1

Value of the n-th record as string (n from 0 to Count-1), without byte-order mark. See Conversion.

ConfValue_<n>

BASE64

if OutputUnicode=0

Raw bytes of the n-th record, including byte-order mark and terminating NUL (measured on the types 59 and 80).

ConfID_<n>

INT

—

ID of the record (osconf.osconfid).

ConfType_<n>

INT

—

User-related data type (osconf.osconftype).

ConfLink_<n>

INT

—

osconf.osconflink: for a copy from a profile distribution the benutzer.id of the profile user, otherwise 0. 0 in the context of the profile user itself.

ConfProfile_<n>

STRING

—

Empty in all measurements; meaning open.

ConfGlobal_<n>

BOOLEAN

—

true for a global record (osconfuser = -1), otherwise false.

3. Conversion into sConfValue_<n>

With OutputUnicode = 1 the server converts the stored bytes into a string as follows:

  • A UTF-8 or UTF-16 byte-order mark is recognised, the value is read correctly and the byte-order mark is removed.

  • Without a byte-order mark the server reads cp1252. UTF-8 without a byte-order mark therefore arrives garbled (ä instead of ä).

  • The string ends at the first NUL byte. Binary values therefore arrive empty, UTF-16 without a byte-order mark only with its first character (values of the types 13 and 29 with 21 KB and 3.6 KB arrived as <). The job reports no error in this case.

Values that are not stored as UTF-8 or UTF-16 with byte-order mark can only be read losslessly with OutputUnicode = 0, provided the type is not blocked for it.

4. Return Value

(INT): 0 = job successful, otherwise error code.

For further return values see Error Codes.

5. See Also