Benutzeraktion 

Einführung

Eine Benutzeraktion XTEND resultiert entweder in einer Aktion, die direkt vom XTEND-Server ausgeführt wird, oder in einem Aufruf eines X3-Webservices. Bei diesem Webservice handelt es sich entweder um ein Unterprogramm oder um eine Aktion in Verbindung mit einem X3-Objekt.

Ist die Aktion mit einer Schnittstelle verknüpft, verwendet sie X3-Webservices.

Eine Webaktion erwartet Parameter als Eingaben, führt eine Verarbeitung aus und belegt eine bestimmte Anzahl von Parametern als Rückgabewerte, wie z. B. beim Aufruf eines 4GL-Unterprogramms.

Im Falle einer XTEND-Applikation werden die Parametereingaben in der Regel vom Benutzer in einem HTML-Formular vorgenommen; die vom Unterprogramm zurückgegebenen Werte werden in der Benutzersitzung im Speicher gehalten (Mapping), um auf einer HTML-Seite angezeigt oder als Parameter für weitere Aktionen verwendet werden zu können.

Im vorliegenden Dokument wird beschrieben, wie neue Benutzeraktionen angelegt werden können.

Programmierung und Test in X3

Der erste Schritt besteht im Programmieren und TESTEN der 4GL-Verarbeitung oder des von der XTEND-Aktion aufgerufenen X3-Objekts im X3-Client-Modus.

X3-Objekte

Vor der Verwendung von X3-Objekten in einer XTEND-Anwendung muss gewährleistet sein, dass die betreffenden X3-Objekte in Webservices verwendet werden können.

Insbesondere muss sichergestellt werden, dass die Aktionsverarbeitung nicht die Anwesenheit eines (menschlichen) Benutzers vor einem Bildschirm voraussetzt, weil auf eventuelle Fragen oder vom X3-Server zurückgegebene Meldungen reagiert werden muss.

Benutzermeldungen

Die AWEB-Verarbeitung umfasst Hilfsunterprogramme für die Verwaltung der Benutzermeldungen.

Versand eines Hinweises, einer Warnung oder einer Fehlermeldung:

  • Subprog ADDMESSINF(MESSAGE)
  • Subprog ADDMESSWARN(MESSAGE)
  • Subprog ADDMESSERR(MESSAGE)

Testmodus

  • Subprog INITABMES
  • Subprog VISUALLMES

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>

Unterprogramme

Wichtiger Hinweis: Der Aufruf einer X3-Verarbeitung über einen Webservice ist "ohne Status" (stateless), d. h. der für die Verarbeitung eines Webservice verwendete (globale) Kontext der X3-Sitzung ist lediglich während der Verarbeitung des Service gültig. Nach der Verarbeitungsausführung geht dieser Kontext verloren. Er wird bei jedem Aufruf neu initialisiert.

Sämtliche Kontextdaten müssen in den Aufrufparametern des Webservice übergeben werden.

Beim Aufruf von Webservices vom Typ Unterprogramm fügt der XTEND-Server Kontextparameter hinzu, indem er die Parameter AXPARCOD und AXPARVAL der Veröffentlichungsgruppe AX_PAR belegt, sofern die Gruppe AX_PAR während der Veröffentlichung des Unterprogramms definiert wurde.

Standardkontextparameter:

 Code

Beschreibung

SITCOD

Code der XTEND-Webseite

USRCOD

XTEND-Benutzercode, sofern der Benutzer identifiziert ist

USRPRF

XTEND-Benutzerprofil, sofern der Benutzer identifiziert ist

USRLANG

XTEND-Sprachcode (Sprache der Webseite)

Veröffentlichung und Test der Webservices

In diesem Schritt wird sichergestellt, dass die Webservices zur Verfügung stehen und korrekt funktionieren.

Siehe Seite Webservices.

Eine Aktion anlegen

-1- Schnittstellenparameter

