Skip to main content
Skip table of contents

Übersicht über die Registrierungsregeln

Vertiefung: Überblick über die Registrierungsregeln und Schreiben

Was sind die Registrierungsregeln?

Registrierungsregeln sind ein wichtiger Aspekt jeder Learning Suite-Konfiguration, um benutzerbezogene Prozesse zu automatisieren und so die Effizienz zu steigern. Die Regeln basieren auf persönlichen Attributen und werden jedes Mal ausgeführt, wenn ein neues Benutzerkonto erstellt oder ein bestehender Benutzer aktualisiert wird. Jede Regel kann eine oder mehrere Bedingungen mit einzelnen/und/oder Überlegungen enthalten, die bei Erfüllung Befehle auslösen. Diese Regeln können recht fortschrittlich sein und werden normalerweise von den Scheer imc Consultants, die das Implementierungsprojekt durchführen, oder Learning Consultants verwaltet, können aber auch von Kunden aktualisiert werden.

Gemeinsame Anwendungsfälle der Registrierungsregel

Es gibt viele Anwendungsfälle für Registrierungsregeln, wobei die häufigsten Regeln folgende sind:

  • Zuweisung des Benutzers zu einer Gruppe,

  • Zuweisung des Benutzers zu einem Mandanten,

  • Zuweisung eines Stellenprofils an den Benutzer,

  • Zuweisung einer Zertifizierung an den Benutzer,

  • Erteilung von Gruppenfreigaben für den Benutzer und

  • Festlegen persönlicher Attributwerte und Einstellungen.

Dieser Artikel soll einen detaillierten Überblick über die Regelformate und die verfügbaren Regeltypen geben, häufig verwendete Grundregeln erläutern und einige erweiterte Regeloptionen vorstellen.


Überprüfung der Registrierungsregeln

Die Regeln werden im XML-Format geschrieben und mit einer speziellen XML-Datei in die Learning Suite hochgeladen. Systemadministratoren können die Xml-Datei herunterladen, um Änderungen vorzunehmen und sie bei Bedarf erneut hochzuladen. Wenn Sie Änderungen vornehmen, empfiehlt es sich, ein Tool wie Notepad++ zu verwenden, um die Regeldatei anzusehen, da Formatierungsfehler leicht zu erkennen sind.

Es gibt zwei Orte, an denen die Regeldateien herunter- bzw. hochgeladen werden können. Der Grund dafür ist, dass die Regeln global (systemweit) oder kundenspezifisch sein können.

Globale Regeln

Die Datei mit den globalen Registrierungsregeln kann über das Menü „Konfiguration - Import“ herunter- und hochgeladen werden. Globale Regeln werden verarbeitet, wenn keine mandantenspezifischen Regeln verfügbar sind oder wenn ein globaler Benutzerimportauftrag nicht mit einem bestimmten Mandanten verknüpft ist.

Konfiguration_Importieren_Regeln_Upload.png

Feld für den Upload/Download von Registrierungsregeln im Menü der Konfigurationsfunktion Import.

Mandantenspezifische Regeln

Mandantenspezifische Registrierungsregeln können im Abschnitt Import der Registerkarte Einstellungen der Mandantenfunktion über das Feld Upload der Regeldatei hoch- oder heruntergeladen werden. Diese Regeln werden für kundenspezifische Benutzerimport- oder -bereitstellungsschnittstellen (z. B. CSV, SAML, SCIM, OIDC) und bei der Erstellung/Aktualisierung von Benutzern über die GUI in einem bestimmten Mandantenkontext verarbeitet.

Mandanteneinstellungen_Importieren_Regeln_Hochladen.png

Client-Einstellungen Importregeln hochladen.

Validierung von Regeln

Für Regeldateien können beliebige Namen verwendet werden, und für das Hochladen muss der Dateityp xml sein. Nach dem Hochladen führt die Learning Suite eine detaillierte Dateivalidierung anhand einer Reihe von XSDs durch. Die Prüfung stellt sicher, dass die XML-Struktur gültig ist und dass die richtigen Werte verwendet wurden. Bei Fehlern wird die Datei nicht gespeichert, sondern die Fehler werden auf dem Bildschirm angezeigt, wobei die Fehlerzeilen hervorgehoben werden, und die bisherigen Regeln bleiben erhalten. Beim Hochladen einer Regeldatei in der Funktion „Kunden“ werden nach dem Speichern etwaige Fehler oben auf der Registerkarte angezeigt und müssen zum Anzeigen nach oben gescrollt werden.

Registrierung_Regeln_Validierung_Fehler.PNG

Registrierung Regeln Validierung Fehler.

Schreiben von Registrierungsregeln

Die grundlegenden Registrierungsregeln bestehen aus drei Hauptbausteinen, nämlich der Regel, den Bedingungen und den Befehlen. Fortgeschrittene Regeln können auch Hashtabellen enthalten. Jeder dieser Bausteine wird im Folgenden ausführlich behandelt. Die Struktur einer typischen Regeldatei sieht wie folgt aus, wobei die Datei immer mit „co:rules“ beginnt und mit „/co:rules“ endet.

XML
<co:rules>
  <!-- Hash-Tabellen definieren (optional) -->
  <!-- IDENTIFIER wird durch den command -->
  <co:hashTable identifier="IDENTIFIER" defaultValue="" comment="COMMENT">
    <!-- Anweisung interagiert mit der Systemdatenbank, um die richtigen Werte abzurufen. Auswahllisten werden normalerweise genommen -->
    <co:hashTableSelectStatement isIntAttribute="true">
      <!-- Definieren Sie die hashtable-Anweisung, um einen Wert für eine bestimmte Eingabe abzurufen -->
    </co:hashTableSelectStatement>
  </co:hashTable>
  <!-- Definieren Sie die Regeln -->
  <co:rule>
    <co:ruleConditions>
      <!-- Definieren Sie die Bedingungen für diese spezielle Regel: AND, OR oder NOT -->
    </co:ruleConditions>
    <!-- Definieren Sie den Befehl für diese spezifische Regel: ASSIGN, SET oder GRANTAND, OR oder NOT -->
  </co:rule>
  <!-- Definieren Sie weitere Regeln mit Bedingungen und Befehlen -->
</co:rules>

Hinweis: Die Reihenfolge, in der die Regeln geschrieben werden, ist wichtig, da dies die Reihenfolge ist, in der die Regeln verarbeitet werden. Kommentare, die nicht verarbeitet werden, können innerhalb der Regeln als Informationen eingegeben werden, wenn sie wie folgt eingeschlossen werden <!-- Kommentare (optional) - - >.

Rule

Mehrere Regeln können mit einzelnen Regeln (xml-Notation: co:rule) definiert werden, die innerhalb eines xml-Tags definiert werden: co:rules. Das bedeutet, dass die Xml-Datei mit dem Tag co:rules beginnt und mit dem Tag </co:rules> endet, wobei alle einzelnen Regeln co:rule </co:rule> dazwischen definiert sind. Jede einzelne Regel muss mit dem Tag co:rule beginnen und mit dem Tag </co:rule> enden. In den folgenden Abschnitten werden die verschiedenen Optionen erläutert, die für Conditions, Commands und HashTables zur Verfügung stehen.

Conditions

Jede Regel kann einzelne oder mehrere Konditionen (AND / OR) enthalten, die erfüllt sein müssen, um die Regel auszuführen. Die Conditions basieren auf Benutzerattributen und dienen als Filter, um die Anzahl der auszuführenden Befehle zu minimieren. Diese Konditionen sind der komplexeste Aspekt der Regel angesichts der Anzahl der verfügbaren Attribute, die einbezogen werden können, und der Vergleichsoperatoren. Nur wenn die Bedingung auf TRUE aufgelöst wird, wird der nachfolgende Command ausgeführt.

Hinweis: Nicht alle Regeln erfordern Bedingungen. So werden z. B. pauschale Regeln häufig verwendet, um alle Benutzer einer bestimmten Gruppe zuzuordnen oder allen Benutzern die Freigabe für bestimmte Gruppen zu erteilen. Auch Regeln, die sich auf Hash-Tabellen beziehen, können nur Befehle enthalten.

Condition attribute

Die Conditions können die folgenden Attribute enthalten:

