|
Funktion | Mit der connectHTML-Anweisung können Sie Werte aus einer mit View angezeigten HTML-Seite lesen, Werte dort verändern und Aktionen in der HTML-Seite auslösen. Sie können dabei eigene HTML-Seiten verwenden oder auch beliebige Internet oder Intranet-Dateien. Die Anzeige über View kann entweder innerhalb des SAP Screens erfolgen oder in einem separaten Fenster. Weitere Details finden Sie in der Dokumentation “Special Topics” unter “Automatisierung von Internet-Seiten”. | ||||||||||||||||||||
Beispiel | connectHTML click=“button_Weiter”
Der Button “Weiter” in der über View angezeigten Internetseite wird gedrückt. | ||||||||||||||||||||
Format | Meist ist nur eine einzige HTML-Seite durch View geöffnet. In diesem Fall kann
ohne Angabe eines Fenster window=“…” genutzt werden. Alle Optionen sowie die Variablen html[...] beziehen sich dann automatisch hierauf. Falls mehr als ein View aktiv ist, kann durch die Angabe
explizit ein Fenster genannt werden, das durch “View …. returnwindow=viewwindow” davor erhalten wurde. Alle weiteren Optionen sowie die HTML-Variablen html[...] beziehen sich dann auf dieses Fenster. Eine connectHTML Anweisung ist nur nötig, wenn man bestimmte Sonderoptionen (siehe unten) nutzen möchte, oder wenn man das Viewfenster explizit auswählen will. Ansonsten können die HTML-Variablen html[...] auch ohne vorhergehendes connectHTML sofort verwendet werden, wenn ein HTML-View aktiv ist. Insbesondere:
| ||||||||||||||||||||
Optionen |
| ||||||||||||||||||||
Ansprechen der HTML-Elemente | Die HTML-Elemente können analog zu den Scriptvariablen V[...] verwendet werden; die Notation ist html[...]. Unterstützt sind:
Nach dem Setzen eines Wertes wird automatisch eine eventuell vorhandene “on change” Routine der HTML-Seite aufgerufen. Bei Auswahlfeldern ( Generell ist bei dem automatischen Ablauf von HTML-Seiten zu beachten, dass in der Regel die vorhandenen Funktionen (Setzen von Werten und Klick auf Buttons, Links und Images) ausreichen, die Benutzeraktion zu simulieren. In speziellen Fällen, bei denen über JavaScript, VBScript oder durch Einbinden von Plugins eine über HTML gehende Funktionalität verwendet wird, können diese Möglichkeiten eventuell an ihr Limit stossen. | ||||||||||||||||||||
Namen der HTML-Elemente | Während der Entwicklung empfiehlt sich die Verwendung der Funktionen listelements= und -shownames zur Anzeige der intern vergebenen Namen.
Generell setzt GuiXT den Namen zusammen aus dem Typ des Elements (image_, button_, checkbox_, …) sowie einem in der HTML-Seite vergebenen Namen oder dem Text. Eventuelle Leerzeichen werden im Namen durch den Unterstrich ersetzt. Bei duplikativen Namen hängt GuiXT automatisch einen Index .2, .3,… an den ursprünglichen Namen. Beispiele: html[image_help.jpg] | ||||||||||||||||||||
HTML-Tabellen | Häufig werden Tabellen in HTML-Seiten genutzt, die auch ineinander geschachtelt werden können. Die Inhalte aller Tabellenzellen stehen als HTML-Variablen zur Verfügung. Dabei verwendet GuiXT folgende Logik: cell_i.j.k ist der Name der Zelle Nr. k in Zeile Nr. j der Tabelle Nr. i.
Zum Beispiel bezeichnet html[cell_1.4.5] eine Zelle in der ersten Tabelle der Seite, und zwar die Zelle in Reihe 4 Spalte 5. Bei geschachtelten Tabellen wird pro Zelle das gleiche Verfahren angewandt und der Zellenname davorgesetzt, mit ‘~’ verbunden. Beispielsweise ist html[cell_3_1_7~1_2_2~2.2.4] folgende Zelle: Die dritte äussere Tabelle auf der Seite. Dort die Zeile 1, Spalte 7. Diese enthält mindestens eine weitere Tabelle. Wir nehmen die erste und gehen in ihr in Zeile 2, Spalte 2. In dieser Zelle sind mindestens zwei weitere Tabellen. Wir nehmen die zweite; dort ist dann in Zeile 2, Spalte 4 die gewünschte Zelle. Anzahl der Zeilen pro Tabelle Pro Tabelle enthält eine Variable “…_rows” die Anzahl der Tabellenzeilen. Beispielsweise ist table_3_rows “&html[table_1_rows]“ die Anzahl der Zeilen der ersten Tabelle. Bei geschachtelten Tabellen entsprechend. Zum Beispiel ist. “&html[table_3_1_7~1_rows]“ die Anzahl der Zeilen der ersten Tabelle in Zelle 1_7 der dritten Tabelle der Seite. Bei Schleifenkonstrukten in einem Script ist es häufig einfacher, statt der Zeilenzahl die Existenz einer Zelle abzufragen. Beispiel: // Zeilenzähler Set V[i] &V[i] + | ||||||||||||||||||||
Checkbox und Radiobutton | Die Werte einer Checkbox oder eines Radiobutton werden durch die Werte 0 und 1 repräsentiert. Das Setzen eines Radiobutton (Wert 1) löscht automatisch die übrigen Radiobutton der gleichen Gruppe. Beispiel:
| ||||||||||||||||||||
Ladezeiten der HTML-Seite | Nach Aktionen, z.B. einem Klick auf einen Button, wird eventuell eine neue HTML-Seite geladen, was einige Zeit dauern kann. Jede Anweisung
connectHTML wartet zunächst automatisch, bis die Seite ganz geladen ist, ehe die gewünschte Aktion stattfinden. Nach einer Wartezeit von maximal 2 Minuten beendet connectHTML die Warteschleife. Durch if not Q[ok] können Sie nach connectHTML abfragen, ob die Aktion erfolgreich war. |