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):
LOOP_BEGIN

   … 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.:
1-2 (pojedynczy poziom pętli wewnętrznej) lub 2-3-5 (wewnątrz zagnieżdżonej pętli).

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
Adres( AB20)

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