Entwicklung > Safe X3 WAS > Tokens > Dynamische Links 

SEEWARNING Es empfiehlt sich, vor der Anlage einer Webseite folgende Dokumentation zu konsultieren:Was vor Ausführung der Funktion zu beachten ist.


Bei dynamischen Links handelt es sich um Tokens zur Verarbeitung von Mausklicks, die vom Benutzer in sensitiven Bereichen der HTML-Seite wie zwischen den Tags <a>, </a> und <input type='button'>, </input type='button'> vorgenommen werden können.

<input type='button' adx="MyDynamicLink" value="Hier klicken">
<a adx="MeinDynamischerLink">Hier klicken</a>

Die drei wichtigsten Parameter eines dynamischen Links sind:

1. Webaktion
2. Zielwebseite
3. Auswahl

In der Liste sind diese Parameter in der Reihenfolge ihrer Verarbeitung durch den XTEND-Server aufgeführt.

Verarbeitung

Webaktion

Es gibt zwei Arten von Aktionen:

  • vom X3-Backoffice über Aufruf des Webservice verarbeitete Aktionen wie
    • Login, Auftragsanlage, Adressänderung etc.
  • vom XTEND-Server verarbeitete Aktionen wie
    • Seitennummerierung, Zeilenauswahl, Webseiten- / Sprachänderung etc.

Alle Aktionen sind im Dictionary in den Parameterdaten deklariert.

Zielwebseite

Hierbei handelt es sich um die als Rückgabe der auf dem Server abgesetzten Abfrage angezeigte Seite.

Alle Seiten sind im Dictionary in den Parameterdaten deklariert.

SEEINFO Die Zielwebseite kann von der Aktion geändert werden.

Zur Änderung der Zielwebseite durch ein Programm (4GL) wird eine (programmierte) Verkettung von dynamischen Links verwendet:

Zuweisung des auf die Zielwebseite zeigenden Codes des dynamischen Links (mit oder ohne Aktion / Auswahl) an einen Parameter des Unterprogramms.

Auswahl

Um die Auswahlkriterien des Hauptblocks der Zielwebseite zu ändern, kann der dynamische Link eine Auswahlabfrage auf diese absetzen.

Mit der Auswahl können der Link zur Auskunftsliste, die Tabellensortierung und die Abfrageverfeinerung verwaltet werden.

SEEREFERTTO Weitere Informationen finden Sie in der Dokumentation über Block-Tokens.

HTML-Parameter

Folgende Parameter werden von den dynamischen Links verwaltet:

Code 

Parameter

Beschreibung

xacceptreload

Keine

Die Aktion des dynamischen Links wird bei der Aktualisierung der HTML-Seite (F5) auch dann ausgeführt, wenn die Aktualisierung per Aktionsparametrierung gesperrt ist ('Aktiv nach Reload').

xparams

QueryString

Fügt der URL des dynamischen Links Parameter hinzu.
Diese Parameter sind vom Typ Schlüssel=Wert~Schlüssel=Wert

<a adx="MyDynLink:xacceptreload&xparams=?PARCOD1=VAL1~PARCOD2=VAL2#xtdbottom">

In diesem Beispiel:

  • wird die Ausführung der Aktion 'bei F5' erzwungen
  • werden die beiden Benutzervariablen PARCOD1 und PARCOD2 belegt
  • wird der Fokus auf die Textmarke 'xtdbottom' der Zielwebseite gesetzt
Fokussierung innerhalb einer Zielwebseite

In diesem Beispiel wird der Fokus in eine Zielwebseite gesetzt (über den HTML-Parameter xparams), wenn der Benutzer auf einen dynamischen Link klickt:

<!--dynamischer Link auf der Ursprungsseite-->
<input type="button" value="Hier klicken" adx="MYDYNLINK:xparams=#signet">
<a adx="MYDYNLINK:xparams=#signet">Hier klicken</a>
<!--Zielseite-->
<body>
    <!--HTML-Code -->
    <a name="Textmarke">
    <!--Fokussierung der Seite, wenn der Benutzer auf nachstehenden Button klickt-->
    <!--HTML-Code -->
</body>

Belegung der Benutzervariablen über die Parameter der URL

Im Beispiel werden die Benutzervariablen PARCOD1 und PARCODE (über den HTML-Parameter xparams) mit VAL1 und VAL2 belegt, wenn der Benutzer auf einen dynamischen Link klickt:

<!--dynamischer Link auf der Ursprungsseite-->
<input type="button" value="Hier klicken" adx="MYDYNLINK:xparams=#Textmarke">
<a adx="MYDYNLINK:xparams=?PARCOD1=VAL1~PARCOD2=VAL2">Hier klicken</a>

Anwendungsfall: Link Auskunftsliste

Ein Link zu einer Auskunftsliste besteht in der Definition eines Links, über den auf die in einer Liste angezeigte Auskunft einer Entität zugegriffen werden kann.
Beispiel: Zugriff auf die Artikelauskunft vom Katalog aus.

Die Auskunftsseite umfasst in der Regel Zusatzdaten aus anderen Tabellen, also nicht nur aus der zur Listenanzeige verwendeten Tabelle.
Beispiel: Die ausführliche Beschreibung eines Produktes oder der zugeordneten Produkte (Cross-Selling).

Umgekehrt muss der Benutzer aus der Auskunftsseite zur Liste zurückkehren können, ohne den Listenkontext (Auswahlkriterien, Seitennummerierung) verloren zu haben.

1. Anlage der in der Liste angezeigten Entität
  • Anlage der Schnittstelle
  • Anlage der Felder
  • Anlage der Entitäten
