Potrzebuję zmienić zlecenie przeniesienia w momencie jego zapisywania (nie wcześniej) albo po zapisaniu. Zmianie ma ulec pole VLENR w LTAP. Nie wiem jakiego user-exit'a mogę użyć. Znalazłem tylko EXIT_SAPLL03T_001, który niestety nie jest wołany z jakegoś powodu. I klops.
Pozdrawiam
Marcin
Zmiana Zlecenia Przeniesienia podczas zapisywania
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Zlecenie przeniesienia podczas zapisywania możesz aktualizować przy pomocy rozszerzenia MWMTO001, funkcja EXIT_SAPLL03T_001.
Nie jest to co prawda podstawowe zastosowanie tego rozszerzenia, ale używałem go wielokrotnie do aktualizowania danych na nagłówku zlecenia i działa bez problemu. Aktualizację robisz wprost przez update odpowiednich tablic.
Jednak zdecydowanie odradzam aktualizację pola LTAP-VLENR "Source storage unit number" - na 100% złapiesz niespójność danych po takiej aktualizacji. Zlecenie przeniesienia na pobranie z danej jednostki składowania aktualizuje nie tylko dane w samym zleceniu ale też m.in. w danych kwantów magazynowych.
Zasadnicze pytanie zatem: co chcesz osiągnąć?
Nie jest to co prawda podstawowe zastosowanie tego rozszerzenia, ale używałem go wielokrotnie do aktualizowania danych na nagłówku zlecenia i działa bez problemu. Aktualizację robisz wprost przez update odpowiednich tablic.
Jednak zdecydowanie odradzam aktualizację pola LTAP-VLENR "Source storage unit number" - na 100% złapiesz niespójność danych po takiej aktualizacji. Zlecenie przeniesienia na pobranie z danej jednostki składowania aktualizuje nie tylko dane w samym zleceniu ale też m.in. w danych kwantów magazynowych.
Zasadnicze pytanie zatem: co chcesz osiągnąć?
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Chcę osiągnąć podpowiedź na ekranie skanera - która jednostka składowania powinna być pobrana, bez podpowiedzi o partii. Typ magazynu zarządzany jest w strategii blokowej bez podpowiadania partii. Na jednej jednostce składowania może znajdować się kilka partii tego samego materiału. Chcę pobrać całą paletę.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Strategia magazynu blokowego to jedyna strategia, gdzie podczas pobrania nie jest określana źródłowa jednostka składowania. To moim zdaniem jest najistotniejsza cecha tej strategii - dlatego moim zdaniem magazyn blokowy to bardziej strategia pobierania niż rozmieszczania.
Masz strategię magazynu blokowego, a jednak chcesz określać źródłową jednostkę składowania w zleceniu przeniesienia. Może zatem zamiast na siłę aktualizować LTAP-VLENR lepiej zastosować jakąś inną strategię rozmieszczania zamiast magazynu blokowego. Wtedy źródłowa jednostka składowania zostanie ustalona w standardzie SAP WM.
Jeśli z jakichś względów musisz jednak stosować strategię magazynu blokowego to sugeruję jednak nie aktualizować LTAP-VLENR tylko dodać własne pole do transakcji skanerowej i wyświetlać w nim sugerowaną do pobrania jednostkę składowania.
Masz strategię magazynu blokowego, a jednak chcesz określać źródłową jednostkę składowania w zleceniu przeniesienia. Może zatem zamiast na siłę aktualizować LTAP-VLENR lepiej zastosować jakąś inną strategię rozmieszczania zamiast magazynu blokowego. Wtedy źródłowa jednostka składowania zostanie ustalona w standardzie SAP WM.
Jeśli z jakichś względów musisz jednak stosować strategię magazynu blokowego to sugeruję jednak nie aktualizować LTAP-VLENR tylko dodać własne pole do transakcji skanerowej i wyświetlać w nim sugerowaną do pobrania jednostkę składowania.
-
- Posty: 561
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 9 times
- Been thanked: 165 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Napisz jak wyglądała próba zatrzymania o ile dobrze pamiętam to ten exit wykonywany jest w update tasku i zwykły prosty break-point nie zadziała.
Pozdrawiam,
Jacek Witczak
http://novertio.pl
Jacek Witczak
http://novertio.pl
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Ten exit jest wywoływany zawsze podczas tworzenia zlecenia przeniesienia, zawsze. Zatem najpewniej po prostu nie udało Ci się go zatrzymać.
Zwróć proszę uwagę na moje wcześniejsze posty - własna, niestandardowa aktualizacja LTAP-VLENR to naprawdę nie jest dobry pomysł.
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Dzięki za cenne wskazówki!
Oczywiście rozumiem. Aby sugerować źródłową jednostkę składowania na ekranie skanera, muszę ten numer tam jakoś przekazać. Ten numer jest ustalany podczas niestandardowej strategii pobierania, a następnie usuwany ze względu na wymagania magazynu blokowego bez sugerowania partii. Ten numer chcieliśmy zapisywać właśnie w LTAP-VLENR za pomocą EXIT_SAPLL03T_001. Jeśli nie tam, gdzie mogę zapisać ten numer na poziomie pozycji zlecenia przeniesienia, aby móc go później odczytać w transakcji skanerowej i czy nadal EXIT_SAPLL03T_001 jest do tego odpowiedni? Niestety mój programista to fajtłapa i wszystko muszę mu sugerować (co nie jest łatwe nie będąc programistą...).
Druga rzecz to zatrzymywanie EXIT_SAPLL03T_001. Ten exit siedzi w L_TA_HINZUFUEGEN in LL03AF8C. Ten FM jest wołany jeśli i_rl03a-verbu = con_X. Wtedy FM jest wołany w update task. U nas i_rl03a-verbu ma wartość X, ale FM nie jest wołany. Zupełnie nic mi to nie mówi. W związku z tym nie jest wołany też user-exit.
Pozdrawiam
Marcin
Oczywiście rozumiem. Aby sugerować źródłową jednostkę składowania na ekranie skanera, muszę ten numer tam jakoś przekazać. Ten numer jest ustalany podczas niestandardowej strategii pobierania, a następnie usuwany ze względu na wymagania magazynu blokowego bez sugerowania partii. Ten numer chcieliśmy zapisywać właśnie w LTAP-VLENR za pomocą EXIT_SAPLL03T_001. Jeśli nie tam, gdzie mogę zapisać ten numer na poziomie pozycji zlecenia przeniesienia, aby móc go później odczytać w transakcji skanerowej i czy nadal EXIT_SAPLL03T_001 jest do tego odpowiedni? Niestety mój programista to fajtłapa i wszystko muszę mu sugerować (co nie jest łatwe nie będąc programistą...).
Druga rzecz to zatrzymywanie EXIT_SAPLL03T_001. Ten exit siedzi w L_TA_HINZUFUEGEN in LL03AF8C. Ten FM jest wołany jeśli i_rl03a-verbu = con_X. Wtedy FM jest wołany w update task. U nas i_rl03a-verbu ma wartość X, ale FM nie jest wołany. Zupełnie nic mi to nie mówi. W związku z tym nie jest wołany też user-exit.
Pozdrawiam
Marcin
-
- Posty: 561
- Rejestracja: śr kwie 04, 2007 4:32 pm
- Lokalizacja: Poznań
- Has thanked: 9 times
- Been thanked: 165 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Wydaje się, że L_TA_HINZUFUEGEN jest wołany bez względu na pole RL03A-VERBU w takim sensie,
że gdy to pole równe jest 'X' wtedy jest wywoływany jako update task - w przeciwnym przypadku
jest również wołany ale jak zwykły FM (czyli bez dodatku IN UPDATE TASK)
Jeżeli teraz sobie wejdziemy do kodu źródłowego L_TA_HINZUFUEGEN to widać wyraźnie, że ten
user exit jest wołany (prawie pod sam koniec - CALL CUSTOMER-FUNCTION '001' - w moim systemie
linia nr 182).
Co prawda w kilku miejscach wcześniej, w przypadku błędów, są wyświetlane komunikaty typu 'A'
(abort) ale z pewnością byście je zauważyli . Stąd wnioskuję, że jedno z dwóch ma miejsce:
1. wiem, że w kilku miejscach w konfiguracji WM jest pstryczek, który odpowiada za uruchamianie
tego czy innego user exista - może coś w Twoim systemie nie jest "ticknięte"?
2. Twój ABAPer po prostu nie wie jak zatrzymać się w FM wykonywanym jako update task. Można to
zrobić przynajmniej na kilka sposobów (np. w zależności od wersji systemu) ale... no własnie - na
Twoim miejscu posłuchałbym Dominika nie znam nikogo innego kto zna lepiej WM.
że gdy to pole równe jest 'X' wtedy jest wywoływany jako update task - w przeciwnym przypadku
jest również wołany ale jak zwykły FM (czyli bez dodatku IN UPDATE TASK)
Jeżeli teraz sobie wejdziemy do kodu źródłowego L_TA_HINZUFUEGEN to widać wyraźnie, że ten
user exit jest wołany (prawie pod sam koniec - CALL CUSTOMER-FUNCTION '001' - w moim systemie
linia nr 182).
Co prawda w kilku miejscach wcześniej, w przypadku błędów, są wyświetlane komunikaty typu 'A'
(abort) ale z pewnością byście je zauważyli . Stąd wnioskuję, że jedno z dwóch ma miejsce:
1. wiem, że w kilku miejscach w konfiguracji WM jest pstryczek, który odpowiada za uruchamianie
tego czy innego user exista - może coś w Twoim systemie nie jest "ticknięte"?
2. Twój ABAPer po prostu nie wie jak zatrzymać się w FM wykonywanym jako update task. Można to
zrobić przynajmniej na kilka sposobów (np. w zależności od wersji systemu) ale... no własnie - na
Twoim miejscu posłuchałbym Dominika nie znam nikogo innego kto zna lepiej WM.
Pozdrawiam,
Jacek Witczak
http://novertio.pl
Jacek Witczak
http://novertio.pl
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Jak napisał Yeti wcześniej - ten ABAPer to fajtłapa.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
"Pstryczyki" dotyczą włączenia user-exit do własnej strategii rozmieszczania lub pobierania, odpowiednio MWMTO003 i MWMTO004.
Rozszerzenie MWMTO001 / EXIT_SAPLL03T_001 działa od razu po aktywacji w CMOD.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Dominik, zrobiliśmy tak jak zasugerowałeś. Zapamiętujemy wybraną jednostkę składowania w odrębnej Z-tabeli. W transakcji skanerowej sięgamy do tej tabeli i wprowadzamy numer palety w pole do skanowania jednostki składowania (transakcja to Z-LM07) w ten sposób, że możliwe jest zaakceptowanie albo nadpisanie sugestii. Działa!
Dzięki!
Yeti.
Dzięki!
Yeti.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1477 times
- Kontakt:
Re: Zmiana Zlecenia Przeniesienia podczas zapisywania
Cieszę, się że zrobiliście rozwiązanie, które nie koliduje ze standardem SAP WM.
W sumie skoro masz własną Z-LM07, logikę wyliczanie sugerowanej jednostki składowania można by wstawić bezpośrednio do tej transakcji i nie zapisywać nic w Z-tabela. Swoją drogę ciekaw jestem jak zaimplementowaliście tę Z-LM07?
Skoro każda pozycja zlecenia przeniesienia zapisuje sugerowaną jednostkę w Z-tabeli, to warto byłoby zadbać o czyszczenie tej tabeli - możliwości jest kilka:
W sumie skoro masz własną Z-LM07, logikę wyliczanie sugerowanej jednostki składowania można by wstawić bezpośrednio do tej transakcji i nie zapisywać nic w Z-tabela. Swoją drogę ciekaw jestem jak zaimplementowaliście tę Z-LM07?
Skoro każda pozycja zlecenia przeniesienia zapisuje sugerowaną jednostkę w Z-tabeli, to warto byłoby zadbać o czyszczenie tej tabeli - możliwości jest kilka:
- Wykorzystanie rozszerzenia po potwierdzeniu zlecenia przeniesienia i kasowanie w nim odpowiedniej jednostki składowania.
- Napisanie prostego raportu, który będzie kasował jednostki dla już potwierdzonych zleceń przeniesienia.
- Rozszerzenie obiektu archiwizacji zleceń przeniesienia o kasowanie Z-tabeli.