Anmeldung 

Funktionsweise

Die Anmeldung an XTEND basiert auf dem Aufruf eines Webservice über eine Benutzeraktion.

Im vorliegenden Dokument wird die Anmeldung an die Referenzwebsite ASAMPLE beschrieben.

In unserem Beispiel gibt das Unterprogramm für die Anmeldung die Signatur frei und sendet folgende Daten an das Benutzerkonto zurück:

  • in der Sitzungsentität gespeicherte Benutzer-Id
  • in Form von Entitäten vom Typ 'Aktion' gespeicherte und damit anzeigbare Versandadressliste

Wenn Ihre XTEND-Wert seit auf Basis einer Kopie von ASAMPLE erstellt wurde, sind die Parameterdaten bereits angelegt.

Sonst können sie entweder angelegt oder mit dem X3-Aktionsbutton 'Kopieren' einzeln von der Website ASAMPLE kopiert werden.

Prozedur

1. Anlage einer 'Webseite' (ALOGIN) für die Erfassung des Benutzercodes / Passworts.
    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)

Anmeldungsverwaltung für die Website ASAMPLE

Funktionsweise der Anmeldungsverwaltung für die Website ASAMPLE

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.

X3-Parameter

1. Schritt – Schnittstellenanlage

4GL-Verarbeitung

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

Unterprogrammdaten

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.

Schnittstellendaten

   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

  •  In unserem Beispiel haben wir die Versandadressparameter (SHIP*) in der Gruppe X3LOG gebündelt. Es hätte auch eine andere Gruppe dafür verwendet werden können, wenn die Dimension eine andere gewesen wäre als die der Gruppe mit den anderen AX3*-Parametern.
  • Die sonstigen Parameter (AX*) sind obligatorisch und müssen in allen XTEND-Anmeldungsprogrammen implementiert sein.
  • AXLOGCOD / AXLOGVAL: Benutzerzusatzdaten vom Typ Schlüssel / Wert, die in der XTEND-Sitzung gespeichert werden (Block ASESSION).
    Beispiel: NOM/DUPONT,TEL/0476232526,COMPANY/SAGE...

   7. Generierung aller Schnittstellenfelder
    Siehe Menü 'Tools/<field>-Token anlegen'

Nicht in der Schnittstelle beschriebene Felder

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.

2. Schritt – Entitäten anlegen

Benutzer-Id

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.

Lieferadressen

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.

3. Schritt – Anlage der Webaktion

Parameterdeklaration

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

Mapping der Aufrufparameter

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.

Mapping der Rückgabeparameter

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.

4. Schritt – Anlage des dynamischen Links

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.

Allgemeine Parameter

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

Aktionsparameter

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:

  • Der Benutzer hat sämtliche Mussfelder belegt
  • In den Feldern vom Typ Datum sowie in der numerischen Feldern wurden korrekte Werte erfasst

Die Prüfung wird von der JavaScript-Bibliothek von XTEND durchgeführt.

5. Schritt – Anlage der <block>-Token

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'.

6. Schritt – Anlage der Webseiten
Login

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.

Benutzerkonto

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.

7. Schritt – Freigabe der Website

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.

HTML-Seite

Link zur Seite

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.

Verwaltung des Menüs Login / Logout

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">

Erfassung der Anmeldedaten

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>

Anzeige des Benutzerkontos

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:

  • Benutzer-Id, gespeichert in ASESSION
  • Adressliste (Entität ASHIPADDR)

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.

Anzeige Seitenbeschreibung

<!adx="ABLKDOCHTML">
   <div adx="TEXTE">
   </div>
<!adx="ABLKDOCHTML">