2. Anlage eines Blockes 'Mehrere Datensätze' zum Lesen und Anzeigen der Liste
  • Auswahl der zuvor definierten Entität
3. Anlage eines dynamischen Links zur Auswahl der Entitätsauskunft
  • Auswahl derselben Entität wie für den Listenblock

Über den dynamischen Link wird die Entität so ausgewählt, dass der Code dem Code der aktuellen Zeile entspricht.
Die aktuelle Zeile ist durch den Block ACURRENT (oberstes Element des Datenkontextstapels) definiert
Der Link 'ersetzt die Auswahl des Hauptblocks'

4. Anlage der Webseite, auf der die Liste angezeigt wird
  • Deklarieren des Listenblocks als Hauptblock der Webseite
  • Erstellung des HTML-Codes zur Anzeige der Liste

<table>
    <tr>
        <th><b>Code</b></th>
        <th><b>Bezeichnung</b></th>
    </tr>
<!--Listenblock-->
<!adx="BLKITMLST">
    <tr>
        <!--Link zur Auskunft-->
        <td><a adx="DLKDETAIL"><span adx="CODE"></span></td>
        <td adx="DESCR"></td>
    </tr>
<!adx="BLKITMLST">
</table>

5. Anlage eines Blockes 'Einzelner Datensatz' zum Lesen und Anzeigen der Auskunft
  • Auswahl derselben Entität wie für den Listenblock

Der Block 'Einzelner Datensatz' umfasst eine Auswahl vom Typ 'Letzter aktivierter Link'. Für diese werden die Auswahlkriterien des vom Benutzer angeklickten dynamischen Links verwendet (der zuvor mit der Auswahl aus ACURRENT.CODE angelegt wurde)

6. Anlage eines 'dynamischen Links' zur Rückkehr zur Liste
  • Die Zielseite ist die Listenseite
  • Der Code der Webaktion lautet ABLKRESTOREMAINCTX
    Stellt den Kontext des Hauptblocks wieder her
7. Anlage der Webseite, auf der die Auskunft angezeigt wird
  • Erstellung des HTML-Codes zur Anzeige der Auskunft

<!--Auskunftsblock-->
<!adx="BLKDETAIL">
    <b>Code    </b><span adx="CODE"></span><br>
    <b>Libellé </b><span adx="DESCR"></span><br>
    <b>Prix    </b><span adx="PRIX"></span><br>
    <b>Stock   </b><span adx="STOCK"></span><br>
<!adx="BLKDETAIL">
<!--Zurück zur Liste-->
<a adx="DLKRETOURLISTE">Zurück zur Liste</a>

Zur Anzeige von zusätzlichen Daten aus einer anderen Tabelle oder aus einem anderen View (z. B. Anzeige der ausführlichen Beschreibung eines Artikels oder der zugehörigen Produkte):

  • Anlage der Entitäten und Blöcke, die diese Entitäten lesen; hierbei wird den Auswahlkriterien der Code der Auskunftsentität BLKDETAIL.CODE übergeben.

Rückkehr zur vorherigen Seite

Mit dem dynamischen Link ADLKRETURN kann zu den zuvor konsultierten XTEND-Seiten zurückgekehrt werden

  • Die dynamischen Links sind zuverlässiger als die Tasten 'Zurück' oder 'Eine Seite zurück' des Browsers
  • Dynamische Links, die auf dieselbe Seite führen, sind nicht berücksichtigt

Beispiel:

Bei der Nummerierung eines Artikelkatalogs zeigt der Link ADLKRETURN die vor der Anzeigeseite des Katalogs liegende Seite an und berücksichtigt dabei im Gegensatz zur Browsertaste 'Zurück' nicht die Nummerierungsaktionen.

Die XTEND-Engine verwaltet einen Stapel von während der Benutzersitzung konsultierten Seiten, deren Größe mithilfe des Parameters Konfiguration parametriert werden kann.
xtend.server.gensetup.misc.rtnstacksize (standardmäßig 20).

Vordefinierte Links

 Code

Parameter

Aktion

Beschreibung

ADLKFIRSTPAGE

 Nein

ABLKFIRSTPAGE

Zeigt die letzte Seite eines Blocks an
Syntax MonBloc.MonLienDynamique

ADLKNEXTPAGE

Nein

ABLKNEXTPAGE

Zeigt die nächste Seite eines Blocks an

ADLKLASTPAGE

Nein

ABLKLASTPAGE

Zeigt die letzte Seite eines Blocks an

ADLKSELECT

Nein

ABLKSELECT

Auswahl Blockposition
MonBloc.MonChamp gibt den Wert von MonChamp für die ausgewählte Zeile zurück

ADLKUNSELECT

Nein

ABLKUNSELECT

Hebt die Auswahl der Zeile eines Blocks auf

ADLKRESTOREFORM

Nein

ARESTOREFORM

Stellt die Ausgangswerte eines HTML-Formulars her
Berücksichtigt nicht den HTML-Parameter xrc

ADLKRESTORESESSION

Nein

ARESTORESESSION

Zeigt die letzte Seite an, die vor dem Schließen des Browsers geöffnet war
Wird in der Neuverbindungsseite verwendet (siehe Seitendatenblatt)

ADLKLOGIN

Ja

ASESSLOGIN

Benutzerlogin
Benutzercode(AUSERCODE) und Passwort(APWD) als Parameter
Schnittstelle und Mapping der Parameter müssen erstellt werden

ADLKLOGOUT

Nein

ASESSLOGOUT

Trennt die Verbindung des Benutzers

ADLKSWITCHCOOKIES

Nein

ASESSSWITCHCOOKIES

