Łatwe testowanie RFC i update task

Programy wykonywane w zadaniach aktualizacji czy podczas wywołań funkcji RFC są często trudne do przetestowania i debugowania. Poniżej przedstawiam prostą metodę radzenia sobie z tym problemem.

Często rozszerzenia customer-exit czy BADI w systemach SAP są wykonywane w zadaniu aktualizacji, w update task’u, bez dostępu do serwera prezentacji. Podobna sytuacja występuje podczas przetwarzania wywołań funkcji RFC. Znacznie utrudnia to testowanie implementacji rozszerzeń czy funkcji RFC. Ustawienie break-point’a w kodzie nie powoduje bowiem zatrzymania przetwarzania kodu.

Jedną z możliwość poradzenia sobie z tą trudnością jest włączenie śledzenia aktualizacji. Ta metoda nie rozwiązuje jednak problemu w przypadku funkcji RFC. Proponuję zatem inny sposób.

Na początku kodu rozszerzenia czy własnej funkcji RFC należy dodać kod:

DATA: debug VALUE 'X'.
WHILE sy-uname = <nazwa Twojego użytkownika>
  AND debug = 'X'.
ENDWHILE.

Następnie należy uruchomić transakcję w SAP, która wykorzystuje nasze rozszerzenie lub wywołać funkcję RFC z zewnętrznego systemu. Dodany kod spowoduje, że przetwarzanie wejdzie w nieskończoną pętlę.

W celu prześledzenia dalszego przetwarzania należy uruchomić transakcję SM50 (przegląd procesów roboczych). Znajdziemy na niej nasze rozszerzenie po nazwie programu głównego:

Zaznaczenie procesu, który przetwarzana nasze rozszerzenie (tutaj proces nr 14) i wybranie z menu opcji: Program/tryb -> Program -> Śledzenie spowoduje otwarcie nowej sesji z rozszerzeniem w debuggerze. Wystarczy następnie skasować wartość zmiennej debug i można prześledzić działanie rozszerzenia.

Zostaw komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.