Attribute

Erläuterung

Verwendung

expression

RegistrierungsregelDefiniert das Attribut, in dem ein Wert geprüft werden soll. Das Attribut Datenbankname ist erforderlich.

erforderlich

matching

Definiert die Logik, in der das Attribut geprüft werden soll (siehe Vergleichsoperatoren)

erforderlich

value

Legt den Wert fest, gegen den das Attribut geprüft werden soll.

optional

mode

  • VALUE: Der „Value“-Wert wird in das „Value“-Attribut eingetragen (Standard).

  • REFERENCE: Der Attributname, der sich auf den „value“ bezieht, wird in das Attribut „value“ eingetragen.

listSeparator

Nur möglich bei Attributübereinstimmung = INLIST oder HASELEMENT

Trennungssymbol einer Liste

comment

Kommentar zur Regel für das menschliche Verständnis

Vergleichsoperatoren

Es gibt viele Vergleichsoperatoren oder Ausdruckstypen für Bedingungen, die nach dem Ausdruck im Attribut „‚matching‘“ definiert sind. Diese definieren die Art des Vergleichs zwischen „‚Expression‘“ und „Value“.

Operator

Kommentar

Beispiel

EQUAL

Gibt true zurück, wenn ‚expression‘ 'equal' mit dem ‚value‘ ist.

Zeichenketten werden in Kleinbuchstaben umgewandelt.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="EQUAL" value="3"/>

UNEQUAL

Gegenteil von EQUAL.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="UNEQUAL" value="3"/>

GREATER

Gibt true zurück, wenn ‚expression‘ 'größer' ist als ‚value‘.

Diese werden für ganzzahlige Werte und Datumsangaben verwendet.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="GREATER" value="3"/>

SMALLER

Gibt wahr zurück, wenn „‚expression‘“ kleiner als „value“ ist.

Dies wird für ganzzahlige Werte und Datumsangaben verwendet.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="SMALLER" value="3"/>

ISEMPTY

Gibt true zurück, wenn expression keinen value (null) hat.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="ISEMPTY"/>

ISNOTEMPTY

Das Gegenteil von ISEMPTY.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="ISNOTEMPTY"/>

EXISTS

Gibt true zurück, wenn das in expression referenzierte Attribut existiert.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="EXISTS"/>

NOTEXISTS

Gegenteil von EXISTS.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="NOTEXISTS"/>

HASELEMENT

Gibt wahr zurück, wenn value ein Teil einer Liste in expression ist.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="HASELEMENT" value="EL2" listseperator=";"/>

INLIST

Ähnlich wie HASELEMENT. Das Attribut listSeparator muss definieren, wie Listenelemente getrennt werden.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="INLIST" value="EL1;EL2;EL3" listseperator=";"/>

HASSUBSTRING

Gibt true zurück, wenn die Zeichenkette value in der Zeichenkette expression enthalten ist.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="HASSUBSTRING" value="RIN"/>

STARTSWITH

Gibt true zurück, wenn die Expression-String mit der Value-String beginnt.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="STARTSWITH" value="STR"/>

ENDSWITH

Gibt true zurück, wenn die Ausdruckszeichenfolge mit der Zeichenfolge „value“ endet.

CODE
<co:ruleCondition expression="ATTRIBUTE_NAME" matching="ENDSWITH" value="ING"/>

Einzelne Condition

Regeln mit einzelnen Conditions haben nur die Tags co:ruleConditions und </co:ruleConditions> mit einem <co:ruleCondition expression=" " matching „ “ /> dazwischen..

XML
<!-- Registrierungsregel: einzelne Condition -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="ATTTRIBUTE_NAME" matching="EQUAL" value=" "/>
  </co:ruleConditions>
  <!-- Definieren Sie den Befehl: ASSIGN, SET oder GRANT -->
</co:rule>

andConditions

Die andCondition ermöglicht mehrere Conditions und verlangt, dass jede TRUE sein muss. Regeln mit andConditions haben den Tag co:ruleConditions, gefolgt von co:andCondition, dann mehrere Tags für jede <co:ruleCondition expression=" " matching „ “ />, dann ein schließendes </co:andCondition> und ein schließendes </co:ruleConditions>.

LS_Registration-Rules_andCondition.png

In dem folgenden Beispiel muss der Benutzer sein:

  • In einem bestimmten LAND (z.B. Deutschland mit der ID 82); UND

  • eine bestimmte POSITION innerhalb des Unternehmens haben (z.B. Verkaufsleiter in einer benutzerdefinierten Auswahlliste).

Nur wenn alle Bedingungen erfüllt sind, werden die Befehle ausgeführt.

XML
<!-- Registrierungsregel: andCondition-->
<co:rule>
  <co:ruleConditions>
  <!-- ALLE Konditionen müssen auf TRUE aufgelöst werden -->
    <co:andCondition>
      <co:ruleCondition expression="COUNTRY" matching="EQUAL" value="82"/>
      <co:ruleCondition expression="POSITION" matching="EQUAL" value="3"/>
    </co:andCondition>
  </co:ruleConditions>
  <!-- Definieren Sie den Befehl: ASSIGN, SET oder GRANT -->
</co:rule>

orConditions

Die orCondition ermöglicht mehrere Conditions und erfordert, dass mindestens eine TRUE ist. Regeln mit orConditions haben den Tag co:ruleConditions, gefolgt von co:orCondition, dann mehrere Tags für jede <co:ruleCondition expression=" " matching „ “ />, dann ein schließendes </co:orCondition> und ein schließendes </co:ruleConditions>.

LS_Registration-Rules_orCondition.png

Im folgenden Beispiel muss der Nutzer eine der drei Phrasen in seinem JOB_TITLE haben, damit sie wahr ist. Wenn eine der Bedingungen erfüllt ist, wird der Befehl/die Befehle ausgeführt.

XML
<!-- Registrierungsregel: orCondition-->
<co:rule>
  <co:ruleConditions>
    <!-- EINE Bedingung muss TRUE sein -->
    <co:orCondition>
      <co:ruleCondition expression="JOB_TITLE" matching="HASSUBSTRING" value="Manager"/>
      <co:ruleCondition expression="JOB_TITLE" matching="HASSUBSTRING" value="Supervisor"/>
      <co:ruleCondition expression="JOB_TITLE" matching="HASSUBSTRING" value="Head of"/>
	</co:orCondition>
  </co:ruleConditions>
  <!-- Definieren Sie den Befehl: ASSIGN, SET oder GRANT -->
</co:rule>

Kommandos

Jede Regel enthält einen oder mehrere Kommandos, um die definierte Aktion auszuführen, wenn die Bedingungen erfüllt sind. Die Befehls-Tags beginnen mit dem Typ (assign, set, grant), enthalten dann einen Kontext (Mandant, Gruppe, Zertifizierung, Jobprofil), gefolgt von einem Ziel und dann möglicherweise einigen optionalen Attributen.

assignCommand-Tags

Zuweisungsbefehle werden verwendet, um entweder den Benutzer einer Gruppe zuzuweisen, den Benutzer einem Mandanten zuzuweisen, dem Benutzer ein Jobprofil zuzuweisen oder dem Benutzer eine Zertifizierung zuzuweisen. Diese Befehle beginnen immer mit <co:assignCommand und stellen dann den gewünschten Kontext ein. Der ausgewählte Kontext bestimmt dann die folgenden Attribute.

Attribut

Werte

Kommentar

context

  • CLIENT

  • GROUP

  • CERTIFICATION

  • JOBPROFILE

Der Kontext SKILL ist nicht verfügbar.

target

Id des Mandanten, der Gruppe, der Zertifizierung oder des Jobprofils.

Wird vom Modus beeinflusst

REQUIRED

mode

  • VALUE: Id wird referenziert

    REFERENCE: Name eines Attributs, das die Id enthält, wird referenziert.

execute

  • ONCE: Die Zuweisung wird wie eine manuelle Zuweisung im Backend ausgeführt (ls_importsource=0)

  • ALWAYS: Die Zuweisung wird als importiert markiert (ls_importsource=1)

Bei ONCE wird die Aufgabe nur beim ersten Speichern bearbeitet. Bei ALWAYS werden alle importierten Zuweisungen bei jedem neuen Speichern oder Importieren gelöscht.