Überträgt den Modus "ohne Cookies" und den Modus "mit Cookies"
Den bedingten Block ADISPNOCOOKIES verwenden, um den Bericht der Session mit/ohne Cookies anzuzeigen

ADLKTRACESET

Nein

ATRACESET

Aktualisierung des XTEND-Protokolls

ADLKRETURN

Nein

Nein

Rückkehr zur vorherigen Seite

ADLKPOSTPAGE

Nein 

Nein

Sendet das Formular der aktuellen Seiten und kehr zu derselben Seite zurück

ADLKSWITCHSITE

Ja

Nein

Öffnet eine andere XTEND-Site
!!Die Parameter der Site sind zu erfassen

ADLKSWITCHLANG

Ja

Nein

NeinWechsel der Benutzersprache
!!Die Parameter des Sprachcodes sind zu erfassen

 

Vorbedingungen

SEEREFERTTO Siehe Dokumentation Umsetzung

Maskenverwaltung

Kopfzeile

Felder

In diesem Register befinden sich die folgenden Felder :

Code der dynamischen Verknüpfung.

  • Standort (Feld FCYLIB)

Aktuelle Website.

  • Bezeichnung (Feld INTIT)

Ermöglicht die Definition einer Bezeichnung für jeden Datensatz.

Schließen

 

Register Allgemeine Angaben

Übersicht

Allgemeine Parameter des dynamischen Links

Die Tabelle "Parameter Zugriff Unterprogramm" wird gefüllt, wenn folgende Bedingungen erfüllt sind:

  • Im dynamischen Link ist eine Auswahl aus der Entität enthalten
  • Diese Entität ist mit einer Schnittstelle vom Typ "Datenzugriff Unterprogramm" verbunden
  • In der Schnittstelle sind Parameterfelder "Zugriff Unterprogramm" enthalten

Ist die Tabelle nicht leer, kann eine Auswahl aus diesen Parametern definiert werden

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Rückmeldung

  • Rückmeldung Aktivität (Feld LOGMOD)

'Ja' auswählen, um die Aufrufe der dynamischen Verknüpfung im Log des Servers XTEND rückzumelden.

  • Http-Get-Modus erzwingen (Feld POSTFORCE)

'Ja' auswählen, um die Methode HTTP GET zu verwenden; die Verknüpfung muss von den Suchmaschinen (Webcrawler) berücksichtigt werden.
Dies wird nur verwendet, um die Kompatibilität der Verknüpfung mit den Suchmaschinen sicherzustellen.

SEEINFO Mit der Methode HTTP GET sind nur die Verknüpfungen kompatibel, die keinen Kontextparameter für die Auswahl bzw. Aktion haben.

Ziel

  • Aktuelle Seite (Feld PAGSAM)

Auswahl:

  • 'Ja', um auf der aktuellen Seite zu bleiben,
  • 'Nein', um eine Druckerseite zu erfassen.

Zielseite.

Dynamik

Code der ausgewählten Entität, wenn die dynamische Verknüpfung eine Auswahl für den Hauptblock der Zielseite schickt.

SEEINFO Die Entität wird als Hilfe bei der Erfassung der Auswahlkriterien im Register Auswahl verwendet.

  • Anwendung Auswahl (Feld SELBLCOPT)

Es gibt drei Typen für die Änderung der Blockkriterien über eine dynamische Verknüpfung.
Diese drei Optionen ermöglichen die Verwaltung der meisten Situationen, die in den Webseiten auftreten.

1. Die Kriterien der dynamischen Verknüpfung 'Ersetzt die Auswahl des Hauptblocks'

AUSWAHL DES BLOCKS = AUSWAHLKRITERIEN DER VERKNÜPFUNG

2. Die Kriterien des dynamischen Links "Ergänzt die Auswahl des Hauptblocks"

Führt eine Verfeinerung der Blockabfrage mit den Verknüpfungskriterien durch.
AUSWAHL DES BLOCKS = AUSWAHLKRITERIEN DES BLOCKS + AUSWAHLKRITERIEN DER VERKNÜPFUNG

3. Die Kriterien der dynamischen Verknüpfung 'Wird zur Auswahl des Hauptblocks hinzugefügt'

Führt eine Verfeinerung der Blockabfrage durch, indem der aktuellen Abfrage des Blocks die Auswahl der dynamischen Verknüpfung hinzugefügt wird (logisches UND).
Diese Option wird verwendet, wenn die Blockauswahl das Ergebnis der Summe mehrerer dynamischer Verknüpfungen ist.
AUSWAHL DES BLOCKS = AUSWAHLKRITERIEN DES BLOCKS + SUMME DER KRITERIEN ALLER ANGEKLICKTEN VERKNÜPFUNGEN

SEEWARNING Einschränkung:
Nur die Auswahl- und Sortierkriterien des Hauptblocks der Seite (alias AMAIN) können durch die Auswahl- und Sortierkriterien der dynamischen Verknüpfungen verändert werden.
Es ist möglich, mehrere Blöcke für eine Seite festzulegen, aber nur ein Block (der Hauptblock) kann Auswahl- und Sortierkriterien enthalten, die durch den Benutzer geändert werden können.

Code der Webaktion, wenn die dynamische Verknüpfung eine Aktion hat.

SEEINFO Die Parameter der Aktion werden automatisch im Block Parameter des Registers Fortgeschritten angezeigt, um anzugeben, wie sie belegt werden.

  • Prüfung Web-Felder (Feld ACTVERCHP)

Diese Option auswählen, damit die Parameter der als 'erforderliche Webfelder' erklärten Aktion automatisch über XTEND geprüft werden.

Tabelle Param. Zugriff Unterprogramm

