Komendy specjalne skryptu
W skryptach można wykorzystywać komendy specjalne (komendy takie mogą wystąpić w kolumnie programu/ obiektu skryptu). Użycie specjalnych komend wpływa następująco na wykonanie skryptu:
Komenda |
Wartość w kolumnie wartości lub kopiowana za pomocą WriteData |
Opis komendy |
LOOP_BEGIN |
Liczba iteracji pętli (1 to N) |
Rozpoczyna blok skryptu, który zostanie przetworzony wielokrotnie (ilość iteracji zależy od przekazanego za pomocą kolumny wartość lub WriteData parametru). Pętle mogą być zagnieżdżane do drugiego poziomu (patrz poniżej): … linie skryptu LOOP_BEGIN … linie skryptu LOOP_END … linie skryptu LOOP_END
Ważne: Podczas przetwarzania takiej pętli standardowa kolumna Numer przebiegu jest uzupełniana numerem wewnętrznego przebiegu w pętli loop np.: Pozwala to uzależnić każdy przebieg pętli od kolejnego numeru tego przebiegu. |
LOOP_END |
Puste oznacza normalne wykonywanie pętli. „X” wymusza zakończenie wykonywania pętli. |
Kończy blok skryptu, przetwarzany w pętli rozpoczęty komendą LOOP_BEGIN Ważne: Za pomocą pola wartości w skryptach SAP GUI można wymusić przerwanie przetwarzania pętli (np. po wykrytym błędzie we wcześniejszych liniach). |
PASTE |
Wyznacza adres, do którego zostanie wklejona zawartość bufora, np.: Arkusz!Adres (EI_Data!AB20) lub |
Pozwala na wklejenie do arkusza Excel danych skopiowanych przez skrypt SAP GUI (niewykorzystywana w skryptach transakcyjnych). Ważne: Ta komenda specjalna może być użyta jedynie w skrypcie SAP GUI (GS). |
Przykładowe użycie specjalnych komend do odczytywanie danych z tabeli ALV w transakcji SE16:
Obiekt skryptu |
Funkcja skryptu |
Nazwa pola |
Wartość pola |
Opis pola |
Typ transferu |
Kolumna odczytu/zapisu |
Autoomijanie wiersza |
|
GUIScriptName |
SE16.VBS |
|
|
|
|
|
|
|
("wnd[0]/tbar[0]/okcd") |
text = && |
|
/nse16 |
|
|
|
|
|
("wnd[0]") |
sendVKey 0 |
|
|
|
|
|
|
|
("wnd[0]/usr/ctxtDATABROWSE-TABLENAME") |
text = && |
DATABROWSE-TABLENAME |
BKPF |
|
WriteData |
AA |
|
|
("wnd[0]/usr/ctxtDATABROWSE-TABLENAME") |
caretPosition = 4 |
|
|
|
|
|
|
|
("wnd[0]") |
sendVKey 0 |
|
|
|
|
|
|
|
("wnd[0]/usr/txtMAX_SEL") |
text = && |
MAX_SEL |
100000 |
|
|
|
|
|
("wnd[0]/usr/txtMAX_SEL") |
setFocus |
MAX_SEL |
|
|
|
|
|
|
("wnd[0]/usr/txtMAX_SEL") |
caretPosition = 11 |
|
|
|
|
|
|
|
("wnd[0]") |
sendVKey 0 |
|
|
|
|
|
|
|
("wnd[0]/tbar[1]/btn[8]") |
press |
|
|
|
|
|
X |
|
("wnd[0]/mbar/menu[3]/menu[3]") |
select |
|
|
|
|
|
|
|
("wnd[1]/usr/tabsG_TABSTRIP/tabp0400/ssubTOOLAREA:SAPLWB_CUSTOMIZING:0400/radRSEUMOD-TBALV_GRID") |
setFocus |
|
|
|
|
|
|
|
("wnd[1]/tbar[0]/btn[0]") |
press |
|
|
|
|
|
|
|
("wnd[0]/usr/cntlGRID1/shellcont/shell") |
RowCount |
|
|
|
ReadData |
AB |
|
|
("wnd[0]/usr/cntlGRID1/shellcont/shell") |
ColumnCount |
|
|
|
ReadData |
AC |
|
|
LOOP_BEGIN |
|
|
=ZAOKR(Y21/32;0)+1 |
|
|
|
|
|
("wnd[0]/usr/cntlGRID1/shellcont/shell") |
firstVisibleRow = && |
|
=JEŻELI.BŁĄD((PRAWY(Z25;DŁ(Z25)-ZNAJDŹ("|";PODSTAW(Z25;"-";"|";1))) - 1)*32;) |
|
|
|
|
|
LOOP_END |
|
|
|
|
|
|
|
|
("wnd[0]/usr/cntlGRID1/shellcont/shell") |
SelectAll |
|
|
|
|
|
|
|
("wnd[0]/usr/cntlGRID1/shellcont/shell") |
contextMenu |
|
|
|
|
|
|
|
("wnd[0]/usr/cntlGRID1/shellcont/shell") |
SelectContextMenuItemByPosition "0" |
|
|
|
|
|
|
|
("wnd[1]/tbar[0]/btn[0]") |
press |
|
|
|
|
|
X |
|
PASTE |
|
|
AA11:GZ:10000 |
|
|
|
|
|
("wnd[0]/tbar[0]/btn[12]") |
press |
|
|
|
|
|
|
|
("wnd[0]/tbar[0]/btn[12]") |
press |
|
|
|
|
|
|
|
("wnd[0]/tbar[0]/btn[12]") |
press |
|
|
|
|
|
|
|