Die Registrierungsregeln für die Kontext-Zertifizierung unterscheiden sich im Verhalten von execute:

  • Der Kontext funktioniert nicht mit execute="ALWAYS". Das heißt, wenn ein Attribut angibt, dass die Zertifizierung nicht mehr verfügbar ist, wird die Zertifizierung nicht entfernt.

  • Es ist erforderlich, execute="ONCE" zu definieren, da der Standardwert execute="ALWAYS" wäre.

type

Wird verwendet, um einer OE-Gruppe mit dem Wert SUPERVISOR, DUPUTY1, DEPUTY2 zuzuweisen.

Wird für die Zuweisung von Benutzern zu OE-Gruppen mit bestimmten Rollen verwendet. DEPUTY2 hat keinen Zugriff.

hashident

Verweis auf die HashTable, wenn eine HashTable verwendet wird.

index

Eingabewert für Hashtables

comment

Kommentar zur Regel für das menschliche Verständnis

Zuweisung des Benutzers zu einer Gruppe

Der assignCommand hat den Kontext „GROUP“ und das Ziel ist die Objekt-ID der Gruppe.

XML
<!-- Eintragungsregel: assignCommand Group -->
<co:rule>
  <co:ruleConditions>
	<co:ruleCondition expression="EMPLOYEE_ID" matching="ISEMPTY" mode="VALUE"/>
  </co:ruleConditions>
  <co:assignCommand context="GROUP" target="239225" execute="ALWAYS"/>
</co:rule>

Zuweisung eines Job-Profils an einen Benutzer

Der assignCommand hat den Kontext „JOBPROFILE“ und das Ziel ist die Objekt-ID des Job-Profils.

XML
<!-- Registrierungsregel: assignCommand Job-Profil -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="IS_IMC_PARTNER" matching="EQUAL" value="1"/>
  </co:ruleConditions>
  <co:assignCommand context="JOBPROFILE" target="231913" execute="ALWAYS"/>
</co:rule>

Einem Benutzer eine Zertifizierung zuweisen

Der Befehl assignCommand hat den Kontext „CERTIFICATION“ und das Ziel ist die Objekt-ID der Zertifizierung.

XML
<!-- Registrierungsregel: assignCommand Zertifizierung -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="DEPARTMENT" matching="EQUAL" value="Accounts"/>
  </co:ruleConditions>
  <co:assignCommand context="CERTIFCATION" target="235657" execute="ONCE"/>
</co:rule>

Grant Commands

Grant- Kommandos werden verwendet, um einer Gruppe oder einem Mandanten Freigaben für den Benutzer zu erteilen. Die Berechtigungsstufe kann Voll, Ansicht (Ausführen) oder eine binäre Kombination spezifischer Authentifizierungen sein. Diese Befehle beginnen immer mit <co:grantCommand, gefolgt von dem gewünschten Kontext (Group oder Client) und dem Ziel, das die Objekt-ID enthält. Das value-Attribut bestimmt den Grad der Freigabe, der „_full“ oder „_view“ sein kann.

Attribut

Werte

Kommentar

context

  • CLIENT

  • GROUP

target

Objekt-ID des Mandanten oder der Gruppe.

REQUIRED

value

  • _full: Uneingeschränkte Freigabe für den Benutzer.

  • _view: Nur Ausführungsberechtigung für den Benutzer.

execute

  • ONCE: Die Zuordnung wird wie bei einer manuellen Ausführung im Backend ausgeführt. (ls_importsource=0)

  • ALWAYS: Zuordnung wird als importiert gekennzeichnet (ls_importsource=1)

ONCE: Die Zuweisung wird nur beim ersten Speichern verarbeitet. Bei ALWAYS werden alle importierten Zuweisungen bei jedem neuen Speichern oder Importieren gelöscht.

comment

Kommentar zur Regel für das menschliche Verständnis.

Erteilung der Freigabe für eine Gruppe

Um den Nutzer für eine Gruppe freizugeben, muss der Kontext gleich GROUP sein, wobei das Ziel die Objekt-ID der Gruppe ist.

XML
<!-- Registrierungsregel: grantCommand Group -->
<co:rule>
  <co:ruleConditions>
	<co:ruleCondition expression="EMPLOYEE_ID" matching="ISEMPTY" mode="VALUE"/>
  </co:ruleConditions>
  <co:grantCommand context="GROUP" target="239227" value="_full" execute="ALWAYS"/>
</co:rule>

setCommand-Tags

setCommand-Tags werden verwendet, um ein Benutzerattribut basierend auf dem Wert eines anderen Benutzerattributs zu füllen. Set Zum Beispiel würden die meisten Regeln die CLIENT_ID des Benutzers setzen, um seinen Hauptmandanten zu definieren. Diese Befehle beginnen immer mit <co:setCommand und setzen dann das gewünschte Ziel, d.h. den Namen einer Personal Attribute-Datenbank. Die folgenden Attribute sind mit setCommands möglich:

Attribute

Werte

Kommentar

target

Nutzerattribut Datenbankname.

REQUIRED

value

Wert, der für das Zielattribut eingegeben werden muss.

Beim Verweis auf ein anderes Attribut wird der Datenbankname des anderen Attributs angegeben.

Beim Verweis auf eine Hashtabelle wird der Wert „_hashval“ verwendet.

mode

  • VALUE: Id wird referenziert

    REFERENCE: Name eines Attributs, das die ID enthält, wird referenziert.

hashident

Identifier einer Hashtabelle, die mit der Regel verwendet werden soll.

Normalerweise wird er für spezielle Konvertierungen verwendet.

index

Nutzerattribut Datenbankname, der für die Abfrage der HashTable verwendet werden soll.

Nachfolgend sehen Sie einen einfachen setCommand, der auf einer einzelnen ISEMPTY-Bedingung basiert, um einen Nutzerattributwert zu setzen.

XML
<!-- MAIN CLIENT setzen, wenn client_id des Benutzers leer ist -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="CLIENT_ID" matching="ISEMPTY"/>
  </co:ruleConditions>
  <co:setCommand target="CLIENT_ID" value="1"/>
</co:rule>  

Hashtables

HashTables werden in erweiterten Regeln verwendet, um Eingabe- auf Ausgabewerte abzubilden, und müssen vor der Aufnahme in Regeln definiert werden. Eine HashTable muss einen eindeutigen Bezeichner, einen Standardwert und entweder HashTable-Zeilen mit Eingabe-Ausgabe-Beziehungen oder eine einzelne SQL-Anweisung enthalten. Einige Beispiele für die Verwendung von hashTables sind:

  • Abfrage der Zeitzone für bestimmte Länder

  • Abrufen von OE-Gruppen auf der Grundlage des Attributs Abteilung oder Division

  • Umrechnung von Eingabewerten (z. B. männlich / weiblich → 1 / 2)

XML
<co:rules>
  <co:hashTable identifier="GROUPBYCOUNTRY" defaultValue="0" comment="Get group based on country">
    <co:hashTableRow index="VA" value="1" comment="Status aktiv fuer Wert VA"/>
    <co:hashTableRow index="VI" value="2" comment="Status passiv fuer Wert VI"/>
    <co:hashTableRow index="VBO" value="2" comment="Status passiv fuer Wert VBO"/>
  </co:hashTable>
  <co:rule>
    <!-- Bedingungen und Kommandos -->
  </co:rule>
</co:Rules>

Element: HashTable

Die folgenden Attribute sind für eine HashTabel verfügbar:

Attribut

Beschreibung

Umfang

identifier

Eindeutiger Name, auf den das Attribut „hashident“ eines Befehls verweist.

erforderlich

default value

erforderlich

comment

optional

Element: hashTableRow

Hashtablerows werden verwendet, um das Input-Output-Mapping zu erstellen. Jede Zeile steht für ein Tupel (Eingabe-Wert, Ausgabe-Wert). Diese Zeilen werden üblicherweise verwendet, um Feldeingaben aus einem externen System in ein entsprechendes Nutzerattribut in der Lernsuite umzuwandeln, z. B. eine Textzeichenfolge in die entsprechende Auswahllisten-ID in der Lernsuite.

Attribut

Beschreibung

Umfang

index

