Bedingte Kompilierung mittels Präprozessorbedingungen
Im One Identity Manager ist die bedingte Kompilierung von Programmcode integriert. Über die bedingte Kompilierung können Teile des Programmcodes übersetzt werden, während andere Teile von der Kompilierung ausgeschlossen werden.
Die bedingte Kompilierung bietet folgende Vorteile:
-
Verkleinern der Assemblies
-
Strukturieren der Systemkonfiguration
-
Erhöhen der Übersicht im Modell und in den Berechtigungen
-
Beschleunigen der Verarbeitung
-
Ausblenden nicht benötigter Informationen in allen VB.Net-Ausdrücken
-
Ausblenden von nicht benötigten Modellanteilen
Die bedingte Kompilierung im One Identity Manager wird über Präprozessorbedingungen gesteuert. Präprozessorbedingungen können angewendet werden in:
HINWEIS: Mit Hilfe der Präprozessorbedingungen wird ein Modul nicht deaktiviert. So werden beispielsweise SQL Prozeduren und Trigger weiterhin ausgeführt, auch wenn die Objekte durch Präprozessorbedingungen deaktiviert sind. Um ein Modul zu deaktivieren, entfernen Sie das Modul aus der One Identity Manager-Datenbank. Ausführliche Informationen zum Entfernen von Modulen finden Sie im One Identity Manager Installationshandbuch.
Die möglichen Präprozessorbedingungen werden über Konfigurationsparameter und deren Optionen definiert. Um systemweit wirksam zu werden, erfordert jegliche Änderung an präprozessorrelvanten Konfigurationsparametern sowie Änderungen der Präprozessorbedingungen an Objekten und in VB.Net-Ausdrücken eine Kompilierung der One Identity Manager-Datenbank.
Detaillierte Informationen zum Thema
Präprozessorrelevante Konfigurationsparameter
Wichtig: Jede Änderung an einem präprozessorrelevanten Konfigurationsparameter und seinen Optionen erfordert eine Kompilierung der One Identity Manager-Datenbank.
Ein präprozessorrelevanter Konfigurationsparameter ist durch die Option Präprozessorrelevanter Parameter gekennzeichnet. Für die zugehörige Konfigurationsparameteroption ist ein Präprozessorausdruck eingetragen, der als Präprozessorbedingung verwendet werden kann.
Durch die Aktivierung eines präprozessorrelevanten Konfigurationsparameters gilt die Präprozessorbedingung systemweit als vorhanden. Erst durch die Kompilierung der Datenbank wird die Präprozessorbedingung wirksam.
HINWEIS: Vordefinierte präprozessorrelevante Konfigurationsparameter und Optionen werden bei Schemainstallationen überschrieben. Kundenspezifische präprozessorrelevante Konfigurationsparameter und Optionen definieren Sie im Designer unter dem Konfigurationsparameter Custom.
Um präprozessorrelevante Konfigurationsparameter anzuzeigen
-
Wählen Sie im Designer die Kategorie Basisdaten > Allgemein > Konfigurationsparameter.
-
Wählen Sie im Konfigurationsparametereditor den Menüeintrag Ansicht > Präprozessordefinitionen.
In der Ansicht Präprozessordefinitionen alle Präprozessorbedingungen angezeigt. Mit Maus-Doppelklick auf einen Eintrag wird der Konfigurationsparameter angezeigt.
Hinweis: Einen Überblick über die vorhandenen Präprozessorabhängigkeiten erhalten Sie im Designer in der Kategorie One Identity Manager Schema > Präprozessorabhängigkeiten.
Präprozessorbedingungen in Objekten
Wichtig: Jede Änderung der Präprozessorbedingungen an Objekten erfordert eine Kompilierung der One Identity Manager-Datenbank.
An einigen Objekten können Sie eine Präprozessorbedingung direkt angeben.
Um eine Präprozessorbedingung zu erfassen
-
Tragen Sie in der Eigenschaft Präprozessorbedingung die Präprozessorausdrücke der Konfigurationsparameter ein. Die Präprozessorausdrücke können Sie über AND, OR, NOT, () miteinander verknüpfen.
Beispiel: Präprozessorbedingung für eine Spaltendefinition
Die Spalte Person.RiskIndexCalculated soll in der Oberfläche nur angezeigt werden, wenn die Risikoberechnung aktiviert ist.
In der Spaltendefinition (Tabelle DialogColumn) wird folgende Präprozessorbedingung eingetragen.
Tabelle 87: Beispiel für Präprozessorbedingungen
Person |
RiskIndexCalculated |
RISKINDEX |
Wird ein präprozessorrelvanter Konfigurationsparameter aktiviert oder deaktiviert, werden für den DBQueue Prozessor Aufträge zur kompletten Berechnung aller Präprozessoraufträge und Berechnungsaufträge für die betroffenen Objekte erzeugt. An den betroffenen Objekten wird die Option Deaktiviert durch Präprozessor aktualisiert. Führt die erneute Auswertung der Präprozessorbedingungen zu einer Änderung der Option, werden weitere Folgeaufträge zur Präprozessorauswertung an den abhängigen Objekten erzeugt. Die Benutzerberechtigungen können ebenfalls betroffen sein. Nach der Abarbeitung der Aufträge durch den DBQueue Prozessor ist eine Kompilierung der Datenbank erforderlich.
Die Auswertung der Präprozessorbedingungen hat folgende Auswirkungen:
-
Ist eine Tabelle über eine Präprozessorbedingung deaktiviert, werden auch alle ihre Spalten, alle Objektdefinitionen, die sich auf die Tabelle beziehen sowie die Oberflächenformulare und die zugehörige Menüführung deaktiviert.
-
Ist eine Primärschlüsselspalte deaktiviert, so werden alle Fremdschlüsselspalten deaktiviert, die sich auf diesen Primärschlüssel beziehen.
-
Wird nach der vorhergehenden Regel ein Primärschlüssel-Mitglied deaktiviert, beispielsweise bei M:N-Tabellen, so werden auch die Tabelle dieses Primärschlüssels sowie alle weiteren Spalten dieser Tabelle deaktiviert.
Dieses Verfahren hat den Vorteil, dass beispielsweise bei Deaktivierung der Tabelle ADSGroup automatisch auch alle Zuordnungen deaktiviert werden, wie beispielsweise die Tabelle DepartmentHasADSGroup.
Hinweis: Einen Überblick über die vorhandenen Präprozessorabhängigkeiten erhalten Sie im Designer in der Kategorie One Identity Manager Schema > Präprozessorabhängigkeiten.
Präprozessorbedingungen in VB.Net-Ausdrücken
Wichtig: Jede Änderung der Präprozessorbedingungen in VB.Net-Ausdrücken erfordert eine Kompilierung der One Identity Manager-Datenbank.
Präprozessorbedingungen können in VB.Net-Ausdrücken verwendet werden. Skriptcode, der von einer Präprozessorbedingung abhängig ist, müssen Sie in einer #If...Then...#Else - Anweisung übergeben. Zur Formulierung der Präprozessorbedingung verwenden Sie die Präprozessorausdrücke der präprozessorrelevanten Konfigurationsparameter. Die Präprozessorausdrücke können Sie über AND, OR, NOT, () miteinander verknüpfen.
Die Auswertung der Präprozessorbedingungen erfolgt erst bei der Generierung der Skripte.
Syntax
#If <Präprozessorbedingung_1>
’ Code, der für diese Präprozessorbedingung gelten soll
#ElseIf <Präprozessorbedingung_2> Then
’ Code, der für diese Präprozessorbedingung gelten soll
#Else
’ Code, der sonst gelten soll
#Endif
Beispiel: Präprozessorbedingung in Bildungsregeln verwenden
Für die Spalte ADSGroup.IsForITShop wurde in der Spaltendefinition (Tabelle DialogColumn) die Präprozessorbedingung ITSHOP eingetragen. In der Bildungsregel der Spalte ADSGroup.DisplayName soll die Spalte IsForITShop referenziert werden. Um kompilierfähig zu bleiben, muss für die Bildungsregel folgende Konstruktion verwendet werden:
#If ITSHOP Then
If $IsForITShop:Bool$ And $UID_AccProduct$ <> "" Then
Value = $FK(UID_AccProduct).Ident_AccProduct$
Else
End If
#Else
#End If