Code des Unterprogrammparameters.

  • Ursprung (Feld VALTYP42)

  • Ursprung Konstante: fester Wert, der in der Spalte 'Konst / Zuw. erfasst ist. Web'.

  • Ursprung 'Feld Web': Wert aus einem Feld des HTML-Formulars (im Allgemeinen vom Benutzer erfasst).
    Die Spalte 'Konst / Zuw. Web' enthält den Namen (Attribut 'NAME') des Feldes <input> des HTML-Formulars.

  • Ursprung 'Feld Token': Wert eines Blockfeldes, deren Namen in den folgenden Spalten erfasst sind.

  • Cste/Attribut Web (Feld VALEUR42)

  • Ursprung Konstante: enthält den Wert der Konstante.

  • Ursprung 'Web-Feld': enthält den Namen (Attribut 'NAME') des Feldes <input> des HTML-Formulars.
    Der Parameter wird mit dem Wert dieses Feldes belegt.

Blockname für den Ursprung 'Feld Token'.

 

  • Feld (Feld VFIEKEY42)

Feldcode für den Ursprung 'Feld Token'.

Schließen

 

Register Erweitert...

Felder

In diesem Register befinden sich die folgenden Felder :

Tabelle Einstellungen

Code des Aktionsparameters.

  • Ursprung (Feld VALTYP41)

  • Ursprung Konstante: fester Wert, der in der Spalte 'Konst / Zuw. erfasst ist. Web'.

  • Ursprung 'Feld Web': Wert aus einem Feld des HTML-Formulars (im Allgemeinen vom Benutzer erfasst).
    Die Spalte 'Konst / Zuw. Web' enthält den Namen (Attribut 'NAME') des Feldes <input> des HTML-Formulars.

  • Ursprung 'Feld Token': Wert eines Blockfeldes, deren Namen in den folgenden Spalten erfasst sind.

  • Cste/Attribut Web (Feld VALEUR41)

  • Ursprung Konstante: enthält den Wert der Konstante.

  • Ursprung 'Web-Feld': enthält den Namen (Attribut 'NAME') des Feldes <input> des HTML-Formulars.
    Der Parameter wird mit dem Wert dieses Feldes belegt.

Blockname für den Ursprung 'Feld Token'.

 

  • Feld (Feld VFIEKEY41)

Feldcode für den Ursprung 'Feld Token'.

Verkettung

Die Seite, die angezeigt wird, wenn die Aktion fehlerhaft endet.
Standardmäßig bleibt die XTEND-Engine auf der aktuellen Seite, wenn ein Fehler auftritt.

SEEWARNING Die XTEND-Engine sieht eine Aktion als fehlgeschlagen an, wenn der verwendete Webservice mindestens eine Fehlermeldung gesendet hat.

  • Verkettung programmiert (Feld SUIPRG)

'Ja', um anzugeben, dass die Verarbeitung L4G den Code der dynamischen Verknüpfung in einem Parameter des Unterprogramms zurücksendet.

Von der Verarbeitung L4G definierte dynamische Verkettung

Die Verarbeitung L4G kann entscheiden, die dynamische Verknüpfung zu verketten, indem sie einen Verknüpfungscode im Parameter des Unterprogramms zurücksendet.

  • Feld programmierte Verkettung:
    Der Code der dynamischen Verkettung ist in einer Entität vom Typ Sitzung über das Aktionsmapping gespeichert.

  • Felder Entität, Feld:
    Gibt den Code der Entität vom Typ Sitzung und den Code des Feldes an, das den Code der für die Verkettung zu verwendenden dynamischen Verknüpfung enthält.

Der Code der dynamischen Verknüpfung kann auch in einer Sitzungsvariablen (Benutzervariable) gespeichert sein.
In diesem Fall gibt man an:

  • 'ASESSION'
  • und den Code der Variablen, die die Verknüpfung in den Parametern Entität und Feld enthält.

Die nach der Verkettung mehrerer dynamischer Verknüpfungen angezeigte Seite ist die Webseite, die der zuletzt bearbeiteten dynamischen Verknüpfung zugeordnet ist.

 

 

Tabelle Links

Code der auszuführenden dynamischen Verknüpfung.

Liste der dynamischen Verknüpfungen: die in der Liste erfassten dynamischen Verknüpfungen werden sequenziell ausgeführt, wenn vom Webservice kein Fehler zurückgesendet wurde.

Schließen

 

Register Auswahl

Übersicht

Mit dem dynamischen Link kann eine Auswahl an den Hauptblock (AMAIN) der Zielseite gesendet werden. Ist die Blockauswahl 'veränderbar' und sind die ausgewählten Entitäten identisch, führt der Block die vom dynamischen Link gesendete Auswahl durch (gemäß dem Parameter 'Anwendung Auswahl').

Die Felder in diesem Register sind nur aktiv, wenn im Feld 'Auswahl aus der Entität der Maske 'Allgemeines' ein Entitätscode ausgewählt wurde.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Eigenschaften

  • Auswahltyp (Feld SELTYP)

Keine: Auswahl aller Datensätze.

Abfrage: Anwendung der Auswahlkriterien des Blocks.

Letzter aktivierter Link: Anwendung der Auswahlkriterien der dynamischen Verknüpfung, die aktiviert wurde, um auf die Seite zuzugreifen, die den Block enthält.

  • Auswahl änderbar (Feld SELDYNALT)

Nein: die dem Block zugeordnete SQL-Abfrage kann nicht über eine Abfrage einer dynamischen Verknüpfung geändert werden.

Ja: die Abfrage kann über die einer dynamischen Verknüpfung zugeordneten Abfrage geändert werden.

SEEINFO Die Blockabfrage ist die Standardabfrage.

  • Optimierung (Feld INTOPTIMI)