Eindeutiger Eingabewert

erforderlich

value

Ausgangswert

erforderlich

comment

optional

Element: hashTableSelectStatement

Es kann eine beliebige SQL- Query verwendet werden, die einen einzigen Wert zurückgibt.

Der Eingabewert wird durch den Index geliefert, der auf die HashTable verweist. In der SQL-Statement wird der Index durch ein Fragezeichen „?“ gesetzt.

Es ist nur ein Fragezeichen in der SQL-Statement erlaubt.

Attribut

Beschreibung

isIntAttribute

Legt fest, ob der Eingabewert ein numerischer Wert ist oder nicht (string)

Voreinstellung = false (Zeichenkette)

comment

optional, um die Aussage zu beschreiben

Aufrufen einer HashTable aus einem Command

Eine hashTable kann von jedem Befehl aus aufgerufen werden, da sie lediglich einen Wert liefert.

  • Das Ziel gibt an, dass der Wert durch eine HashTable abgerufen wird.

  • Der Index stellt den Eingabewert für die hashTable dar.

  • Die Hashident muss dem Bezeichner der HashTable entsprechen und stellt die Tabelle dar, in der der Ausgabewert abgebildet wird.

Im folgenden Beispiel hat der assignCommand das Ziel „_hashval“, um eine hashTable aufzurufen, und die hashident „GROUPBYCOUNTRY“ identifiziert die spezifische hashtable, die aufgerufen werden soll. In einer Regeldatei können die HashTable und die Regel oft getrennt sein.

XML
<co:rules>
  <co:hashTable identifier="GROUPBYCOUNTRY" defaultValue="0" comment="Gruppe auf Basis von COUNTRY erhalten">
     <co:hashTableRow index="VA" value="1" comment="Status aktiv fuer Wert VA"/>
        <co:hashTableRow index="VI" value="2" comment="Status passiv fuer Wert VI"/>
        <co:hashTableRow index="VBO" value="2" comment="Status passiv fuer Wert VBO"/>
  </co:hashTable>
  <co:rule>
    <co:assignCommand context="GROUP" target="_hashval" index="COUNTRY_ID" hashident="GROUPBYCOUNTRY"/>
  </co:rule>
</co:Rules>

Beispiele für Regeln

In diesem Abschnitt werden einige häufig verwendete Beispiele für grundlegende und fortgeschrittene Regeln vorgestellt. Diese Beispiele werden die obige Theorie in praktische Beispiele umsetzen, die als Grundlage für ähnliche Bedürfnisse angepasst werden können.

Beispiele für Grundregeln

Standardregeln

Ein Standard-Learning-Suite-System vor der Konfiguration würde die folgenden Regeln enthalten. Über jeder Regel wurden Kommentare eingefügt, um ihren Zweck zu beschreiben.

XML
<co:rules>
  <!-- In einem Einzelmandantensystem wird dadurch das Nutzerattribut CLIENT_ID gesetzt  -->
  <co:rule>
    <co:setCommand target="CLIENT_ID" value="1"/>
  </co:rule>

  <!-- In einem Mehrmandantensystem wird dadurch das Nutzerattribut CLIENT_ID auf 1 gesetzt, wenn keine CLIENT_ID gesetzt ist. -->
  <co:rule>
    <co:ruleConditions>
		<co:ruleCondition expression="CLIENT_ID" matching="SMALLER" value="1"/>
    </co:ruleConditions>
    <co:setCommand target="CLIENT_ID" value="1"/>
  </co:rule>

  <!-- In einem Einmandantensystem werden alle Nutzer dem Mandanten mit der ID 1 zugewiesen. -->
  <co:rule>
    <co:assignCommand context="CLIENT" target="CLIENT_ID" mode="REFERENCE"/>
  </co:rule>

  <!-- Generische Regel, die das Benutzerattribut USER_ID, falls leer, mit dem im Benutzerattribut PERSON_ID generierten Wert auffüllt -->
  <co:rule>
    <co:ruleConditions>
		<co:ruleCondition expression="USER_ID" matching="ISEMPTY" mode="VALUE"/>
    </co:ruleConditions>
    <co:setCommand target="USER_ID" value="PERSON_ID" mode="REFERENCE"/>
  </co:rule>

  <!-- Freigabe von Benutzern für den Ersteller und die Gruppe Systemadministrator mit der Objekt-ID 1 -->
  <co:rule>
    <co:grantCommand context="OWNER" target="_creator" execute="ALWAYS"/>
    <co:grantCommand context="GROUP" target="1" value="_full" execute="ALWAYS"/>
  </co:rule>

  <!-- Weist alle Benutzer der Gruppe „Student“ mit der Objekt-ID 3 zu. -->
  <co:rule>
    <co:assignCommand context="GROUP" target="3" execute="ALWAYS"/>
  </co:rule>
</co:rules>

Gruppenzuweisungen

EQUAL-Konditionsgruppenzuordnung

Die Zuordnung von Nutzern zu einer bestimmten Gruppe erfolgt in der Regel über den EQUAL-Operator mit einem Nutzerattribut. Der Wert kann eine Zeichenkette oder eine ID eines Auswahllisteneintrags oder eines Kontrollkästchens sein.

XML
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="COUNTRY_ID" matching="EQUAL" value="82"/>
  </co:ruleConditions>
  <co:assignCommand context="GROUP" target="231656" execute="ALWAYS"/><!--German lerner-->
</co:rule>

ISEMPTY Konditionsgruppenzuordnung

Die Zuweisung von Benutzern zu einer externen Lerngruppe erfolgt üblicherweise über den ISEMPTY-Operator mit einem Benutzerattribut, das nur für interne Lernende ausgefüllt werden würde.

XML
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="EMPLOYEE_ID" matching="ISEMPTY" mode="VALUE"/>
  </co:ruleConditions>
  <co:assignCommand context="GROUP" target="239225" execute="ALWAYS"/><!--External Gruppe-->
</co:rule>

orConditionsgruppenzuordnung

Die folgende Regel ordnet den Benutzer der Gruppe Supervisor (ID 9) zu, wenn das Nutzerattribut POSITION_TITLE entweder die Wörter Manager oder Supervisor enthält.

XML
<co:rule>
  <co:ruleConditions>
    <co:orCondition>
      <co:ruleCondition expression="POSITION_TITLE" matching="HASSUBSTRING" value="Manager"/>
      <co:ruleCondition expression="POSITION_TITLE" matching="HASSUBSTRING" value="Supervisor"/>
    </co:orCondition>
  </co:ruleConditions>
  <co:assignCommand context="GROUP" target="9" execute="ALWAYS"/>
</co:rule>

assignCommand, um Benutzer einer Gruppe zuzuordnen

Eine gängige assignCommand-Regel ist die Erstellung von Checkbox-Benutzerattributen im Backend-Benutzerprofil, um Benutzer zu Gruppen zuzuordnen. In diesem Beispiel gäbe es ein Kunden-Checkbox-Benutzerattribut, das, wenn es angekreuzt ist (Wert = 1), den Benutzer der Gruppe mit der ID 1, dem Kunden mit der ID 1 und dem Kunden mit der ID 2 zuordnet..

XML
<co:rule>
  <co:ruleConditions>
	<co:ruleCondition expression="IS_SYSTEMADMIN" matching="EQUAL" value="1"/>
  </co:ruleConditions>
  <co:assignCommand context="GROUP" target="1" execute="ALWAYS"/>
  <co:assignCommand context="CLIENT" target="1" execute="ALWAYS"/>
  <co:assignCommand context="CLIENT" target="2" execute="ALWAYS"/>
</co:rule>

grantCommand für bestimmte Benutzer

Die nachstehende Regel wird üblicherweise für Systeme verwendet, die externe Lernende enthalten. Die Regel ordnet den Benutzer einer Gruppe „Externe Lernende“ zu und erteilt einer Gruppe „Externer Administrator“ (ID 239227) die Freigabe, wenn das Attribut EMPLOYEE_ID Us leer ist. In diesem Beispiel erhält auch die Gruppe „Content Admin“ (ID 11) die Freigabe zur Ansicht. Das benutzerdefinierte Benutzerattribut EMPLOYEE_ID wird häufig durch den Standard EXT_ID_CSV oder einen alternativen eindeutigen Standardbezeichner ersetzt, der über einen automatisierten Benutzerimport eingegeben wird.

