Większość użytkowników systemu SAP EWM poznała już na własnej skórze temat komunikacji qRFC. Zapewne pierwszy kontakt z zagadnieniem nie należał do przyjemnych, ponieważ wynikał z zaburzeń w komunikacji między EWM a ERP. Przyczyny zawsze trzeba szukać w błędzie uniemożliwiającym przetworzenie komunikatu w drugim systemie. Niektóre z nich wymagają tylko drobnej korekty zapasu a inne zmiany danych podstawowych. Ale są i takie, które mogą być naprawiane tylko przez serwis SAP ponieważ wymagają debugowania oraz znajomości ABAP. Czy aby na pewno?
Ostatnio miałem okazję wziąć udział w rekrutacji, na której padło pytanie dotyczące ręcznej podmiany danych w komunikacie qRFC wygenerowanym przez interfejs Post Processing Framework. Oczywiście pełniąc rolę key-user’a nie mogłem poszczycić się znajomością debugowania w ABAP’ie. Do tej pory spotkałem się tylko z zakazem ręcznej podmiany danych w komunikatach nawet jeśli miała być wykonana przez kogoś z IT. Najpierw próbowano by znaleźć przyczynę błędu. Jeśli dotyczyłaby np. próby zaksięgowania dokumentu w zamkniętym już okresie sprawozdawczym, uzgodniono by z z działem finansowym czy da się jeszcze coś z tym zrobić. Podmiana danych w debugerze byłaby ostatecznością tylko w przypadku wyczerpania wszystkich innych możliwości.
Gdyby nie pozostało nic innego, należałoby wywołać transakcję odpowiedzialną za wyświetlanie komunikatów dla kolejek przychodzących SMQ2 (po stronie SAP ERP). Dlaczego? Ponieważ po aktualizacji dokumentu dostawy wychodzącej w systemie EWM wysyłany jest komunikat do systemu docelowego gdzie w trakcie buforowania pojawia się błąd uniemożliwiający prawidłowy odbiór komunikatu. Rozwiązania problemu należy szukać po stronie ERP. Naprawdę nie można tego zrobić po stronie monitora zarządzania magazynem w SAP EWM?
Spróbujmy zatem i kliknijmy w kontener danych:
Okazuje się, że przejście z monitora EWM do komunikatu zwrotnego z SAP ERP nie jest możliwe:
A więc wydawałoby się, że edycja qRFC jest możliwa tylko w SAP ERP. Tylko komunikaty dostarczane w standardzie przez SAP (biała lista definiująca edytowalne pola dla poszczególnych parametrów komunikatu) mogą być edytowane. Wszelkie niestandardowe pola zdefiniowane przez klienta nie mogą być zmieniane. Wydawałoby się więc, że tylko opcja edycji komunikatu w debugerze (wymagająca znajomości języka ABAP) nam pozostaje.
Gdy po przejściu do transakcji SMQ2 wyświetlimy ekran selekcji:
Ukażą nam się zsumowane po nazwach komunikaty kolejek wraz z opisem miejsca przeznaczenia i licznikiem.
W celu debugowania kolejki należy dwukrotnie kliknąć w odpowiedni wiersz a następnie wcisnąć przycisk “śledzenie LUW”:
System przełączy do trybu debugowania, gdzie można namierzyć, następnie edytować błąd:
Jak to zrobić? Otóż nie wiem 🙂 Dlaczego? Ponieważ nigdy dotąd tego nie robiłem, choć nie ukrywam, ze chciałbym się tego nauczyć. Do wskazanej metody nasuwają się następujące ograniczenia i pytania:
- Co zrobić jeśli użytkownik systemu nie posiada odpowiednich uprawnień do debugowania?
- Co zrobić jeśli pomimo uprawnień użytkownik nie umie czytać kodu ABAP?
- Czy metoda podmiany danych w debugerze aby na pewno jest bezpieczna?
- Czy naprawdę nie moglibyśmy zdefiniować, które pola i parametry komunikatu są edytowalne i umożliwić ich edycję bezpośrednio z monitora /SCWM/MON w EWM?
Odpowiedzi na wszystkie z powyższych pytań znajdziemy w nocie: 2225968 – EWM – Solving Issues with RFC Queues in SAP ERP.
Wspomniana nota mówi o tym, że możemy mieć możliwość edytowania komunikatów zwrotnych z ERPa z poziomu EWM (np. w przypadku częstego błędu replikacji z powodu zamknięcia okresu FI). Oczywiście to prawda, że takie błędy można debugować, ale niekiedy z powodu braku odpowiednich uprawnień może to być niemożliwe. Nota wymienia szereg korzyści wynikających z jej implementacji, tj.:
- Użytkownik zmieniający dane nie wymaga posiadania uprawnień do debugowania
- Nie wymaga uprawnień do transakcji SMQ2 aby edytować komunikat. Może bezpośrednio z monitora /SCWM/MON dokonać edycji.
- Można zmieniać listę edytowalnych pól dzięki czemu mamy kontrolę nad tym co użytkownik zmienia.
Po zastosowaniu wszystkich wskazówek we wskazanej nocie wystarczy po przejściu do kontenera danych z /SCWM/MON, aktywować jego edycję:
Następnie dokonać edycji pola dla parametru importu komunikatu:
I wcisnąć “replace” oraz przetworzyć poprawiony komunikat w monitorze lub od razu wcisnąć “Replace and Execute”. System powinien potwierdzić zmianę komunikatem jak niżej:
Dokument, opisujący zagadnienie edycji kolejek qRFC wraz ze wszystkimi niezbędnymi notami, znajdziecie tutaj: How to qRFC queue editing.
Ciekaw jestem jak do edycji komunikatów podchodzi się u Was i jakie macie związane z tym doświadczenia? Czy ktoś skorzystał z powyższego rozwiązania i dokonuje edycji i zmiany powtarzalnych błędów bez potrzeby debugowania? Czy Wam jako użytkownikom EWM też jeży się włos na głowie, gdy słyszycie o komunikatach qRFC? Zachęcam do komentowania i dziękuje za odwiedziny 😉