Nagrywanie transakcji (dla skryptu transakcyjnego)
Nagrywanie skryptu transakcyjnego bezpośrednio z poziomu EasyInput.
Aby rozpocząć nagrywanie należy w skoroszycie EasyInput przejść na arkusz EI_Script_TR i wybrać z menu EasyInput opcję Nagraj skrypt .
Po wybraniu przycisku Nagraj skrypt otworzy się okno wyboru transakcji, która będzie nagrywana i trybu skryptu. Wybór transakcji można ułatwić okno wyszukiwania transakcji w systemie SAP (dostępne poprzez przycisk F4). Jeśli transakcja ma tylko wysyłać dane do SAP, najprościej wybrać tryb standardowy. Jeśli transakcja ma odczytywać dane z SAP konieczny będzie tryb rozszerzony (Extended ECATT). Niektóre transakcje nie dają się nagrać w jednym z trybów, należy wtedy spróbować nagrania w drugim trybie.
Jeśli podano poprawny kod transakcji oraz podano właściwe dane połączenia na arkuszu EI_Logon, to po zatwierdzeniu ustawień przyciskiem OK powinien pojawić się ekran SAP GUI z uruchomioną wybraną transakcją. Od tego momentu wszystkie działania użytkownika będą zapisywane w skrypcie (za wyjątkiem wyszukiwania F4). Zazwyczaj warto nagrywanie powtórzyć kilka razy, tak by otrzymać skrypt, bez niepotrzebnych działań użytkownika i nie zawierający komunikatów błędów. Po zakończeniu transakcji nagrywanie również się zakończy. Użytkownik zostanie zapytany, czy chce przejąć skrypt na zakładkę EI_Script_TR, czy odrzucić nagranie (np. jeśli podczas nagrania wystąpiły błędy). W pierwszej linii skryptu oprócz kodu transakcji wstawiony zostaje w kolumnę Wartość pola identyfikator trybu skryptu (B-Standard, C-Rozszerzony).
Kilka porad przy nagrywaniu skryptów transakcji:
- należy brać pod uwagę, że aby skrypt był uniwersalny należy przemyśleć specyfikę danych i nagrywanych ekranów (np. w transakcji FB50 warto wprowadzać pozycje transakcji zawsze do pierwszej linii i wprowadzać dodatkową linię pustą powyżej pierwszej przed wprowadzeniem następnej linii – pozwoli to ominąć ograniczenie 10 linii widocznych na ekranie i ustandaryzować wprowadzania danych niezależnie od ilości linii dokumentu)
- warto wprowadzić wartość do wszystkich pól, w których skrypt ma wprowadzać wartość (nawet jeśli ta wartość na ekranie nagrywania jest już wprowadzona). Dzięki temu nie będziemy musieli ręcznie dodawać linii do skryptu.
- jeśli chcemy odczytać wartość jakiegoś pola z ekranu warto podczas zapisu skryptu dla tego ekranu wcisnąć na tym ekranie klawisz ENTER. Pozwoli to logice transakcji wykonać wszystkie sprawdzenia i doda kolejny ekran w skrypcie, na którym wszystkie wprowadzone przez użytkownika zmiany na ekranie są uwzględnione.
- jeśli chcemy odczytać wartość z jakiegoś pola z ekranu warto (po naciśnięciu Enter opisanego powyżej) na to pole kliknąć myszą. System zapamięta ustawienie kursora na tym polu – linię skryptu, która jest nam niezbędna do odczytu.
Znaczenie poszczególnych linii w skrypcie
Choć linii w skrypcie może być wiele, to łatwo można je pogrupować w kilka grup i w ten sposób identyfikować ich znaczenie w SAP. Poniższa tabela przybliża trochę strukturę skryptu:
Pola skryptu |
Znaczenie |
//T/Transakcja/ Przykład: //T/FB50/ |
Informuje, że skrypt jest nagrany dla pewnej transakcji. Występuje zawsze na początku nagranego skryptu. W produkcie EasyInput jeden skrypt może się składać z kliku skryptów nagranych dla różnych transakcji występujących kolejno. |
Program/Ekran/X// Przykład: SAPMF05A/1001/X// |
Informuje o rozpoczęciu obsługi nowego ekranu w skrypcie. Do czasu informacji o kolejnym ekranie lub do zakończenia skryptu wszystkie linie skryptu odnoszą się do tego ekranu. |
///BDC_OKCODE/Kod Przykład: ///BDC_OKCODE/=0005 |
Opisuje, jaki klawisz/ jaka ikona została wybrana podając przejście do następnego ekranu lub odświeżenie bieżącego. Najczęściej spotykane kody to =OK lub /00 dla klawisza Enter |
///BDC_SUBSCR/ekran podrzędny |
Opisuje podekrany zdefiniowane na ekranie głównym. Zazwyczaj pozostawiane bez najmniejszych zmian w skrypcie. |
///BDC_CURSOR /pole Przykład: ///BDC_CURSOR/ ACGL_HEAD-BLDAT |
Oznacza ustawienie kursora na danym polu. Wykorzystywane np. do odczytu danych z arkusza. Odczyt można wykonać tylko dla takiej linii skryptu (wymaga wprowadzenia referencji w kolumnach K i L) |
///pole /wartość pola Przykład: /// ACGL_HEAD-BLDAT / 31.12.2013 |
Oznacza wprowadzenie wartości do pola. Wykorzystywane do zapisu stałych danych lub zapisu danych kopiowanych z arkusza danych (wymaga wprowadzenie referencji w kolumnach K i L) |
Obróbka ręczna skryptu
Czasem zapisany skrypt można wykorzystać bez wprowadzania ręcznie zmian, ale taka sytuacja zdarza się rzadko. Zazwyczaj skrypt trzeba poprawić nieco ręcznie.
Najczęściej wykonywane poprawki skryptu to:
a) Linie skryptu, których nie chcemy uwzględniać w naszym skrypcie możemy usunąć lub zaznaczyć jako nieaktywne poprzez wprowadzenie „X” w kolumnie „E” arkusza skryptu
b) Dla linii (typu ///pole / wartość pola), do których chcemy wpisywać dane z arkusza danych dodanie w kolumnach K i L referencji do arkusza danych. Możemy takie linie dodać do skryptu ręcznie sprawdzając wcześniej w transakcji za pomocą klawisza F1 i informacji technicznej nazwy pola ekranu, do którego chcemy wprowadzić dane.
c) Dla linii (typu ///BDC_CURSOR / pole), z których chcemy odczytywać dane do arkusza danych dodanie w kolumnach K i L referencji do arkusza danych. Możemy takie linie dodać do skryptu ręcznie sprawdzając wcześniej w transakcji za pomocą klawisza F1 i informacji technicznej nazwy pola ekranu, do którego chcemy wprowadzić dane.
d) Usunięcie z nagranego skryptu np. drugiej linii nagranego dokumentu (bo skrypt powinien zawierać tylko jedną, którą będzie powielał zależnie od danych z arkusza danych).
e) Dodanie wersji z przerwaniem transakcji dla trybu testowego:
Wprowadzenie na ostatnim ekranie dwóch wariantów zatwierdzenia np.
Rodzaj wykonania |
Program |
Ekran |
ID początku |
Nazwa pola |
Wartość pola |
A - Actual run |
|
|
|
BDC_OKCODE |
=BU |
T - Test run |
|
|
|
BDC_OKCODE |
/ECNC |
Dodanie po ostatnim ekranie linii potwierdzających przerwanie w trybie testowym:
Rodzaj wykonania |
Program |
Ekran |
ID początku |
Nazwa pola |
Wartość pola |
T - Test run |
SAPLSPO1 |
0200 |
X |
|
|
T - Test run |
|
|
|
BDC_OKCODE |
=YES |
Uwaga! Dla wielu transakcji można zastosować wskazówki z tego punktu Zawsze najlepiej jednak nagrać wersję z wykonaniem (actual) i z przerwaniem wykonania transakcji na końcu(test) i porównać skrypty obu transakcji.
Uwaga! Dla dokumentów zawierających wiele linii dokumentu, podczas nagrywania warto wstawiać pusty wiersz w pierwszej linii dokumentu i tam wprowadzać dane. Tę operację będzie można powtarzać niezależnie od ilości pozycji dokumentów podczas wykonania transakcji.
Alternatywne nagranie skryptu z poziomu SAP GUI transakcją SHDB
SHDB to Edytor zapisu transakcji, umożliwiający „nagrywanie”, w postaci skryptu, działań użytkownika w systemie. Taki „nagrany” skrypt można później przekopiować/ wczytać do arkusza EasyInput.
Nagrywanie skryptu w transakcji SHDB
Najprostszy sposób uruchomienia transakcji SHDB to wpisanie ciągu SHDB w okno komend SAP GUI i naciśnięcie klawisza Enter.
Na głównym ekranie transakcji SHDB należy wybrać opcję Nowy zapis I podać odpowiednie dane początkowe w pojawiającym się wyskakującym okienku:
Najważniejsze informacje które należy podać to identyfikator nagrywanej transakcji (w przypadku okienka powyżej FB50) oraz nazwa pod którą skrypt zostanie zapisany (TEST_001).
Uwaga! Jeśli nagrywamy dla trybu Standardowego (Batch Input) pozostawiamy domyślne parametry sekcji Parametr zapisu (jak na ekranie powyżej). W przypadku nagrywania dla trybu Extended należy w sekcji Parametr zapisu zmienić następujące ustawienia (pozostałe pozostawiamy domyślne):
- w polu wyboru Tryb CATT wybrać – N – CATT bez sterowania pojedynczymi ekranami
- zaznaczyć checkbox Kontyn. po commit
- zaznaczyć checkbox Bez trybu BI
Następnie należy kliknąć przycisk Rozpoczęcie zapisu. Nastąpi przejście do wybranej do zapisu transakcji. Od tego momentu wszystkie działania użytkownika będą zapisywane w skrypcie. Zazwyczaj warto nagrywanie powtórzyć kilka razy, tak by otrzymać skrypt, bez niepotrzebnych działań użytkownika i nie zawierający komunikatów błędów.
Po zakończeniu transakcji system pokaże nam wygenerowany skrypt.
Skrypt składa się z ciągu linii pogrupowanych dla poszczególnych ekranów. Taki skrypt, jeśli jest poprawny warto zapisać i można kawałek po kawałku przekopiować z SAP do arkusza MS Excel ręcznie.
Kopiowanie ręczne
Kopiowanie można przeprowadzić za pomocą sekwencji
Ctrl + Y – przejście do trybu zaznaczanie części ekranu SAP
Zaznaczenie myszką obszaru do kopiowania
Ctrl + C – skopiowanie zaznaczonego obszaru do schowka
Przełączenie się na MS Excel i skopiowanie schowka do kolumn skryptu F-J na arkuszy EI_Script_TR za pomocą skrótu klawiaturowego Ctrl + V.
Kopiowanie należy powtórzyć kilka razy, gdyż zazwyczaj skrypt w SAP nie mieści się na jednej stronie ekranu i nie można go zaznaczyć całego za jednym razem.
Kopiowanie automatyczne
Najpierw należy nagrać skrypt do pliku za pomocą ikony Export (Shift + F8) w SAP GUI na ekranie zmiany skryptu.
Następnie w skoroszycie EasyInput, otworzyć arkusz EI_Script_TR i wcisnąć klawisz Zaimportuj plik skryptu w menu wstążki EasyInput i wybrać właściwy plik.
Uwaga! Aby przycisk Zaimportuj plik skryptu pojawił się w menu wstążki EasyInput, należy w ustawieniach Informacje o EasyInput > Ustawienia > Inne odznaczyć pole wyboru Ukryj zaawansowane przyciski konfiguracji skryptu.