XML
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="EMPLOYEE_ID" matching="ISEMPTY" mode="VALUE"/>
  </co:ruleConditions>
  <co:assignCommand context="GROUP" target="239225" execute="ALWAYS"/><!--External-->
  <co:grantCommand context="GROUP" target="239227" value="_full" execute="ALWAYS"/><!--External Admin-->
  <co:grantCommand context="GROUP" target="11" value="_view" execute="ALWAYS"/><!--Content Admin-->
</co:rule>

Andere Beispiele für solche Regeln könnten sein, dass eine Gruppe, die eine Unternehmensabteilung, ein Team oder einen Standort repräsentiert, eine Freigabe für Benutzer innerhalb ihrer Gruppe erhält. Diese Regeln werden oft geschrieben, wenn Proxy-Anmeldungen aktiviert sind.

XML
<co:rule>
	<co:ruleConditions>
		<co:ruleCondition expression="DEPARTMENT" matching="EQUAL" value="Operations"/>
	</co:ruleConditions>
	<co:assignCommand context="GROUP" target="242815" execute="ALWAYS"/><!--Operations-->
	<co:grantCommand context="GROUP" target="242815" value="_view" execute="ALWAYS"/><!--Operations-->
</co:rule>

setCommand zum Auffüllen der Benutzerattribute

Die Verwendung von setCommands wird häufig zum Auffüllen von Benutzerattributen verwendet, die funktionale Einstellungen haben. Dies kann der Fall sein, wenn ein externes Quellsystem über entsprechende Einstellungen mit anderen Werten verfügt. Das externe System könnte zum Beispiel ein STATUS-Feld mit den Werten Aktiv/Terminiert haben, was der AUTHENTIFICATIONSTATUS_ID der Learning Suite entspricht, die die Werte 1 (Aktiv) oder 2 (Passiv) erfordert. In diesem Fall könnte ein benutzerdefiniertes STATUS-Benutzerattribut zusammen mit Grundregeln erstellt werden, um die AUTHENTIFICATIONSTATUS_ID auf der Grundlage des STATUS festzulegen.

XML
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="STATUS" matching="EQUAL" value="Aktiv"/>
  </co:ruleConditions>
  <co:setCommand target="AUTHENTIFICATIONSTATUS_ID" value="1"/>
</co:rule>

<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="STATUS" matching="EQUAL" value="Beendet"/>
  </co:ruleConditions>
  <co:setCommand target="AUTHENTIFICATIONSTATUS_ID" value="2"/>
</co:rule>

Referenzregeln

Referenzregeln werden üblicherweise verwendet, um leere Benutzerattribute mit dem Wert eines anderen Benutzerattributs zu füllen. In der nachstehenden Beispielregel würde die EXT_ID_CSV eines Benutzers, der keine EXT_ID_CSV hat und bei dem IS_CONTRACTOR angekreuzt ist, mit dem Wert aus seinem LOGIN aufgefüllt werden.

XML
<co:rule>
  <co:ruleConditions>
    <andCondition>
      <co:ruleCondition expression="EXT_ID_CSV" matching="ISEMPTY"/>
      <co:ruleCondition expression="IS_CONTRACTOR" matching="EQUAL" value="1"/>
    </andCondition>
  </co:ruleConditions>
  <co:setCommand target="EXT_ID_CSV" value="LOGIN" mode="REFERENCE"/>
</co:rule>

Im folgenden Beispiel könnte ein Kontrollkästchen POSTAL_SAME_AS_RES in einem Frontend-Benutzerprofil oder einem Kurseinschreibungsformular nach einigen Nutzerattributen mit Wohnanschrift verwendet werden. Wenn der Benutzer das Kontrollkästchen ankreuzt, würde die Regel die Nutzerattribute „Postanschrift“ mit den Werten der entsprechenden Nutzerattribute „Wohnanschrift“ auffüllen.

XML
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="POSTAL_SAME_AS_RES" matching="EQUAL" value="1"/>
  </co:ruleConditions>
  <co:setCommand target="POSTAL_STREET_NUMBER" value="RES_STREET_NUMBER" mode="REFERENCE"/>
  <co:setCommand target="POSTAL_STREET" value="RES_STREET" mode="REFERENCE"/>
  <co:setCommand target="POSTAL_SUBURB" value="RES_SUBURB" mode="REFERENCE"/>
  <co:setCommand target="POSTAL_POSTCODE" value="RES_POSTCODE" mode="REFERENCE"/>
</co:rule>

Beispiele für erweiterte Regeln

Viele Kunden haben erweiterte Regeln, die HASH-Tabellen verwenden, um Aufgaben wie Look-ups und Konvertierungen durchzuführen.

Wert-IDs der Auswahlliste nachschlagen

Lookups verwenden HashTables, um einen Eingabewert einem anderen Ausgabewert zuzuordnen. Diese werden üblicherweise für Benutzerimporte verwendet, die Werte in Benutzerattribute vom Typ Auswahlliste importieren, und das Quellsystem enthält die Auswahllistenwert-IDs nicht. Im folgenden Beispiel werden HashTableRow-Zuordnungen definiert, bei denen der „Index“ das ist, was vom Quellsystem gesendet wird, und der „Value“ die Wert-ID der Learning Suite-Auswahlliste ist. Die unterste Zeile ist nicht Teil der Regeldatei und dient nur dazu, die Importzuordnung zu zeigen, die auf die HashTable mit der Hashident verweist.

XML
<!-- Zuordnung der Auswahlliste „“key„“ zu „value“ -->
<co:hashTable identifier="Title" defaultValue="0">
  <co:hashTableRow index="Mr" value="1"/>
  <co:hashTableRow index="Mrs" value="2"/>
  <co:hashTableRow index="Miss" value="3"/>
  <co:hashTableRow index="Ms" value="4"/>
  <co:hashTableRow index="Dr" value="5"/>
</co:hashTable>

<!-- Mapping-Zeile aus CSV-Import -->
<mapping sourceField="Title" clixField="TITLE" hashident="Title"/>

Das nächste Beispiel ist eine dynamischere Auswahllistensuche, da keine tatsächliche hashTableRow-Zuordnung erforderlich ist. Stattdessen wird eine SQL-Anweisung in der HashTable verwendet, die die Wert-ID der LMS-Auswahlliste auswählt, wenn eine Übereinstimmung mit der external_id (Schlüssel) in der Auswahltabelle gefunden wird, die im Attribut Benutzer der Auswahlliste verwendet wird. Bei der Erstellung einer Auswahlliste kann die external_id (Key) importiert oder manuell gesetzt werden und stimmt normalerweise mit dem vom Quellsystem gesendeten Wert überein. In diesem Beispiel wird ein Wert der Auswahlliste LOCATION über die External_ID (Schlüssel) gefunden. Die untere Zeile ist eigentlich nicht Teil der Regeldatei und dient nur dazu, die Importzuordnung zu zeigen, die auf die HashTable mit der Hashident verweist.

XML
<co:hashTable identifier="MapLocationKeyWithId" defaultValue="0" comment="Ordnet Key der Learning Suite ID zu">
  <co:hashTableSelectStatement isIntAttribute="false">select max(id) from CUST_P_CURRENTLOCATION where external_id = ?</co:hashTableSelectStatement>
</co:hashTable>

<!-- Mapping-Zeile aus CSV-Import -->		
<mapping sourceField="CURRENT_LOCATION" clixField="LOCATION" hashident="MapLocationKeyWithId"  ignoreEmptyField="false"/>

OE-Gruppen-ID nachschlagen, um Benutzer zuzuweisen

Die folgenden Beispiele für HashTable- und AssignCommand-Regeln können verwendet werden, um Benutzer dynamisch OE-Gruppen zuzuweisen. Die assignCommand-Tags für Gruppen basieren auf der LMS-Objekt-ID, und diese hashTable-Anweisung findet die Objekt-ID, indem sie die externe ID nachschlägt. In den assignCommand-Regeln ist der „index“ das Nutzerattribut, das beim Import Werte enthält, die mit der externen ID der OE-Gruppen übereinstimmen. Solche Regeln werden üblicherweise für Kunden verwendet, die OE-Gruppenstrukturen in CSV-Dateien importieren können oder Strukturen über eine XML-Datei ohne direkte Nutzerzuordnung in der XML-Datei importieren können.

XML
<co:hashTable identifier="ORG_MAPPING" defaultValue="0" comment="maps section ids">
  <co:hashTableSelectStatement isIntAttribute="false">SELECT GROUP_ID FROM PLATFORMGROUP WHERE EXTERNAL_OBJECT_ID =?</co:hashTableSelectStatement>
</co:hashTable>
			
<co:rule>
  <co:assignCommand context="GROUP" target="_hashval" hashident="ORG_MAPPING" index="DIVISION" execute="ALWAYS" /> 
</co:rule>
<co:rule>
  <co:assignCommand context="GROUP" target="_hashval" hashident="ORG_MAPPING" index="UNIT" execute="ALWAYS" /> 
</co:rule>
<co:rule>
  <co:assignCommand context="GROUP" target="_hashval" hashident="ORG_MAPPING" index="TEAM" execute="ALWAYS" /> 
</co:rule>

Nutzer als Supervisor zur OE-Gruppe zuordnen

Mit Regeln ist es auch möglich, Nutzer zu OE-Gruppen mit einer Vorgesetzten- oder Stellvertreterrolle zuzuordnen. Das folgende Beispiel verwendet eine HashTable, um die GROUP_ID der OE-Gruppe auf der Grundlage des EXTERNAL_OBJECT_ID-Werts zu ermitteln. Anschließend identifiziert die Regel, ob der Benutzer eine bestimmte POSITION_TITLE hat, um einen assignCommand zu erteilen, der auf der HashTable basiert, die den Wert des Attributs TEAM User indiziert.

XML
<co:hashTable identifier="ORG_MAPPING" defaultValue="0" comment="ordnet die externe ID der Objekt-ID zu">
  <co:hashTableSelectStatement isIntAttribute="false">SELECT GROUP_ID FROM PLATFORMGROUP WHERE EXTERNAL_OBJECT_ID =?</co:hashTableSelectStatement>
</co:hashTable>

<co:rule>
  <co:ruleConditions>
    <co:orCondition>
      <co:ruleCondition expression="POSITION_TITLE" matching="HASSUBSTRING" value="Manager"/>
      <co:ruleCondition expression="POSITION_TITLE" matching="HASSUBSTRING" value="Supervisor"/>
    </co:orCondition>
  </co:ruleConditions>
  <assignCommand context="GROUP" target="_hashval" hashident="ORGUNIT" index="TEAM" type="SUPERVISOR" execute="ALWAYS" />
</co:rule>

<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="POSITION_TITLE" matching="HASSUBSTRING" value="2IC"/>
  </co:ruleConditions>
  <assignCommand context="GROUP" target="_hashval" hashident="ORGUNIT" index="TEAM" type="DEPUTY1" execute="ALWAYS" />
</co:rule>

Job Profil ID suchen, um Nutzer zuzuordnen

Die nachstehenden HashTable- und AssignCommand-Regelbeispiele können verwendet werden, um Nutzern auf der Grundlage einer Übereinstimmung dynamisch Stellenprofile zuzuweisen. Der assignCommand für Job-Profile basiert auf der Learning Suite-Objekt-ID, und diese hashTable-Anweisung findet das Job-Profil mit einem Namen, der mit einem Wert des Nutzer-Attributs übereinstimmt. In der assignCommand-Regel ist der „index“ das Nutzer-Attribut, das Werte enthält, die mit den Namen der Stellenprofile übereinstimmen. Solche Regeln werden in der Regel von Kunden mit dem Zusatzmodul Skills & competencies verwendet, um automatisch bestimmte Job-Profile zuzuweisen, die die für den Nutzer erforderlichen Fähigkeiten enthalten.

XML
<co:hashTable identifier="MapJP" defaultValue="0" comment="Ordnet den Namen des Auftragsprofils der Objekt-ID zu">
	<co:hashTableSelectStatement isIntAttribute="false">SELECT max(role_id) FROM role_description WHERE name = ? AND language_id = 27</co:hashTableSelectStatement>
</co:hashTable>

<co:rule>
  <co:assignCommand context="JOBPROFILE" target="_hashval" index="POSITION_TITILE" hashident="MapJP" execute="ALWAYS"/>
</co:rule>

Suche nach dem Vorgesetzten

Für die Herstellung von Eins-zu-Eins-Beziehungen zwischen Vorgesetzten verwendet die Learning Suite das Nutzerattribut SUPERVISOR_EMAIL. Die Logik findet im Wesentlichen den Nutzer, dessen EMAIL mit dem in SUPERISOR_EMAIL des Nutzers eingegebenen Wert übereinstimmt, und erstellt die Verknüpfung. Da viele Quellsysteme, die zur Erstellung von Nutzerkonten verwendet werden, nicht über ein solches SUPERVISOR_EMAIL-Feld verfügen, sind oft alternative Regeln erforderlich. Im folgenden Beispiel enthalten die benutzerdefinierten persönlichen Attribute EMPLOYEE_ID und MANAGER_ID die entsprechende Beziehung. Die HashTable verwendet den Wert des benutzerdefinierten Benutzerattributs, um Details über den Vorgesetzten im System zu finden. Die setCommand-Regeln füllen dann die Standard-Supervisor-Benutzerattribute auf der Grundlage der HashTable, die den Benutzer mit dem passenden Wert zum benutzerdefinierten Benutzerattribut findet.

XML
<!-- People Leader Assignments: -->
<!-- SUPERIROR_EMAIL -->
<co:hashTable identifier="SUP_EMAIL" defaultValue="" comment="Ruft die E-Mail-Adresse des Vorgesetzten aus der Eingabe MANAGER_ID ab, die mit der EMPLOYEE_NUMBER des Vorgesetzten abgeglichen wird.">
	<co:hashTableSelectStatement isIntAttribute="false">select P.EMAIL FROM PERSON P, PERSON_CUSTOM PC WHERE P.EXTERNAL_ID = ?</co:hashTableSelectStatement>
</co:hashTable>

<!-- SUPERIROR_FIRSTNAME -->
<co:hashTable identifier="SUP_FIRST" defaultValue="" comment="Ruft den Vornamen des Vorgesetzten aus der Eingabe MANAGER_ID ab, die mit der EMPLOYEE_NUMBER des Vorgesetzten abgeglichen wird.">
	<co:hashTableSelectStatement isIntAttribute="false">select P.FIRSTNAME FROM PERSON P, PERSON_CUSTOM PC WHERE P.EXTERNAL_ID = ?</co:hashTableSelectStatement>
</co:hashTable>

<!-- SUPERIROR_LASTNAME -->
<co:hashTable identifier="SUP_LAST" defaultValue="" comment="<co:hashTable identifier="SUP_LAST" defaultValue="" comment="Ermittelt den Nachnamen des Vorgesetzten aus der Eingabe MANAGER_ID, die mit der EMPLOYEE_NUMBER des Vorgesetzten abgeglichen wird">">
	<co:hashTableSelectStatement isIntAttribute="false">select P.LASTNAME FROM PERSON P, PERSON_CUSTOM PC WHERE P.EXTERNAL_ID = ?</co:hashTableSelectStatement>
</co:hashTable>
			
<co:rule>
	<co:ruleConditions>
		<co:ruleCondition expression="MANAGER_ID" matching="ISNOTEMPTY"/>
	</co:ruleConditions>
	<co:setCommand target="SUPERIOR_EMAIL" value="_hashval" hashident="SUP_EMAIL" index="MANAGER_ID" />
	<co:setCommand target="SUPERIOR_FIRSTNAME" value="_hashval" hashident="SUP_FIRST" index="MANAGER_ID" />
	<co:setCommand target="SUPERIOR_LASTNAME" value="_hashval" hashident="SUP_LAST" index="MANAGER_ID" />
</co:rule>
<!-- End People Leader Assignments -->

Länder-, Sprach- und Zeitzonenzuordnungen

