RSET (Laufzeiteinstellungen)

Die Tabelle RSET beschreibt, welche Einstellungen zur Laufzeit vom Anwendungscode benutzt und ggf. verändert werden dürfen. Die Einstellungen werden in der Windows-Registry gespeichert. Sie werden dort über maximal 4 Pfade verteilt in der folgenden Reihenfolge ausgewertet:

  1. Benutzerübergreifend und umgebungsspezifisch
  2. Benutzerübergreifend und umgebungsübergreifend
  3. Benutzerspezifisch und umgebungsspezifisch
  4. Benutzerspezifisch und umgebungsübergreifend

Im Allgemeinen sind die benutzerübergreifende Einstellungen nicht im Anwendungscode änderbar, sondern werden zentral verwaltet und liefern somit eine Möglichkeit Vorgaben zu erzwingen.

Felder

Name

Das Feld Name bezeichnet die Laufzeiteinstellung eindeutig. Die Großkleinschreibung ist für die Eindeutigkeit nicht relevant. Sie wird aber beibehalten um bspw. bei der Erzeugung von Code einen Identifier zu bilden.

Bezeichnung

Das Feld Bezeichnung umschreibt die Laufzeiteinstellung.

Flags

Das Feld Flags legt bestimmte Eigenschaften der Einstellung fest. Das Feld wird gebildet aus der Kombination folgender einzelner Werte:

HexDezimalBezeichnungErklärung
0x00000001 1Readonlydie Einstellung kann nicht verändert, sondern nur gelesen werden.
0x00000002 2DebugSpecificdie Einstellung soll nur unter Testbedingungen verwendet werden. Wenn die Anwendung in einem nicht-Test Kontext1) ausgeführt wird, soll die Einstellung immer den definierten Vorgabewert aufweisen, und als nichtexistent gelten..
0x00000004 4WithArgument,die Einstellung ist nicht eindeutig zuzuordnen, sondern bedarf einer zusätzlichen Angabe in Form einer Zeichenfolge. So kann bspw. eine Datenbankeinstellung spezifisch zu einer bestimmten Datenquelle vorgenommen werden. In einem solchen Fall wird dann der Name der Datenquelle als Argument für die Einstellung benötigt. Der «Entry»-Bestandteil des gebildeten Pfades wird in einem solchen Fall mit der Kontext-Zeichenfolge vorangestellt, also als «Kontext»\«Entry»
0x00000008 8Systemdie Einstellung ist keine, die von der Anwendung oder dem Mandanten definiert wurde, sondern ist eine, die im TAA-Abschnitt der Registry bereits vorhanden ist und von der TAA vordefiniert wird.
0x00040000 262144Encrypteddie Einstellung wird als verschlüsselter String gespeichert 2)

Anwendungsspezifische Einstellungen sollten nicht unter TAA abgelegt werden, d.h. der Flag 8 sollte nur gesetzt sein, um auf von der TAA verwaltete Einstellungen zuzugreifen.

Folgende Flags schließen sich gegenseitig aus, aber können den obigen Flags hinzugefügt werden:

HexDezimalBezeichnungErklärung
0x00001000 4096Numeric die Einstellung ist als eine numerische Angabe zu behandeln.
0x00002000 8192Date die Einstellung ist als eine Datumsangabe ohne Uhrzeit zu behandeln.
0x00004000 16384Time die Einstellung ist als eine Zeitangabe ohne Datum zu behandeln.
0x00008000 32768DateTime die Einstellung ist als eine Datumsangabe mit Uhrzeit zu behandeln.
0x00010000 66536Timestamp die Einstellung ist als ein eindeutiger Zeitstempel zu behandeln.
0x00020000 131072Boolean die Einstellung ist als eine boolesche Angabe zu behandeln.

Affinity

Über das Feld Affinity wird bestimmt, an welcher Stelle in der Registry die Einstellung verwaltet wird, und ggf. auch, welcher Kontext angewandt wird um die Einstellung aufzufinden. Die Angaben schließen sich gegenseitig aus. Folgende Angaben sind möglich:

HexDezimalBezeichnungErklärung
0x00000001 1Module die Einstellung ist bausteinspezifisch. Der aktuell aktive Baustein gilt als Kontext für den Zugriff.
0x00000002 2Application die Einstellung ist anwendungsspezifisch. Die Anwendung des aktuell aktiven Bausteins gilt als Kontext für den Zugriff.
0x00000004 4Config, die Einstellung ist eine allgemeine Konfigurationsangabe
0x00000008 8Company die Einstellung ist eine mandantenspezifische Angabe
0x00000010 16DbConfig die Einstellung ist eine datenbankbezogene Angabe

Default

Falls die Einstellung nicht explizit in der Registry vorgenommen wird, gilt die hier spezifizierte Angabe als Standardwert. Ebenso kann der Eintrag aus der Registry entfernt werden, wenn der Eintrag auf einen Wert gesetzt wird, der dieser Vorgabe entspricht.