Mit der Funktion Entwicklung/Safe X3 WAS/Link SAFE X3/Schnittstelle ein Schnittstellendatenblatt anlegen

-2- Felder anlegen

Nach dem Aufruf eines Webservice vom Typ Aktion werden Daten zurückgegeben, bei denen es sich um Parameter eines Unterprogramms handelt, also um Felder eines X-Objekts.

Sämtliche für die Anzeige oder Übergabe von Parametern vom Typ Web oder XTEND verwendeten Felder müssen im Felddictionary deklariert sein.

Nach Anlage der Schnittstelle wird empfohlen, über das Menü "Tools/Tokenfeld anlegen" sämtliche vom Webservice zurückgegeben Felder anzulegen.

-3- Entitäten anlegen

Die vom Webservice zurückgegeben Parameter werden in Veröffentlichungsgruppen eingeteilt.

Dieser Schritt besteht darin, eine XTEND-Entität pro Veröffentlichungsgruppe anzulegen.

Zur Anlage der Entitäten ist die entsprechende Funktion im Menü "Tools/Belegungshilfe" zu verwenden.

-4- Webaktion anlegen

Dieser Schritt besteht darin, die Webaktion für die Definition des Abgleichs zwischen den Parametern des Webservice und den XTEND-Einheiten anzulegen.

Dieser Abgleich betrifft:
  • Die Eingabeparameter, die beim Aufruf des Webservice ausgewertet werden müssen
  • Die vom Webservice zurückgegebenen Parameter, die im Speicher gehalten werden müssen und die als Basis für die Anlage von XTEND-Aktivitäten vom Typ Sitzung dienen.

-5- Den dynamischen Link anlegen

Dieser Schritt besteht darin, den dynamischen Link anzulegen, der entweder in Form eines Buttons oder als Anker in die HTML-Seite eingefügt wird, damit der Benutzer die Aktion per Mausklick auslösen kann.

Über den dynamischen Link kann auch vorgegeben werden, wie die Aufrufparameter der Webaktion belegt werden: entweder mit den vom Benutzer erfassten Daten (Webfelder) oder mit den im Speicher gehaltenen Daten (XTEND-Felder).

Anmeldeaktion

Funktionsweise der XTEND-Anmeldung

XTEND kennt zwei Benutzertypen:

  • anonyme Benutzer
  • identifizierte Benutzer

Der Benutzer identifiziert sich beim XTEND-Server über die Anmeldeseite, indem er einen Benutzercode und ein Passwort erfasst.

Die XTEND-Aktion ruft ein 4GL-Unterprogramm (Webservice) auf, das die Existenz des Benutzers und die Gültigkeit des Passworts prüft. Im Falle einer ungültigen Anmeldung wird eine Fehlermeldung (ADDMESSERR) ausgegeben.

"Geschützte" XTEND-Seiten sind lediglich für identifizierte Benutzer sichtbar.

Je nach XTEND-Profil, dessen Code vom Anmeldeprogramm zurückgegeben werden kann (optional), kann auch der Zugriff auf die XTEND-Seiten geschützt werden.

Siehe Anmeldung an die Webseite ASAMPLE.

Schnittstelle des 4GL-Unterprogramms zur Anmeldung

XTEND kann alle 4GL-Unterprogramme aufrufen, die mit den folgenden 12 Parametern beginnen:

Subprog ACTION (AXPARCOD, AXPARVAL, AXUSERCODE, AXPWD, AXUSERPROF, AX3SOL,
 AX3FLDR, AX3LANG, AX3USER, AX3PWD, AXLOGCOD ,AXLOGVAL ...)
Variable Char     AXPARCOD()()
Variable Char     AXPARVAL()()
Variable Char     AXUSERCODE()
Value    Char     AXPWD()
Variable Char     AXUSERPROF()   
Variable Char     AX3SOL()()
Variable Char     AX3FLDR()()
Variable Char     AX3LANG()()  
Variable Char     AX3USER()()
Variable Char     AX3PWD()()
Variable Char     AXLOGCOD()()  
Variable Char     AXLOGVAL()()
...