Optimierungsauswahl, von der Schnittstelle vorgeschlagen.

Keine: Keine Optimierung

Kein blob: die Schnittstelle gibt die blob-Felder nicht zurück

Kein clob: die Schnittstelle gibt die clob-Felder nicht zurück

Weder blob, noch clob: die Schnittstelle gibt die blob- und clob-Felder nicht zurück

Auswahlsynthese

  • Feld RES30

Blockabfrage im Textformat

Tabelle Auswahlkriterien

  • und/oder (Feld ANDOR30)

Logische Verkettung der Arbeitsgänge.

  • ( (Feld BRKLFTM30)

Öffnende Klammern.

  • Feld (Feld FIEKEY30)

Feld der Entität, deren Wert der erste Operand des Arbeitsgangs ist.

  • Feld OPE30

Vergleichsoperator.

  • Ursprung (Feld VALTYP30)

  • Ursprung Konstante: fester Wert, der in der Spalte 'Konst / Zuw. erfasst ist. Web'

  • Ursprung 'Feld Web': Wert aus einem Feld des HTML-Formulars (im Allgemeinen vom Benutzer erfasst).
    Die Spalte 'Konst / Zuw. Web' enthält den Namen (Attribut 'NAME') des Feldes <input> des HTML-Formulars.

  • Ursprung 'Feld Token': Wert eines Blockfeldes, deren Namen in den folgenden Spalten erfasst sind.

  • Cste/Attribut Web (Feld VALEUR30)

Hier wird der Wert des Parameters erfasst. Dieser wird entweder als Zahl, Datum oder alphanumerischer Code erfasst. Bei Parametern vom Typ lokales Menü können entweder die ersten Zeichen das Titels oder die Zeilennummer des Titels in der Liste erfasst werden. Wird der Code von einer anderen Tabelle geprüft, kann eine Auswahltaste verwendet werden.

Blockname für den Ursprung 'Feld Token'.

 

  • Feld (Feld VFIEKEY30)

Feldcode für den Ursprung 'Feld Token'.

  • ) (Feld BRKRGTM30)

Schließende Klammern.

  • Erforderliches Kriterium (Feld CRIOBY30)

  • Ja: der Wert des zweiten Operanden darf nicht leer sein. Ansonsten wird die Fehlermeldung 'AERRCRITMANDATORY' über XTEND gesendet.

  • Nein: ist der Wert des zweiten Operanden leer, wird das Kriterium (die Position) nicht berücksichtigt.

  • Eig. *: für alle (Feld ALLSTAR30)

 

Organisationseinheit

Gibt die Entitäten an, die aus dem Abfrageergebnis erstellt werden.
Die Entität enthält die Oberfläche vom Typ 'Zugriff Daten', die aufgerufen werden muss.

Schnittstelle vom Typ 'Datenzugriff' der aufgerufen wird.

  • Feld INTTYPSEL

Schnittstelle vom Typ 'Datenzugriff' der aufgerufen wird.

Schließen

 

Register Sortierung

Felder

In diesem Register befinden sich die folgenden Felder :

Eigenschaften

  • Typ Sortierung (Feld SRTTYP)

Auswahl Sortiertyp:

  • Keiner:die Datensätze (Blockzeilen) werden nicht sortiert.

  • Feld:Sortierung nach einer Feldliste, die in der Sortierungstabelle definiert wurde.

  • Zufall: die Reihenfolge der Zeilen wurde zufällig über eine L4G Verarbeitung nach der Abfrage berechnet. 'Zufall wird verwendet, um eine Zeile unter N zufällig anzuzeigen.
  • Sortierung änderbar (Feld SRTDYNALT)

  • Nein: die Sortierkriterien können nicht über eine dynamische Verknüpfung geändert werden.

  • Ja: die Sortierkriterien können über eine dynamische Verknüpfung geändert werden.

Tabelle Sortierung

  • Feld (Feld FIEKEY31)

Feldname für den Ursprung 'Feld Token'.

  • Sortierreihenfolge (Feld SRTORD31)

Sortierreihenfolge Aufsteigend/Absteigend.

Schließen

 

Berichte

Standardmäßig sind der Funktion folgende Reports zugeordnet :

 PRTSCR : Druck Maske

Dies kann durch geeignete Parameter geändert werden.

Spezielle Buttons

Über diese Schaltfläche kann das XTEND-Dictionary im XML-Format aktualisiert werden.

Der X3WEB-Server berücksichtigt das Dictionary nur, wenn es dieses Format aufweist.

Es ist eine xml-Datei pro Dictionary vorhanden.

So entspricht beispielsweise die Datei ACT.xml sämtlichen Web-Aktionen der aktuellen Website.

Mit diesem Button kann ein dynamischer Link kopiert werden.

Erweiterte Verwendungsmöglichkeiten

Funktion javaScript xtdDoDlk

Als Attribut der HTML-Tags <a> und <input type='button'> wird stets ein Token vom Typ dynamischer Link eingefügt.

Beim dynamischen Aufbau der HTML-Seite durch den XTEND-Server wird von diesem an der Stelle der Tokens vom Typ dynamischer Link als onClick-Ereignis der Aufruf einer JavaScript-Funktion aus der XTEND-Bibliothek (xtdDoDlk) generiert.

Die Parameter der Funktion xtdDoDlk sind Kontextparameter; mit ihnen können in der XTEND-Bibliothek die (xml)-Daten zusammengestellt werden, die zur Verarbeitung der Aktion und zur Auswahl an den XTEND-Server gesendet werden sollen.