Entry

Falls keine explizite Angabe im Feld Entry gemacht wird, ist das Feld Name gleichzeitig der Wert für Entry.

Pfad in der Registry

Der Pfad in der Registry wird gebildet als «Root»\«Affinity»\[«Kontext»\]«Entry». Die einzelnen Bestandteile werden dabei wie folgt gebildet:

Root

Hintereinander werden bis zu vier verschiedene Pfade für die «Root»-Angabe geformt. Sobald ein Eintrag mit dem jeweiligen Wert für die «Root»-Angabe gefunden wird, wird nicht weitergesucht. Der Pfad für «Root» ist demnach eine von:

  1. HKEY_LOCAL_MACHINE\Software\«Mandant»\Env\«EnvSpec»
  2. HKEY_LOCAL_MACHINE\Software\«Mandant»
  3. HKEY_CURRENT_USER\Software\«Mandant»\Env\«EnvSpec»
  4. HKEY_CURRENT_USER\Software\«Mandant»

Der Wert für «Mandant» ist für Systemeinstellungen TAA, sonst der Wert der Systemeinstellung im Pfad Company\RuntimeSettingsRoot; die Standardvorgabe ist ALH 3).

Der Wert für «EnvSpec» wird aus der Systemeinstellung im Pfad Config\EnvSpec ermittelt. Wenn dieser Wert nicht vorhanden oder leer ist, werden die beiden umgebungsspezifischen Pfade übersprungen.

Affinity

Der Pfad-Bestandteil «Affinity» wird je nach Zuordnung der Laufzeiteinstellung wie folgt gebildet:

Flag HexDezimalBedeutungPfad
0x000000011Module, bausteinspezifisch Appl\«Appl»\«Module». Dabei wird als «Module» der Name des aktuell aktiven Bausteins, und als «Appl» die Anwendung dieses Bausteins benutzt. Wenn der Flag Test/Debug angegeben ist, wird der Pfad um die Stufe Debug ergänzt, also Appl\«Appl»\Debug\«Module».
0x000000022Application, anwendungsspezifisch Appl\«Appl». Dabei wird als «Appl» die Anwendung des aktuell aktiven Bausteins benutzt.
0x000000044Config, allgemeine KonfigurationsangabeConfig
0x000000088Company, mandantenspezifisch Company
0x0000001016DbConfig, datenbankbezogen DbConfig

Kontext

Wenn die Laufzeiteinstellung mit dem Flag WithArgument markiert ist, wird anwendungsseitig noch eine zusätzliche Zeichenfolge bei der Ermittlung der Einstellung übergeben. Diese Zeichenfolge wird dann für den Pfad-Bestandteil «Kontext» eingesetzt.

Entry

Der Pfad-Bestandteil «Entry» wird gebildet aus dem Feld Entry der definierten Laufzeiteinstellung oder, falls hier keine Angabe vorgenommen wurde, aus dem Name der Laufzeiteinstellung.

Beispiele

Da der Eintrag in der mdb mit dezimalwerten erfolgt, sind hier Flags und Affinity dezimal dargestellt.

Zugriff auf anwendungsspezifische Einstellungen:
RootPfad: <hkey>\Software\<mandant>[\Env\<envspec]

NameAffinityFlagsEntryermittelter PfadAnmerkung
Logfile10 Appl\<appl>\<module>\LogfileModuleinstellung
Password2262145 Appl\<appl>\Passwordschreibgeschützte, verschlüsselte Anwendungseinstellung
UserID20 Appl\<appl>\UserIDänderbare Anwendungseinstellung
LastRun265536 Appl\<appl>\LastRunänderbare Anwendungseinstellung Timestamp
WebUmgebung41WebEnvConfig\WebEnvschreibgeschützte Config-Einstellung
BaseDir81 Company\BaseDirschreibgeschützte Company-Einstellung
DbUser165sys\UserDbConfig\<argument>\sys\Userschreibgeschützte DBConfig-Einstellung mit ZusatzAngabe

Zugriff auf bestehende Einstellungen aus der TAA (mit Flag 8):
RootPfad: <hkey>\Software\TAA[\Env\<envspec]

NameAffinityFlagsEntryermittelter PfadAnmerkung
Sperrverzeichnis49BcLockDirConfig\BcLockDir>schreibgeschützte Systemeinstellung
ApplVersion29VersionAppl\<appl>\Versionschreibgeschützte System-Anwendungseinstellung
ModulImpl211ItypAppl\<appl>\Debug\<module>Itypschreibgeschützte System-Moduleinstellung für Test/Debug
1)
festgelegt durch die Einstellung DebugAllowed, in auf .NET-Basis-Assemblies basierten Klassen auch mit this.Services.Application.SettingsRuntime.DebugAllowed abfragbar
2)
ab V906
3)
bis V9.11: Company\Abbrev, die Standardvorgabe ist AL
edb:rset · Zuletzt geändert: 26.07.2021 16:18

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum