In diesem Profil können beliebige Daten über den Benutzer abgelegt werden, etwa Name, Interessen, Abteilung etc.
Diese Informationen können von Designer einer Website oder eines Intranets dazu verwendet werden, den User genau diejeneigen Informationen zu präsentieren, die seinem Profil entsprechen. so können z. B. Vertriebsmitarbeitern Vertriebsinformationen und Projektmitarbeitern Projektinformationen angeboten werden.
Ziel ist es dabei immer, die Gesamtmenge an Informationen einer Site für jeden Benutzer individuell so weit zu reduzieren, daß er in kürzester Zeit die "passenden" Daten für seine Arbeit zur Verfügung hat.
Wie entstehen die Daten in den Profildokumenten?
Es gibt grundsätzlich vier Wege, Informationen im Benutzerprofil abzuspeichern:
- 1. Benutzerdaten über Eingabeformulare
Der einfachste und flexibelste Weg ist es, dem Benutzer ein Eingabeformular im Web zu präsentieren, in dem nach den notwendigen Daten gefragt wird.
Dieser Weg setzt natürlich die "Kooperationsbereitschaft" des Benutzers voraus. In der Regel sollte daher auf der Site die Eingabe der Daten entsprechend motiviert werden.
2. Benutzerdaten über "Aktionen"
In WGA wurde eine Verfahren realisiert, mit dem auf einfache Weise durch Klicken eines Links oder Buttons "Aktionen" gestartet werden können. Diese Aktionen können dafür verwendet werden, bestimmte Informationen im Benutzerprofil zu hinterlegen (Benutzer hat diese Aktion angeklickt). Denkbar ist z. B., mit Hilfe von Aktionen "Ungelesenmarkierungen" im Intranet nachzubilden, indem die Aktion speichert, welches Dokument gelesen wurde.
3. Statistikinformationen
Neben den "freiwilligen" Daten sammelt WGA automatisch bestimmte Statistikinformationen wie die Anzahl der Sessions, die zuletzt besuchte URL oder die Anzahl Seiten, die der Benutzer besucht hat. Diese Informationen können getrennt oder zusammen mit den "freiwilligen" Daten dazu verwendet werden, User zu "klassifizieren" (dazu später mehr).
4. Zusatzdaten aus Backendsystemen
Sind die Webuser "bekannt", z. B. indem Sie sich per Name oder ID identifiziert haben, können die Profile auch durch beliebige Daten aus Backendsystemen (SAP, Notesanwendungen, etc.) angereichert werden. Dies geschieht über periodische Agenten, die über alle Profildokumente iterieren und Lookups in die gewünschten Backendsysteme ausführen.
Wo werden Profildaten abgelegt?
In welcher Datenbank Profileinformationen abgelegt werden, kann in der WGA Konfiguration eingestellt werden. Dazu gibt es im WGA-Admin-Client (neu ab WGA 2.1) eine entsprechende Seite:

In WGA 2.1 werden die Profildaten in einer speziellen Lotus Domino Datenbank abgelegt - der Personalisierungsdatenbank. Spätere Versionen von WGA werden die Möglichkeit besitzen, diese Daten alternativ in SQL-Datenbanken abzuspeichern.
In WGA 2.1 gibt es drei Möglichkeiten der Benutzeridentifiziertung: "Automatic", "Custom" und "Login". Diese Methoden werden im WGA-Admin-Client zusammen mit der Datenquelle eingestellt.
Bei Einstellung "Automatic" erhalten Benutzer automatisch einen Cookie, der fest mit einem Benutzerprofil verbunden ist. Ein entsprechendes Benutzerprofil wird neu angelegt, wenn der Benutzer das erste mal die Site besucht, also noch keinen WGA-Cookie besitzt.
Bei Einstellung "Custom" findet keine automatische Zuordnung eines Benutzerprofils statt. Statt dessen ist der Web-Designer selbst dafür verantwortlich, das Benutzerprofil zu "aktivieren". Dazu stehen entsprechende Mechanismen zur Identifizierung und zum Erzeugen neuer Benutzerprofile zur Verfügung, die weiter unten beschrieben sind.
Die Identifizierung des Benutzers geschieht über Benutzername und Password, die im Benutzerprofil abgespeichert sind und von WGA überprüft werden.
Der Designer ist hier auch dafür verantwortlich, ggfl. ein neues Benutzerprofil neu anzulegen.
Bei Einstellung "Login" erhalten nur diejenigen Benutzer ein Profil, die sich an WGA (und damit an dem dahinterliegenden Datenbanksystem) anmelden. Auch in diesem Fall wird ein neues Profildokument automatisch angelegt, fall der Benutzer sich das erste mal auf der Site anmeldet.
Benutzerklassen
In realen personalisierten Websites ist es in der Regel nicht sinnvoll, das Design eines Template von einem konkreten Benutzer anhängig zu machen. Daher können Benutzer zu "Klassen" zusammengefaßt werden. Das Template zeigt dann für alle "Benutzer einer Klasse" entsprechende Informationen an.
Benutzerklassen werden ebenfalls mit dem WGA-Admin-Client angelegt und verwaltet:

Im obigen Beispiel wird eine Benutzerklasse "Poweruser" definiert. Poweruser sind User, die mindestens 10 mal die Site besucht haben.
Die Definition einer Benutzerklasse geschieht über die Eingabe einer "Regel" (englisch "Rule"), d. h. einer Funktion, die True oder False zurückliefert. In diesem Beispiel heißt die Regel: "this.meta.item("profile", "WGPSessioncount") > 10".
Die Regeln werden jedesmal dann ausgewertet, wenn sie "angefragt" werden.
Verwenden von Benutzerregeln
Zur Verwendung von Benutzerregeln wurden in WGA zwei neue Condition-Attribute eingeführt, die in den Tags <tml:if> und <tml:case> verwendet werden können. Das folgende Beispiel zeigt ein Item nur dann an, wenn der Benutzer "Mitglied" der Klassen "Kunden" oder "Mitarbeiter" ist:
- <tml:case hasanyclass="Kunde,Mitarbeiter">
- <tml:item name="Kundeninformationen"/>
Das zweite Conditionattribute "hasallclasses" fragt ab, ob der Benutzer Mitglied aller angegeben Benutzerklassen ist. Die Klassen werden durch Komma getrennt eingegeben:
- <tml:case hasallclasses="Kunde,Poweruser">
- <tml:item name="wichtige_Kundeninformationen_fuer_Powerkunden"/>
Abfragen von Benutzerdaten per TML
Zur Abfrage von Benutzerfeldern wird das Attribut type="Profile" im <tml:item>-Tag verwendet:
- <tml:item name="feld" type="profile">
Abfragen von Benutzerdaten per TMLScript
Zur Abfrage von Profildaten per TMLScript existiert das Objekt this.profile mit den Methoden item(feldname) sowie itemList(feldname):
- this.profile.item(feldname) liefert das Feld "feldname" des Benutzerprofils zurück.
this.profile.itemList(feldname) liefert das Feld "feldname" des Benutzerprofils als Liste zurück.
Speichern von Profildaten
Das Speichern von Profildaten geschieht grundsätzlich über folgenden TMLScript-Methoden:
- this.profile.setItem(Feldname, Wert)
this.profile.save()
Beispiel:
- <tml:form id="" source="profile">
- Name: <tml:input name="name"/><br>
Alter: <tml:input name="alter"/><br>
<a href="<tml:url type="action">this.tmlform.storeInProfile()</tml:url>">Speichern</a>