<a  href="javascript:xtdDoSubmit('MYDLK',null);"
onclick="xtdDoDlk(this,'MYDLK',null,null,'XAA',0,null,event,false,'_1',false,null,false);">

<input type="button"
onclick="xtdDoDlk(this,'MYDLK',null,'MYBLOCK','XA',0,null,event,true,'',false,null,true);"
value="Add to cart"/>

Datenkontext

Wenn der Benutzer auf einen dynamischen Link klickt, ist der Datenkontext der Seite nicht mehr auf dem Server vorhanden.
Dieser Datenkontext existierte während des Seitenaufbaus und wurde danach gelöscht.

Der XTEND-Server speichert auf der HTML-Seite (tag <span id="xtdctx">) nach den Selektionen und Aktionen der dynamischen Links notwendigen Datenkontext.

Das Wiederfinden des zum dynamischen Link gehörenden Datenkontextes, um diesen an den Server zu senden, gehört zu den Rollen der JavaScript-Funktion xtdDoDlk.

Beispiel:

Auf der 'Auskunftsseite' soll für einen Link des Typs Liste / Auskunft (Katalog) das Objekt (der Artikel) angezeigt werden, auf das (den) geklickt wurde. Dieser Vorgang teils sich für den XTEND-Server folgendermaßen auf:

  • Zu jeder Katalogzeile werden die Werte der Auswahlkriterien gespeichert (im Beispiel der Artikelcode, wobei es mehrere geben kann), damit diese dem Block der Auskunftsanzeige übergeben werden können.

Durch das Speichern des Kontextes in der HTML-Seite wird gewährleistet, dass die Browsertaste 'Zurück' in XTEND reibungslos funktioniert.

Aufruf eines Links aus dem Programm heraus

Um in JavaScript aus dem Programm heraus (nicht per Generierung durch XTEND) einen Link aufzurufen, kann folgende Funktion verwendet werden:

//aElmt = DOM-Objekt, auf das geklickt wurde
//aDlk = Code des aufzurufenden dynamischen Links
//aParams = optional, enthält die URL-Parameter (Query String)
function xtdCallDlk(aElmt,aDlk,aParams){}

SEEWARNING Diese Funktion kann nur verwendet werden, wenn der dynamische Link in den Auswahlkriterien und Aktionsparametern keine Referenzen auf XTEND-Felder enthält.

Lediglich Kriterien und Parameter vom Typ 'Web-Feld' werden berücksichtigt.

Mausklicks abfangen

In bestimmten Fällen kann der Entwickler einen Klick abfangen, beispielsweise um Plausibilitätsprüfungen durchzuführen.

Deklarieren Sie eine JavaScript-Funktion namens xtdDoMyDlk, die von der Bibliothek (XtendLib.js) aufgerufen wird. Bei diesem Aufruf wird als Parameter das Kontextobjekt aDomOut (Klasse CXtdDomOut) übergeben, mit dem auf sämtlich Daten des dynamischen Links zugegriffen werden kann.

Diese Funktion gibt 'false' zurück, wenn die Verarbeitung abgebrochen werden soll.

function xtdDoMyDlk(aDomOut)
{      
     if (aDomOut.isDlk("MyDynLink"))
     {
         // Der Benutzer hat auf den Link MyDynLink geklickt
         return confirm("Aktion bestätigen");
     }
     return true;
}

Der Prozess kann auch kurz vor dem Versenden des Formulars an den Server (submit) unterbrochen werden. Erstellen Sie hierfür die JavaScript-Funktion XDoMySubmit auf der Seite:

function xDoMySubmit(aDlk,aDomOut){
    // Gibt 'false' zurück, um den Prozess zu unterbrechen
    return true;
}

Class CXtdDomOut

Klasse des Parameters aDomOut, die Zugriff auf den Kontext des dynamischen Links bietet.

// Gib den Wert der Benutzervariable aKey zurück
aDomOut.getUserVar(aKey);
// Gibt den Code des dynamischen Links zurück, auf den der Benutzer geklickt hat.
aDomOut.getDynLinkId();
// Gibt den Index der Zeile (0 bis N) zurück, wenn der Benutzer
// auf einen Link in einem Tabellenblock geklickt hat
aDomOut.getCurLineIdx();
// Gibt 'true' zurück, wenn der Benutzer auf den Link aArg geklickt hat.
// Bei aArg handelt es sich entweder um eine Linktabelle oder um einen String.
aDomOut.isDlk(aArg);
    if (aDomOut.isDlk("DLK1","DLK2")){
        // Code, wenn der Benutzer auf "DLK1" oder "DLK2" geklickt hat.
    }
// Gibt die Liste der Web-Parameter zurück (Klasse CXtdDlkWebParamsOut).
aDomOut.getWebParameters();
// Zur Ermittlung des Wertes des Webparameters aName.
// Bei aldx handelt es sich um den Index des Wertes, wenn mehrere Werte vorhanden sind.
aDomOut.getWebParameters().getParamValue(aName,aIdx)
// Gibt einen Array mit den Werten des Webparameters aName zurück.
aDomOut.getWebParameters().getParamValues(aName)
// Gibt den Wert eines Auswahlkriteriums oder Aktionsparameters zurück.
// Bei aFieldName handelt es sich um den Namen des XTEND-Feldes, welches für das Mapping verwendet wird.
aDomOut.getDlkParamValues(aFieldName);
// Analog: getDlkParamValues - aParamId ist die Parameter-Id im Mapping.
// - Bei Auswahlkriterien ist Id = SEL + Kriterienrang (1-N).
// - Genauer als getDlkParamValues, da Id im Gegensatz zu XTEND-Feldname
aDomOut.getDlkParamValuesById(aParamId);

