Zmiana Zlecenia Przeniesienia podczas zapisywania

A tu dla odmiany podyskutować możesz na tematy logistyczne SAP. Jeśli pojawią się jakieś pytania, nie zwlekaj, zadaj je natychmiast.
Yeti
Posty: 137
Rejestracja: śr sty 05, 2011 5:14 pm
Has thanked: 36 times
Been thanked: 6 times

Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: Yeti » śr maja 01, 2019 5:26 pm

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

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » pn maja 06, 2019 9:03 am

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ąć?

Yeti
Posty: 137
Rejestracja: śr sty 05, 2011 5:14 pm
Has thanked: 36 times
Been thanked: 6 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: Yeti » śr maja 22, 2019 3:55 pm

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ę.

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » śr maja 22, 2019 10:07 pm

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.

Yeti
Posty: 137
Rejestracja: śr sty 05, 2011 5:14 pm
Has thanked: 36 times
Been thanked: 6 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: Yeti » pn maja 27, 2019 5:50 pm

Próbowaliśmy jednak z EXIT_SAPLL03T_001 i problem jest taki, że LT03 nie zatrzymuje się w tym exicie. Jaka może być przyczyna?

yacol
Posty: 497
Rejestracja: śr kwie 04, 2007 4:32 pm
Lokalizacja: Poznań
Has thanked: 6 times
Been thanked: 97 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: yacol » wt maja 28, 2019 8:35 am

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

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » wt maja 28, 2019 8:38 am

Yeti pisze:
pn maja 27, 2019 5:50 pm
Próbowaliśmy jednak z EXIT_SAPLL03T_001 i problem jest taki, że LT03 nie zatrzymuje się w tym exicie. Jaka może być przyczyna?
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ł.

Yeti
Posty: 137
Rejestracja: śr sty 05, 2011 5:14 pm
Has thanked: 36 times
Been thanked: 6 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: Yeti » wt maja 28, 2019 10:24 am

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

yacol
Posty: 497
Rejestracja: śr kwie 04, 2007 4:32 pm
Lokalizacja: Poznań
Has thanked: 6 times
Been thanked: 97 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: yacol » wt maja 28, 2019 2:29 pm

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.
Pozdrawiam,

Jacek Witczak
http://novertio.pl

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » wt maja 28, 2019 2:48 pm

yacol pisze:
wt maja 28, 2019 2:29 pm
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
Jak napisał Yeti wcześniej - ten ABAPer to fajtłapa.

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » śr maja 29, 2019 9:27 am

yacol pisze:
wt maja 28, 2019 2:29 pm
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"?
"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.

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » śr maja 29, 2019 9:29 am

yacol pisze:
wt maja 28, 2019 2:29 pm
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
Można to zrobić np. tak: Łatwe testowanie RFC i update task

yacol pisze:
wt maja 28, 2019 2:29 pm
Twoim miejscu posłuchałbym Dominika :) nie znam nikogo innego kto zna lepiej WM.
Dziękuję :D :D :D

Yeti
Posty: 137
Rejestracja: śr sty 05, 2011 5:14 pm
Has thanked: 36 times
Been thanked: 6 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: Yeti » pn cze 03, 2019 7:13 pm

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.

dominik.tylczynski
Posty: 7012
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 999 times
Been thanked: 1023 times

Re: Zmiana Zlecenia Przeniesienia podczas zapisywania

Post autor: dominik.tylczynski » wt cze 04, 2019 8:24 am

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:
  1. Wykorzystanie rozszerzenia po potwierdzeniu zlecenia przeniesienia i kasowanie w nim odpowiedniej jednostki składowania.
  2. Napisanie prostego raportu, który będzie kasował jednostki dla już potwierdzonych zleceń przeniesienia.
  3. Rozszerzenie obiektu archiwizacji zleceń przeniesienia o kasowanie Z-tabeli.