Viele Kunden, wie Scheer imc, sind multinational und haben Niederlassungen in mehreren Ländern. Das bedeutet, dass die Learning Suite wahrscheinlich mit mehreren Sprachen und benutzerspezifischen Zeitzonen konfiguriert wird. Durch Regeln können persönliche Attributwerte für das Land, die bevorzugte Sprache und die Zeitzone des Nutzers effizient festgelegt werden. Regeln sind in der Regel erforderlich, da verschiedene Nutzerdaten-Quellsysteme unterschiedliche Werte enthalten.

Ländercode-Zuordnung

Nachfolgend ein Beispiel für eine hastTable, die iso-Ländercodes aus einem Quellsystem den entsprechenden Länder-IDs im persönlichen Attribut COUNTRY_ID der Learning Suite-Auswahlliste zuordnet.

XML
<co:hashTable identifier="COUNTRY_MAP" defaultValue="0" comment="Zuordnung von ISO-Code zu Länderkennung">
  <co:hashTableRow index="DE" value="82" comment="Germany"/>
  <co:hashTableRow index="Germany" value="82" comment="Germany"/>
  <co:hashTableRow index="GERMANY" value="82" comment="Germany"/>
  <co:hashTableRow index="DEUTSCHLAND" value="82" comment="Germany"/>
  <co:hashTableRow index="Deutschland" value="82" comment="Germany"/>
  <co:hashTableRow index="CH" value="209" comment="Switzerland"/>
  <co:hashTableRow index="Switzerland" value="209" comment="Switzerland"/>
  <co:hashTableRow index="RO" value="180" comment="Romania"/>
  <co:hashTableRow index="RU" value="180" comment="Romania"/>
  <co:hashTableRow index="Romania" value="180" comment="Romania"/>
  <co:hashTableRow index="SG" value="193" comment="Singapore"/>
  <co:hashTableRow index="SGP" value="193" comment="Singapore"/>
  <co:hashTableRow index="Singapore" value="193" comment="Singapore"/>
  <co:hashTableRow index="AT" value="14" comment="Austria"/>
  <co:hashTableRow index="Austria" value="14" comment="Austria"/>
  <co:hashTableRow index="Österreich" value="14" comment="Austria"/>
  <co:hashTableRow index="NZ" value="157" comment="New Zealand"/>
  <co:hashTableRow index="New Zealand" value="157" comment="New Zealand"/>
  <co:hashTableRow index="AU" value="13" comment="Australia"/>
  <co:hashTableRow index="AUS" value="13" comment="Australia"/>
  <co:hashTableRow index="Australia" value="13" comment="Australia"/>
  <co:hashTableRow index="Australien" value="13" comment="Australia"/>
  <co:hashTableRow index="AUSTRALIA" value="13" comment="Australia"/>
  <co:hashTableRow index="Croatia" value="54" comment="Croatia"/>
  <co:hashTableRow index="HR" value="54" comment="Croatia"/>
  <co:hashTableRow index="GB" value="227" comment="United Kingdom"/>
  <co:hashTableRow index="UK" value="227" comment="United Kingdom"/>
  <co:hashTableRow index="United Kingdom" value="227" comment="United Kingdom"/>
  <co:hashTableRow index="United States" value="228" comment="United States"/>
  <co:hashTableRow index="US" value="228" comment="United States"/>
  <co:hashTableRow index="USA" value="228" comment="United States"/>
  <co:hashTableRow index="Netherlands" value="154" comment="Netherlands"/>
  <co:hashTableRow index="NL" value="154" comment="Netherlands"/>
  <co:hashTableRow index="BA" value="27" comment="Netherlands"/>
  <co:hashTableRow index="Bosnia-Herz." value="27" comment="Netherlands"/>
</co:hashTable>
	
<!-- COUNTRY -->
<co:rule>
  <co:setCommand target="COUNTRY_ID" value="_hashval" hashident="COUNTRY_MAP" index="COUNTRY"/>
</co:rule>

Abbildung der Sprache

Mit Sprachattributen können diese der COUNTRY_ID zugeordnet werden, um die dem Nutzer angezeigten System- und Inhaltssprachen vorzudefinieren. Die nachstehende Regel stammt aus einem System, das die Sprachen Englisch GB und Deutsch anbietet. In diesem System ist die Standardsprache in den persönlichen Attributen als Englisch GB definiert, so dass die Regel eine hashTable verwendet, um die deutschsprachigen Länder-IDs der deutschen Sprach-ID zuzuordnen. Dann identifiziert die Regelbedingung nur Nutzer, die sich noch anmelden müssen, und setzt zwei persönliche Sprachattribute auf der Grundlage der HashTable-Zuordnung. Durch die Verwendung von COUNTOFLOGINS wird sichergestellt, dass die Regeln die Sprachen nicht erneut ändern, wenn der Nutzer sich entscheidet, seine bevorzugte Sprache zu ändern.

XML
<co:hashTable identifier="SET_LANGUAGE" defaultValue="27">
  <co:hashTableRow index="14" value="23" comment="AT"/>
  <co:hashTableRow index="82" value="23" comment="DE"/>
  <co:hashTableRow index="209" value="23" comment="CH"/>
</co:hashTable>

<!-- SET INITIAL VALUES -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="COUNTOFLOGINS" matching="EQUAL" value="0"/>
  </co:ruleConditions>
  <co:setCommand target="LANGUAGE_ID" value="_hashval" hashident="SET_LANGUAGE" index="COUNTRY_ID" />
  <co:setCommand target="PREFERRED_LANGUAGE_ID" value="_hashval" hashident="SET_LANGUAGE" index="COUNTRY_ID" />
</co:rule>

Zeitzonen-Zuordnungen

Das Nutzerattribut TIMEZONE_ID ist eine wichtige Einstellung, die von den Nutzern aktualisiert werden muss, da die ausgewählte Zeitzone die angezeigten Trainingsdaten/-zeiten verändern kann. Dieses Attribut kann auch automatisch aktualisiert werden, indem Regeln für die Werte anderer persönlicher Attribute wie COUNTRY oder ein benutzerdefinierter LOCATION verwendet werden. Diese Regeln können für jede erforderliche Zeitzone einzeln oder als HashTable geschrieben werden. Für die Regeln werden die IDs für jede Zeitzone benötigt, die unter folgender Adresse zu finden sind Nutzung von Zeitzonen.

Eine Überlegung bei Zeitzonen ist, dass es Länder wie Australien, Kanada und die Vereinigten Staaten von Amerika gibt, die sich über mehrere Zeitzonen erstrecken; in diesem Fall wäre ein benutzerdefiniertes persönliches Attribut für bestimmte Orte (z. B. Staat, Büro, Stadt) genauer.

XML
<!-- Zeitzonen einstellen -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="OFFICE_LOCATION" matching="Berlin" mode="VALUE"/>
  </co:ruleConditions>
  <co:setCommand target="TIMEZONE_ID" value="121" execute="ONCE"/>
</co:rule>
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="OFFICE_LOCATION" matching="London" mode="VALUE"/>
  </co:ruleConditions>
  <co:setCommand target="TIMEZONE_ID" value="96" execute="ONCE"/>
</co:rule>
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="OFFICE_LOCATION" matching="Sydney" mode="VALUE"/>
  </co:ruleConditions>
  <co:setCommand target="TIMEZONE_ID" value="103" execute="ONCE"/>
</co:rule>

Die Verwendung einer HashTable würde mehrere Zeilen umfassen, in denen der Index auf einen Wert abgebildet wird, der die Objekt-ID jedes Wertes im Benutzerattribut TIMEZONE_ID der Auswahlliste ist.