Hinzufügen von Eingabeplausibilitätskontrollen

Wird ein Aktionsparameter als 'obligatorisches Webfeld' deklariert, prüft die Bibliothek automatisch:

  • die Erfassung eines Wertes
  • den Typ bei numerischen Feldern und Datumsfeldern

Um Webparametern zusätzliche Prüfungen hinzuzufügen, fügen Sie der HTML-Seite nachstehende Funktion xtdWebParamCheckValue hinzu.

Diese Funktion für jeden Webparameter der Aktion aufgerufen, die dem dynamischen Link zugeordnet ist. Zur Freigabe der Erfassung gibt die Funktion 'true' zurück.

Siehe Beispiel bei der Formularerfassung der Webseite ASAMPLE.

Funktion xtdWebParamCheckValue

Parameter:

  • aWebParamOut = Objekt, das für den Parameter steht
    Siehe Klasse CXtdDlkWebParamOut
  • aInputFieldName = Name des Webfeldes
    Attribut name
  • aInputFieldIndex = Index des Feldes im Formular
    0 bei einem einzigen Feld mit Namen aInputFieldName
  • aInputFieldValue = Parameterwert für den Index aInputFieldIndex

function xtdWebParamCheckValue(aWebParamOut,aInputFieldName,
                               aInputFieldIndex,aInputFieldValue){
    // Beispiel: Prüfung des E-Mail-Formats im Feld MAICOD
    if (aInputFieldName=="MAICOD"){
        var wEmail=xtdCheckEmail(aInputFieldValue);
        if (wEmail && wEmail!=aInputFieldValue){
            // Format O. K.
            // Der Wert mit dem von xtdCheckEmail berechneten Format aktualisiert.
            aWebParamOut.setValue(aInputFieldIndex,wEmail);
        }
        // 'true' zur Freigabe der Erfassung – 'false', wenn keine Freigabe erfolgen soll
        return wEmail!=null;
    }
}

Class CXtdDlkWebParamOut

// Gibt bei obligatorischen Parametern 'true' zurück.
aWebParamOut.isMandatory();
// Gibt den Indes des Feldes im HTML-Formular zurück.
// -> Es kann in einem Formular (in einer Tabelle) mehrere Felder mit demselben Namen geben.
aWebParamOut.getIndex();
// Gibt das DOM-Element zurück.
aWebParamOut.getElement(aIdx)
//aValue ist ein Array.
aWebParamOut.setValues(aValue);
// aIdx = Index (0 - N) des Wertes
aWebParamOut.setValue(aIdx,aValue);
// Gibt den Wert eines anderen Webparameters zurück.
// -> Nützlich, wenn die Prüfung eines Parameterwertes von anderen Parametern abhängt.
aWebParamOut.getParamValue(aName,aIdx);
// Gibt den Wert in einem Array zurück.
aWebParamOut.getValues();
// Gibt den Indexwert aldx zurück.
aWebParamOut.getValue(aIdx);
// Gibt den Indexwert 0 zurück.
aWebParamOut.getFirstValue();
// Gibt das Attribut name zurück.
aWebParamOut.getName();
// Gibt den im XTEND-Dictionary definierten Parametertyp zurück.
aWebParamOut.isInteger();
aWebParamOut.isX3Menu();
aWebParamOut.isDecimal();
aWebParamOut.isCurrency();
aWebParamOut.isDate();
aWebParamOut.isString();
aWebParamOut.isNumeric();
// Gib den Elementtyp des DOM des Parameters zurück.
aWebParamOut.isHidden(aIdx);
aWebParamOut.isInputText(aIdx);
aWebParamOut.isCheckBox(aIdx);
aWebParamOut.isRadio(aIdx);
aWebParamOut.isTextArea(aIdx);
aWebParamOut.isSelect(aIdx);

Filterung der zu prüfenden Parameter

Ist die Funktion xtdWebParamCheck auf der Seite vorhanden, wird sie vor Durchführung der Parameterprüfung von der XTEND-Bibliothek aufgerufen.

Die Funktion xtdWebParamCheck gibt 'true' zurück, wenn der Wert geprüft werden soll; soll die Prüfung verhindert werden, gibt sie 'false' zurück.

Besonders nützlich ist diese Funktion bei Kommissionierlisten mit Auswahl der Positionen per Kontrollkästchen. In diesem Zusammenhang können mit dieser Funktion die Positionen gefiltert werden, für die die Prüfung vorgenommen werden sollen.

Siehe Beispiel bei der Formularerfassung der Webseite ASAMPLE.

Fonction xtdWebParamCheck

Parameter:

  • aWebParamOut = Objekt, das für den Parameter steht
    Siehe Klasse CXtdDlkWebParamOut
  • aInputFieldName = Name des Webfeldes
    Attribut name
  • aInputFieldIndex = Index des Feldes im Formular
    0 bei einem einzigen Feld mit Namen aInputFieldName

var gNbChecked=0;
// Gibt 'true' zurück, wenn der Webparameter aInputFieldName/aInputFieldIndex geprüft werden soll.
function xtdWebParamCheck(aWebParamsOut,aInputFieldName,aInputFieldIndex){
/*
    Beispiel für eine Kommissionierliste mit Kontrollkästchen (ASELECTED) zur Positionsauswahl.
    Für nicht ausgewählte Positionen wird das Feld AQUANTITY nicht geprüft.
*/
    if (aInputFieldName=="AQUANTITY"){
        // gNbChecked ist ein Zähler für die ausgewählten Positionen,
        // mit dem die Aktion unterbunden werden kann, wenn keine Position ausgewählt wurde.
        if (aInputFieldIndex==0) gNbChecked=0;
        // Die Position ist ausgewählt, wenn der Wert von ASELECTED 1 beträgt.
        if (aWebParamsOut.getParamValue("ASELECTED",aInputFieldIndex)=="1"){
            gNbChecked++;
            return true;
        }
        return false;
    }
    return true;
}