Parameter 

 Typ

Beschreibung

AXPARCOD
AXPARVAL



Belegung durch die XTEND-Engine




Kontextparameter Schlüssel / Wert, die vom XTEND-Server bei Aufruf des Unterprogramms belegt werden.
SITCOD: Code der XTEND-Webseite
USRCOD: XTEND-Benutzercode (leer, falls anonymer Benutzer)
USRPRF: XTEND-Profilcode
USRLANG: XTEND-Sprachcode

AXUSERCODE

Von Benutzer erfasst

Vom Benutzer erfasster XTEND-Benutzercode

AXPWD

Von Benutzer erfasst

Vom Benutzer erfasstes Passwort

AXUSERPROF

Von X3 zurückgegeben

Für die Verwaltung des Seitenzugriffs verwendeter X3-Profilcode

AX3SOL

Von X3 zurückgegeben

Code X3-Lösung

AX3FLDR

Von X3 zurückgegeben

X3-Ordnercode

AX3LANG

Von X3 zurückgegeben

X3-Sprachcode für die Anmeldung an AX3SOL/AX3FLDR

AX3USER

Von X3 zurückgegeben

X3-Benutzercode für die Anmeldung an AX3SOL/AX3FLDR

AX3PWD

Von X3 zurückgegeben

X3-Passwort für die Anmeldung an AX3SOL/AX3FLDR

AXLOGCOD
AXLOGVAL

Von X3 zurückgegeben

Benutzerzusatzdaten vom Typ Schlüssel / Wert, die in der XTEND-Sitzung gespeichert werden (Block ASESSION).
Beispiel: NOM/DUPONT,TEL/0476232526,COMPANY/SAGE...

....

 

Das Unterprogramm für die Anmeldung kann andere Daten zurückgeben, die XTEND-Entitäten zugeordnet werden
Beispiel: Liste von Lieferadressen, Liste der letzten Rechnungen oder Aufträge etc.

Datenblatt Unterprogramm

Beschreibungsdaten des Unterprogramms für die Anmeldung.

Die Namen der Veröffentlichungsgruppe der AX*-Parameter müssen beachtet werden.

Code

Typ

Dim

Argumenttyp

Veröffentlichungsgruppe

 AXPARCOD

Char

20

Nach Adresse

AX_PAR

 AXPARVAL

Char

20

Nach Adresse

AX_PAR

 AXUSERCODE

Char

1

Nach Wert

AXLOG_PAR

 AXPWD

Char

1

Nach Wert

AXLOG_PAR

 AXUSERPROF

Char

1

Nach Adresse

AXLOG_PAR

 AX3SOL

Char

10

Nach Adresse

AXLOG_X3

 AX3FLDR

Char

10

Nach Adresse

AXLOG_X3

 AX3LANG

Char

10

Nach Adresse

AXLOG_X3

 AX3USER

Char

10

Nach Adresse

AXLOG_X3

 AX3PWD

Char

10

Nach Adresse

AXLOG_X3

 AXLOGCOD

Char

50

Nach Adresse

AXLOG_RES

 AXLOGVAL

Char

50

Nach Adresse

AXLOG_RES

Folgende Parameter werden zu Informationszwecken angegeben und vom XTEND-Benutzer verwaltet.
Eine Liste von Lieferadressen und eine Liste von Rechnungsadressen (max. 10 Zeilen), die den Entitäten SHIPADDR und INVADDR zugeordnet werden.

SHIPADDR

Char

10

Nach Adresse

SHIPADDR

SHIPCITY

Char

10

Nach Adresse

SHIPADDR

SHIPZIP

Char

10

Nach Adresse

SHIPADDR

INVADDR

Char

10

Nach Adresse

SHIPADDR

INVCITY

Char

10

Nach Adresse

SHIPADDR

INVZIP

Char

10

Nach Adresse

SHIPADDR