dms.GetConfValues

Dieser Job liefert Datensätze aus der Tabelle osconf für die in ConfTypes angegebenen Typen der benutzerbezogenen Daten: die eigenen Datensätze des angemeldeten Benutzers und die globalen Datensätze (osconfuser = -1). Mit ConfTypes = "3" liefert er die AS.INI des angemeldeten Benutzers.

Pro Datensatz wird ein Satz nummerierter Output-Parameter (sConfValue_0, ConfID_0, …) zurückgeliefert, nicht pro Typ. Die Nummerierung _<n> läuft fortlaufend über alle Typen. Die Typen erscheinen in der Reihenfolge von ConfTypes; ein doppelt angegebener Typ wird doppelt geliefert. Innerhalb eines Typs gibt es keine feste Reihenfolge. Datensätze mit osconfuser = 0 oder NULL liefert der Job nicht.

Der Job dms.GetConfValuesAsString liefert dieselben Ausgaben wie dieser Job mit OutputUnicode = 1.

Der Job ist in der offiziellen enaio®-DMS-Engine-Übersicht nicht gelistet. Die Parameter wurden aus dem Aufruf-Code des enaio-jobs-custom-Templates rekonstruiert, das beschriebene Verhalten ist an enaio® 12.0 gemessen.

1. Eingabeparameter

Name Typ Pflicht Beschreibung

Flags

INT

Ja

Reserviert; stets 0 übergeben.

ConfTypes

STRING

Ja

Komma-getrennte Liste von Typen der benutzerbezogenen Daten (siehe Typen), z. B. "3" für die AS.INI oder "1,3".

OutputUnicode

INT

Ja

1 = Werte als String (sConfValue_<n>, siehe Umwandlung); 0 = Rohbytes (ConfValue_<n>). Für die Typen 2 und 3 ist 0 gesperrt, unabhängig vom Inhalt und auch bei leerem Wert: Der Job scheitert mit -1042609854, die Meldung verweist auf GetConfValuesAsString. Enthält ConfTypes einen gesperrten Typ, scheitert der ganze Aufruf ("80,3" liefert auch für Typ 80 nichts) (verifiziert).

2. Ausgabeparameter

Name Typ Abhängigkeit Beschreibung

Count

INT

—

Anzahl der gelieferten Datensätze.

sConfValue_<n>

STRING

wenn OutputUnicode=1

Wert des n-ten Datensatzes als String (n von 0 bis Count-1), ohne Byte-Order-Mark. Siehe Umwandlung.

ConfValue_<n>

BASE64

wenn OutputUnicode=0

Rohbytes des n-ten Datensatzes, einschließlich Byte-Order-Mark und abschließendem NUL (gemessen an den Typen 59 und 80).

ConfID_<n>

INT

—

ID des Datensatzes (osconf.osconfid).

ConfType_<n>

INT

—

Typ der benutzerbezogenen Daten (osconf.osconftype).

ConfLink_<n>

INT

—

osconf.osconflink: bei einer Kopie aus einer Profilverteilung die benutzer.id des Profilbenutzers, sonst 0. Im Kontext des Profilbenutzers selbst 0.

ConfProfile_<n>

STRING

—

In allen Messungen leer; Bedeutung offen.

ConfGlobal_<n>

BOOLEAN

—

true für einen globalen Datensatz (osconfuser = -1), sonst false.

3. Umwandlung in sConfValue_<n>

Mit OutputUnicode = 1 wandelt der Server die gespeicherten Bytes so in einen String um:

  • Eine Byte-Order-Mark für UTF-8 oder UTF-16 wird erkannt, der Wert richtig gelesen und die Byte-Order-Mark entfernt.

  • Ohne Byte-Order-Mark liest der Server cp1252. UTF-8 ohne Byte-Order-Mark kommt deshalb verfälscht an (ä statt ä).

  • Am ersten NUL-Byte endet der String. Binärwerte kommen dadurch leer an, UTF-16 ohne Byte-Order-Mark nur mit dem ersten Zeichen (Werte der Typen 13 und 29 mit 21 KB und 3,6 KB kamen als < an). Der Job meldet dabei keinen Fehler.

Werte, die nicht als UTF-8 oder UTF-16 mit Byte-Order-Mark gespeichert sind, lassen sich nur mit OutputUnicode = 0 verlustfrei lesen, sofern der Typ dafür nicht gesperrt ist.

4. Rückgabe

(INT): 0 = Job erfolgreich, sonst Fehlercode.

Weitere Rückgabewerte siehe Fehlercodes.

5. Siehe auch

  • krn.REGetRegValue — liest einen einzelnen Registry-Eintrag

  • krn.REGetRegValues — liest alle Registry-Werte unter einem Schlüssel

  • AS.INI: Lesen der AS.INI mit ConfTypes = "3"

  • dms.GetUserData: liest einen einzelnen Datensatz der benutzerbezogenen Daten

  • osconf: Ablagetabelle, globale Datensätze und Profilverteilung