Spezialfall Kontrollkästchen

Die Kontrollkästchen weisen die Besonderheit auf, nur an das HTML-Formular gesendet zu werden, wenn sie aktiviert sind.

Dieses Verhalten ist nicht mit der XTEND-Engine kompatibel. Diese stützt sich bei der Zuordnung der in derselben Tabellenzeile erfassten Daten auf den Index des Feldes im HTML-Formular.

Soll ein nicht aktiviertes Kontrollkästchen gesendet werden, ersetzt die XTEND-Bibliothek direkt vor dem Versand des Formulars an den Server (xtdProcessCheckBoxes) die entsprechenden nicht aktivierten Kontrollkästchen durch ein gleichnamiges 'Input-hidden-Feld'.

Der zur Belegung der nicht aktivierten Kontrollkästchen verwendete Wert ist durch die globale Variable gXtdCBUnSelectedValue gegeben. Diese ist standardmäßig leer (var gXtdCBUnSelelectedValue = "").

Wertänderung:

  • Rufen Sie mit dem gewählten Wert die Funktion xtdSetUnSelelectedValue auf, z. B. im onLoad-Ereignis der Seite.

<script>
    // Seite onLoad-Ereignis
    function xBodyOnLoad()
    {
        // Für nicht aktivierte Kontrollkästchen den Wert '0' setzen
        xtdSetUnSelelectedValue('0');
        // Seiteninitialisierung
    }
</script>
<body onLoad="xBodyOnLoad();">
    <form>
        // Html-Code
    <form>
</body>

SEEINFO Beim Parsen der Seite ermittelt XTEND sämtliche Kontrollkästchen mit adx-Token und stellt eine Liste zusammen. Diese wird im Datenkontext der Seite an den Client gesendet. Die Funktion xtdProcessCheckBoxes berücksichtigt dann die Kontrollkästchen dieser Liste.

Zugriff auf 'Regionale Einstellungen'

Der XTEND-Server sendet im Datenkontext der Seite die Daten über die 'Regionalen Einstellungen' gemäß der aktuellen Sprache an den Browser.

Datenzugriff:

  • Verwenden Sie die nachstehende Funktion. Diese gibt ein Objekt zurück, das die Klasse CXtdRegionalSettings umfasst.

var wRegSettings=gXtdDOMFactory.getXtdDomIn().getRegionalSettings();

Methoden der Klasse CXtdRegionalSettings

// Dezimaltrennzeichen
wRegSettings.getDecimalSep();
// Tausendertrennzeichen
wRegSettings.getThousandSep();   
// Datumsreihenfolge - MDY=0 - DMY=1 - YMD=2
wRegSettings.getDateOrder();
// Berechnungsdatum für die X3-Daten
wRegSettings.getDatePivot();

Hinzufügen / Löschen von Variablen und Benutzerkriterien

Mit nachstehender Funktion können Variablen und Benutzerkriterien hinzugefügt / gelöscht werden.

Die Funktionen xtdAjax* aktualisieren mit einer Ajax-Abfrage die Variablen auf dem Server, ohne das HTML-Formular zu posten.

Die anderen Funktionen (außer xtdGetUserVar) posten das HTML-Formular.

// ---------------------------------------------------------------
function xtdRemoveUserVar(aId);
function xtdSetUserVar(aId,aValue);
function xtdGetUserVar(aId);
function xtdRemoveUserCrit(aId);
// ---------------------------------------------------------------
function xtdAjaxRemoveUserVar(aId);
function xtdAjaxRemoveAllUserVar();
function xtdAjaxSetUserVar(aId,aValue);
function xtdAjaxRemoveUserCrit(aId);
function xtdAjaxRemoveAllUserCrit();
function xtdAjaxSetUserCrit(aId,aValue);
function xtdRemoveAllUserCrit();

Anzeige einer XTEND-Servermeldung

Nachstehende Funktion zeigt eine vom XTEND-Server berechnete Meldung an.
Die Meldung wird in der aktuellen Webseitensprache zurückgegeben.

Parameter:

  • ald = Code der XTEND-Meldung
  • aP1,aP2 = (fakultative) Parameter.

function xtdAlert(aId,aP1,aP2,aP3,aP4);
// Nachstehendes Beispiel zeigt folgende Meldung an:
// 'Sie sind mit der Anwendung bereits mit Benutzercode DIS001 verbunden'
xtdAlert("ASESSLOGIN2","DIS001");

Zugriff auf den Aufrufkontext der Seite

Die folgende Klasse bietet Zugriff auf den Aufrufkontext der Seite. Dies dient der Ergebnisermittlung nach einer Aktion:

var wCallCtx==gXtdDOMFactory.getXtdDomIn().getCallingCtx();
// ---------------------------------------------------------------
// CLASS CXtdCallingCtx
// ---------------------------------------------------------------
// Zur Anzeige der aktuellen Seite wird der dynamische Link verwendet.
wCallCtx.getDynLink();
// 'True', wenn es sich bei der Seite um das Ergebnis einer Aktion handelt.
wCallCtx.hasAction();
// Code der Aktion
wCallCtx.getAction();
// 'True', wenn die Aktion korrekt abgelaufen ist – sonst 'false'.
wCallCtx.getActionResult();

Fehlermeldungen

Nur generische Fehlermeldungen.

Verwendete Tabellen

SEEREFERTTO Siehe Dokumentation Umsetzung