Diese Seite wird im abgesicherten Modus angezeigt (HTTPS).
2. Anlage einer Schnittstelle (AXTDLOGIN) für den Aufruf des Webservice für die Anmeldung
3. Anlage von Entitäten (ASHIPADDR), um die Benutzerkontendaten zu speichern
4. Anlage 'Webaktion' vom Typ 'Login' (ASESSLOGIN)
Eingabeparameter: Benutzercode und Passwort.
Diese Parameter werden mit den Parametern des Webservice gemappt.
5. Anlage Token 'Dynamische Verknüpfung' (ADLKLOGIN)
Einfügen in die HTML-Seite (Button 'Freigabe'), um die Benutzeraktion anzustoßen
6. Anlage 'Webseite' (AUSERACCOUNT)
Zeigt die vom Unterprogramm für die Anmeldung zurückgegebenen Benutzerkontendaten an
Diese Seite wird im abgesicherten Modus angezeigt (HTTPS)
Die XTEND-Anmeldedaten werden in den X3-Benutzerdaten verwaltet.
XTEND-Benutzer sind als X3-Benutzer deklariert, bei denen das Kontrollkästchen 'Verbindung Website' aktiviert ist.
Das Safe-X3-Was-Profil wird übernommen und in der Entität ASESSION.AUSERPROFILE belegt.
Die Datei AYTXTLOGIN.src umfasst die Quelldateien des Anmeldungsprogramms.
Die Daten des Benutzerkontos sind in der Verarbeitung hart codiert.
Mit dem Konto sage / sage wird die Anmeldung ohne Passwortprüfung durchgeführt.
Beispiel
Anmeldungsverwaltung für die Website ATEMPLATE
In den Unterprogrammdaten von AYTXTLOGIN sind die Unterprogrammparameter beschrieben.
Für weitere Erläuterungen zum Anmeldungsprogramm siehe Dokument Benutzeraktion.
Die sonstigen Parameter (AX*) sind obligatorisch und müssen in allen XTEND-Anmeldungsprogrammen implementiert sein.
Vor dem Fortfahren muss gewährleistet sein, dass das Unterprogramm unter dem Veröffentlichungsnamen AXTDLOGIN veröffentlicht wurde.
1. Anlage von Schnittstellendaten AXTDLOGIN vom Typ 'Unterprogrammaktion'
2. Auswahl des Veröffentlichungsnamens AXTDLOGIN
3. Prüfung auf geschützten Zugriff
4. Kontrollkästchen 'Alle Meldungen anzeigen' aktivieren
5. Speichern und Freigabe
6. Den Zugriff generieren.
Parametercode | Gruppe | Dimension | Parametername |
AXPARCOD | AX_PAR | 20 | Parametercode |
AXPARVAL | AX_PAR | 20 | Parameterwert |
AXUSERCODE | AXLOG_PAR | 1 | Benutzercode übernommen |
AXPWD | AXLOG_PAR | 1 | Passwort des Benutzers übernommen |
AXUSERPROF | AXLOG_PAR | 1 | XTEND-Profil übernommen |
AX3SOL | X3LOG | 10 | Lösung zurückgegeben |
AX3FLDR | X3LOG | 10 | Ordner zurückgegeben |
AX3LANG | X3LOG | 10 | Sprache zurückgegeben |
AX3USER | X3LOG | 10 | Benutzer zurückgegeben |
AX3PWD | X3LOG | 10 | Passwort zurückgegeben |
AXLOGCOD | AXLOG_RES | 50 | AXLOCOD / AXLOGVAL: Benutzerzusatzdaten vom Typ Schlüssel / Wert, die in der XTEND-Sitzung gespeichert werden (Block ASESSION). |
AXLOGVAL | AXLOG_RES | 50 | Analog |
SHIPADDR1 | X3LOG | 10 | Benutzerdaten zurückgegeben |
SHIPADDR2 | X3LOG | 10 | Analog |
SHIPCITY | X3LOG | 10 | Analog |
SHIPZIP | X3LOG | 10 | Analog |
7. Generierung aller Schnittstellenfelder
Siehe Menü 'Tools/<field>-Token anlegen'
Die Benutzerfelder werden in Form einer Liste von Schlüsseln und Werten (AXPARCOD / AXPARVAL) übergeben und sind nur in den Unterprogrammparametern sichtbar (NAME, FIRSTNAME, PHONE, EMAIL).
Diese Felder müssen daher mit der XTEND-Funktion '<field>-Token' deklariert werden.
Die Felder der Parameter AXPARCOD / AXPARVAL (Schlüssel / Wert) werden vom XTEND-Server automatisch der Benutzersitzung ASESSION hinzugefügt.
Der Benutzer von Schlüssel / Wert kann die Anzahl von Unterprogrammparametern begrenzen.
Anlage der Entität ASHIPADDR vom Typ Aktion.
Siehe Menü 'Tools / Eingabehilfe'.
Diese Entität wird anschießend beim Mapping der Rückgabe der Anmeldeaktion verwendet.
Anlage der Aktion ASESSLOGIN vom Typ Anmeldung. Als Parameter werden die Felder AXUSERCODE und AXPWD erfasst.
Löschen am Anfang
deaktiviert: Die Entitäten sollen nur gelöscht werden, wenn die Anmeldung erfolgreich ist
Rückmeldung Aktivität
Ja: damit jeder Aktionsaufruf in der Protokolldatei geführt wird
Aktiv nach Reload
Nein: damit nicht erneut eine Anmeldung durchgeführt wird, wenn der Benutzer auf F5 drückt
Die XTEND-Felder müssen den Aufrufparametern des Webservice Anmeldung zugeordnet werden.
In unserem Fall müssen nur die Aktionsparameter AXUSERCODE, AXPWD gemappt werden.
Für das Mapping der Aktionsparameter wird nicht der Entitätscode erfasst.
Anlage der Entität ASHIPADDR vom Typ Aktion aus den von X3 zurückgegebenen Daten.
Diese Entität basiert auf einer mehrdimensionalen Parametergruppe (AXLOG_PAR) und damit auf mehreren Datensätzen.
Die Entitäten vom Typ Aktion werden während der gesamten Benutzernutzungsdauer im Speicher gehalten.
Sie werden bei jedem Aktionsaufruf automatisch erneut angelegt.
Der dynamische Link ADLKLOGIN ist das Token, das in den Anmeldebutton (<input>-Tag) eingefügt wird. Mit ihm können die Zielseite (in unserem Fall: aktuelle Seite) definiert, die Aktion ASESSLOGIN zugeordnet und die Parameter belegt werden.
Rückmeldung Aktivität
Ja: damit jeder Klick auf den Link in der Protokolldatei geführt wird
HTTP-Post-Modus erzwingen
Nein: Da dem dynamischen Link eine Aktion mit Parametern zugeordnet ist, wird die Abfrage automatisch im POST-Modus gesendet.
Aktuelle Seite
Ja: Das Ergebnis (Benutzerdaten) wird auf der aktuellen Seite angezeigt
Aktion
Code der anzustoßenden Aktion (ASESSLOGIN)
Prüfung Webfelder
Ja: für den Paramter Benutzercode für die automatische Prüfung der Mussfelder
Nein: für den Parameter Passwort, da leere Passwörter zulässig sind
Hier werden sämtliche Parameter der Anmeldeaktion deklariert und angegeben, ob diese belegt werden sollen.
AXUSERCODE, AXPWD
'Chp Web Oblig' : Bei Webfeldern obligatorisch
'Champ web': enthält den Namen des <input>-Tags (Attributnamen)
Die Eingabeprüfung ist nur aktiv, wenn das Kontrollkästchen 'Allgemein/Prüfung Webfelder aktiviert ist.
Die Abfrage wird nur unter folgenden Bedingungen an den XTEND-Server gesendet:
Die Prüfung wird von der JavaScript-Bibliothek von XTEND durchgeführt.
Das <block>-Token ABLKSHIPADDR wird für die Anzeige der ASHIPADDR-Entitäten der Lieferadressen verwendet.
Typ
Mehrere Datensätze: Iteration über alle ASHIPADDR-Entitäten und Positionierung derselben oben (Top) auf dem Stapel der Kontextdaten, dann Ausführung der abgeleiteten Token.
Keine Daten
Nichts anzeigen: Wenn die Entität ASHIPADDR nicht existiert, werden Block und abgeleitete Token ignoriert.
Entität
ASHIPADDR: Code der anzuzeigenden Entität
Zeilen pro Block
10: Auf der Seite werden maximal 10 ASHIPADDR-Entitäten angezeigt.
Zellen pro Zeile
1: Pro Zeile wird eine Entität angezeigt.
Stil pro Zeile
oddLine et evenLine: in der Datei 'my.css' für die farbliche Hervorhebung der Zeilen zu definierenden Stile.
Es können keine Auswahlkriterien für Blöcke definiert werden, in denen im Speicher des XTEND-Servers gehaltene Entitäten selektiert werden (d. h. Entitäten vom Typ Sitzung oder Aktion). Im Block werden automatisch sämtliche Entitäten ausgewählt.
Die Auswahlkriterien beziehen sich lediglich auf Entitäten vom Typ 'Datenzugriff'.
Anlage der Webseite ALOGIN
Standardseite
Zuordnung der Datei login.html.
Die Datei muss auf dem X3-Server liegen und mit der Taste F12 selektiert worden sein.
Protokoll
HTTPS: Verschlüsselung der Abfragedaten (siehe HTTPS-Konfiguration).
Hauptblock und Hintergrundblock
Keiner
Zugriff geschützt
Nein: Auf die Seite kann frei (anonym) zugegriffen werden.
Rückmeldung Aktivität
Ja: damit jede Seitenanzeige in der Protokolldatei geführt wird.
Anlage der Webseite AUSERACCOUNT.
Standardseite
Zuordnung der Datei account.html.
Protokoll
HTTPS: Verschlüsselung der Abfragedaten.
Zugriff geschützt
Ja: um den Zugriff auf diese Seite für anonyme Benutzer zu sperren.
Rückmeldung Aktivität
Ja: damit jede Seitenanzeige in der Protokolldatei geführt wird.
Nach der Änderung von X3-Parametern wird empfohlen, die gesamte Website über die Funktion freizugeben, damit das Dictionary des XTEND-Servers über die Funktion Freigabe Website (AYTFCYGEN) neu aufgebaut wird.
Es ist zu prüfen, ob die XTEND-Website veröffentlicht wurde, also ob das Feld 'Website veröffentlicht' auf dem Datenblatt 'Website' aktiviert ist.
Einfügen des Webseitentokens ALOGIN in die Auswahlliste links zur Seitenanzeige.
<TD class="button"><A adx="ALOGIN">Login</A></TD>
Zur Realisierung eines einfachen Links (ohne Aktion und ohne Auswahl) zu einer Website mit einem Anker-Tag muss lediglich ein Token vom Typ 'Website' in das Tag (<a adx="PageWeb"></a>) eingefügt werden, um die Anzahl von <dynamic link>-Token zu begrenzen.
Der Inhalt der Auswahlliste links wird dynamisch geändert, je nachdem, ob es sich um einen Benutzer mit Signatur handelt oder nicht.
Hierfür haben wir das Token für bedingte BlöckeADISPUSERLOGGEDIN verwendet, das bei Benutzern mit Signatur den Blockinhalt (abgeleitete Elemente) anzeigt.
<!adx="ADISPUSERLOGGEDIN">
<!--Left menu for authenticated user-->
<TR>
<TD class="button">
<A adx="AUSERACCOUNT">Konto</A>
</TD>
</TR>
<TR>
<TD class="button">
<A adx="ADLKLOGOUT">Logout</A>
</TD>
</TR>
<!adx="ADISPUSERLOGGEDIN">
<!adx="ADISPUSERLOGGEDIN:xnot">
<!--Left menu for anonymous user-->
<TR>
<TD class="button">
<A adx="ALOGIN">Login</A>
</TD>
</TR>
<!adx="ADISPUSERLOGGEDIN">
Anlage der Eingabefelder <input type="text"> für den Benutzercode und das Passwort.
Wird in keinem <input>-Tag ein Name-Attribut angegeben, wird automatisch eines mit dem Namen des adx-Tokens generiert.
Der Parameter xrc(<input adx="TokenName:xrc">) wird verwendet, den letzten erfassten Wert erneut anzuzeigen, falls vom XTEND-Server oder von der X3-Anwendung ein Erfassungsfehler ermittelt wurde. So gehen die erfassten Daten nicht verloren.
Für die Erfassung des Passworts wird das Attribut name="AXPWD" hinzugefügt, da zur erneuten Anzeige des Passworts kein adx-Token eingefügt werden muss.
Anlage eines Freigabebuttons <input type="button"> und Einfügen des Tokens ADLKLOGIN, das die Anmeldeaktion anstößt.
Alle <input type="button">-Buttons, die adx-Token enthalten, müssen vom Typ Button sein.
Der Typ 'submit' darf nicht verwendet werden.
<tr>
<td><b>Code:</b></td>
<td> <input name="AXUSERCODE" type="text" adx="AXUSERCODE:xrc"></td>
<td><input type="button" value="Valider" class="button" adx="ADLKLOGIN"></td>
</tr>
<tr>
<td><b>Mot de passe:</b></td>
<td colspan="2"> <input type="password" name="AXPWD"> </td>
</tr>
Das Token ADLKLOGIN zeigt die Seite AXUSERACCOUNT an, sofern die Signatur vom X3-Unterprogramm freigegeben wird.
Eine Benutzeraktion wird als gültig betrachtet, wenn der Aufruf des Webservice keine Fehlermeldung zurückgibt.
Fehlermeldungen werden in 4GL mit dem Unterprogramm ADDMESSERR (Call ADDMESSERR("Message") From AWEB) ausgegeben.
Die Anzeige der X3-Meldungen wird mit dem Token AXUSERMSG ausgeführt.
Beispiel: <span id="userMsg" class="userMsg" adx="aMsgUser"></span>
Auf der Seite AUSERACCOUNT werden die Daten des Benutzerkontos angezeigt. Diese stammen aus dem Mapping der vom Unterprogramm für die Anmeldung zurückgegebenen Parameter:
Zur Anzeige der Id-Daten werden die 'Webfeld'-Token ohne Angabe des Datenkontexts (<block>-Token> positioniert, denn die Sitzungsdaten stehen immer in Form einer Webseite zur Verfügung.
<tr>
<td><b>Nom:</b></td>
<td adx="NAME"></td>
</tr><tr>
<td><b>Vorname:</b></td>
<td adx="FIRSTNAME"></td>
</tr><tr>
<td><b>E-Mail:</b></td>
<td adx="EMAIL"></td>
</tr><tr>
<td><b>Tel.:</b></td>
<td adx="PHONE"></td>
</tr>
Die Anzeige der Lieferadressliste besteht darin, den Block ABLKSHIPADDR zu positionieren. Dieser iteriert über die Adressliste und ermöglicht es, dieselbe Anzahl von Zeilen in der Tabelle anzulegen wie Adressen in der Liste vorhanden sind.
Für jede Zeile wird die entsprechende Anzahl von anzuzeigenden Zellen mit einem <adx = "SHIP*">-Tag angelegt.
<table width="100%" border="1">
<tr class="tabTitle">
<th><small><b>Adresse1</b></small></th>
<th><small><b>Adresse2</b></small></th>
<th><small><b>Ort</b></small></th>
<th><small><b>PLZ/b></small></th>
</tr>
<!adx="ABLKSHIPADDR">
<tr adx="aLineStyle:xattr=Class">
<td><small adx="SHIPADR1"></small></td>
<td><small adx="SHIPADR2"></small></td>
<td><small adx="SHIPCITY"></small></td>
<td><small adx="SHIPZIP"></small></td>
</tr>
<!adx="ABLKSHIPADDR">
</table>
Zur Anzeige der Zeilen einer Tabelle in verschiedenen Farben wird ein <adx>-Token in ein <tr>-Tag eingefügt.
<tr adx="aLineStyle:xattr=Class">
aLineStyle enthält den Klassennamen, und xAttr = Class gibt an, dass das Klassenattribut mit dem Feldwert von aLineStyle zu belegen ist.
Die auf die Tabellenzeilen angewendeten CSS-Klassen (aLineStyle) sind in den Parameterdaten des Blocks definiert.
<!adx="ABLKDOCHTML">
<div adx="TEXTE">
</div>
<!adx="ABLKDOCHTML">