XML
<co:hashTable identifier="TIMEZONE_MAP" defaultValue="0" comment="Zuordnung von iso-Land zu Zeitzonen-ID">
  <co:hashTableRow index="DE" value="121" comment="Germany"/>
  <co:hashTableRow index="Germany" value="121" comment="Germany"/>
  <co:hashTableRow index="GERMANY" value="121" comment="Germany"/>
  <co:hashTableRow index="DEUTSCHLAND" value="121" comment="Germany"/>
  <co:hashTableRow index="Deutschland" value="121" comment="Germany"/>
  <co:hashTableRow index="CH" value="121" comment="Switzerland"/>
  <co:hashTableRow index="Switzerland" value="121" comment="Switzerland"/>
  <co:hashTableRow index="RO" value="122" comment="Romania"/>
  <co:hashTableRow index="RU" value="122" comment="Romania"/>
  <co:hashTableRow index="Romania" value="122" comment="Romania"/>
  <co:hashTableRow index="SG" value="80" comment="Singapore"/>
  <co:hashTableRow index="SGP" value="80" comment="Singapore"/>
  <co:hashTableRow index="Singapore" value="80" comment="Singapore"/>
  <co:hashTableRow index="AT" value="121" comment="Austria"/>
  <co:hashTableRow index="Austria" value="121" comment="Austria"/>
  <co:hashTableRow index="Österreich" value="121" comment="Austria"/>
  <co:hashTableRow index="NZ" value="71" comment="New Zealand"/>
  <co:hashTableRow index="New Zealand" value="71" comment="New Zealand"/>
  <co:hashTableRow index="AU" value="103" comment="Australia"/>
  <co:hashTableRow index="AUS" value="103" comment="Australia"/>
  <co:hashTableRow index="Australia" value="103" comment="Australia"/>
  <co:hashTableRow index="Australien" value="103" comment="Australia"/>
  <co:hashTableRow index="AUSTRALIA" value="103" comment="Australia"/>
  <co:hashTableRow index="Croatia" value="122" comment="Croatia"/>
  <co:hashTableRow index="HR" value="122" comment="Croatia"/>
  <co:hashTableRow index="GB" value="96" comment="United Kingdom"/>
  <co:hashTableRow index="UK" value="96" comment="United Kingdom"/>
  <co:hashTableRow index="United Kingdom" value="96" comment="United Kingdom"/>
  <co:hashTableRow index="United States" value="94" comment="United States Pacific time"/>
  <co:hashTableRow index="US" value="94" comment=94"United States Pacific time"/>
  <co:hashTableRow index="USA" value="94" comment="United States Pacific time"/>
  <co:hashTableRow index="Netherlands" value="121" comment="Netherlands"/>
  <co:hashTableRow index="NL" value="121" comment="Netherlands"/>
  <co:hashTableRow index="BA" value="121" comment="Netherlands"/>
  <co:hashTableRow index="Bosnia-Herz." value="122" comment="Bosnia"/>
</co:hashTable>
	
<!-- COUNTRY -->
<co:rule>
  <co:setCommand target="TIMEZONE_ID" value="_hashval" hashident="TIMEZONE_MAP" index="COUNTRY"/>
</co:rule>

Erweiterte Berechnungen und Verarbeitung

Regeln sind in der Lage, Berechnungen oder Prozesse mit Hilfe einzelner SQL-Anweisungen durchzuführen. Solche Regeln erfordern SQL-Kenntnisse und ein Verständnis der Learning Suite-Datenbank. Nachfolgend finden Sie einige Beispiele von Kunden, die SQL verwenden, um einen Wert in einem setCommand zu generieren.

Die folgende Regel berechnet das Alter des Lernenden in ganzen Jahren auf der Grundlage der Differenz zwischen dem aktuellen Datum und seinem Geburtsdatum. Dies wurde von einem Kunden benötigt, der ein Mindestalter für die Anmeldung zu einigen Schulungskursen forderte.

XML
<!-- Berechnung der Jahre seit DOB START -->
<co:hashTable identifier="YEARS_SINCE_DOB" defaultValue="0" comment="Mapping of Years since DOB">
  <co:hashTableSelectStatement isIntAttribute="false">SELECT datediff(hh,?,getdate())/8766</co:hashTableSelectStatement>
</co:hashTable>
			
<!--<co:hashTableSelectStatement isIntAttribute="false">SELECT datediff(yy,?, current_timestamp)</co:hashTableSelectStatement>-->
<co:rule> 
  <co:setCommand value="_hashval" target="AGE" hashident="YEARS_SINCE_DOB" index="DATE_OF_BIRTH"/>
</co:rule>
<!-- Berechnung der Jahre seit DOB END -->

Die folgende Regel berechnet die Anzahl der Beschäftigungstage auf der Grundlage der Differenz zwischen dem aktuellen Datum und dem Datum des Beschäftigungsbeginns. Diese Berechnung wurde von einem Kunden verwendet, der bestimmte Zeitfenster für Compliance-Schulungen auf der Grundlage der Tage seit der Einstellung hatte.

XML
<co:hashTable identifier="DAYS_SINCE_EMPL" defaultValue="0" comment="Berechnung der Tage seit der Beschäftigung">
  <co:hashTableSelectStatement isIntAttribute="false">SELECT datediff(d,?, current_timestamp)</co:hashTableSelectStatement>
</co:hashTable>

<co:rule> 
  <co:setCommand value="_hashval" target="DAYS_SINCE_EMPLOYMENT" hashident="DAYS_SINCE_EMPL" index="EMPLOYMENT_START_DATE"/>
</co:rule>

Die folgende Regel verknüpft zwei Werte, um einen bestimmten Wert zu erhalten. In diesem Fall benötigt der Kunde eine E-Mail-Adresse, die die Handynummer des Nutzers enthält, um grundlegende Nachrichten als SMS zu versenden. Diese Regel kann auch mit Opt-in-Regeln erweitert werden.

XML
<co:hashTable identifier="addDomain" defaultValue="unknown" >
  <co:hashTableSelectStatement isIntAttribute="false">SELECT ? + '@email.smsglobal.com' </co:hashTableSelectStatement>
</co:hashTable>			

<!-- Email to SMS Address Building -->
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="WORK_MOBILE" matching="ISNOTEMPTY"/>
  </co:ruleConditions>	
  <co:setCommand target="SMS_EMAIL" value="_hashval" hashident="addDomain" index="WORK_MOBILE"/>
</co:rule>	

Datumsumwandlungen

Für den Import von Nutzerattributen gegen Learning Suite Datum/Uhrzeit ist das spezifische Format JJJJ-MM-TT hh:mm:ss.s erforderlich. Dieses Format kann von den Quellsystemen der Nutzerdaten nicht immer exportiert werden und muss möglicherweise mit Hilfe von Registrierungsregeln umgewandelt werden. Dies kann durch eine HashTable mit einer spezifischen Anweisung erreicht werden, die das eingegebene Datumsformat berücksichtigt. In Anbetracht der unterschiedlichen Datumsformate und Anweisungen sollten solche Anforderungen bei Bedarf mit imc besprochen werden. Nachstehend finden Sie einige Beispielkonvertierungen.

CODE
<co:hashTable identifier="DATUM" defaultValue="" comment="Date from YYYYMMDD to YYYY-MM-DD hh:mm:ss">
  <co:hashTableSelectStatement isIntAttribute="false">SELECT CONVERT(Datetime,LEFT(?,23),126)
  </co:hashTableSelectStatement>
</co:hashTable>

<co:hashTable identifier="ENGLISH_DATE" defaultValue="" comment="Date from English format">
  <co:hashTableSelectStatement isIntAttribute="false">SELECT CONVERT(datetime, ?,103);</co:hashTableSelectStatement>
</co:hashTable>

<co:hashTable identifier="DATE_CONVERSION" defaultValue="" comment="">
  <co:hashTableSelectStatement isIntAttribute="false">select convert(varchar, ?, 121) + ' 00:00:00.0'</co:hashTableSelectStatement>
</co:hashTable>
			
<co:rule>
  <co:ruleConditions>
    <co:ruleCondition expression="HIRE_DATE" matching="ISNOTEMPTY" />
  </co:ruleConditions>
  <co:setCommand target="EMP_START_DATE" value="_hashval" hashident="DATE_CONVERSION" index="HIRE_DATE" />
</co:rule>

Zusammenfassung

Dieser Artikel enthält Informationen über den Zweck, die Möglichkeiten, die Vorteile, die Formate und verschiedene Beispiele von Registrierungsregeln. Wie man sieht, kann die Verwendung von Registrierungsregeln viele Effizienzgewinne bringen und ist eine sehr wichtige Konfiguration. Obwohl Registrierungsregeln für Systemadministratoren zugänglich sind, wird dringend empfohlen, Anforderungen oder Ideen mit Scheer imc Consultants zu besprechen, die in diesem Bereich erfahren sind.


📋 Related articles

Nutzer-Attribute

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.