Cześć,
Chciałbym zaimplementować u klienta rozwiązanie, w którym po utworzeniu Zlecenia Przeniesienia na rozmieszczenie lub w trakcie zapisywania, automatycznie wołany jest program albo job do wołania tego programu - na pobranie (zaopatrzenie produkcji do 100). Program do pobrania mamy gotowy ze wszystkimi uwarunkowaniami. Chodzi tylko o trigger tego programu (lub jobu). Jakie rozszerzenie byłoby odpowiednie, żeby tego dokonać, user-exit? Programista z Indii chciał to włożyć do ZXLTOU13, ale odradziłem, wtedy jezcze nie wiadomo czy kwant będzie w docelowym miejscu, to tylko sugestia. Najlepiej byłoby podczas zapisywania TO. Bardzo proszę o sugestie.
Dzięki,
Marcin
TO na pobranie podczas tworzenia TO na rozmieszczenie
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1478 times
- Kontakt:
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
ZXLTOU13, czyli MWMTO007, EXIT_SAPML03T_002 to nie jest dobre miejsce na Twoje rozszerzenie. Ten exit jest wywoływany dla zleceń na rozmieszczenie i ustala dane paletyzacji. Natomiast zlecenie przeniesienia nie musi koniecznie zostać zapisane po ustaleniu danych paletyzacji. Zatem może się okazać, że exit zostanie wywołany, uruchomisz swój program do pobrań, a zlecenie na rozmieszczanie nie zostanie utworzone.
Po utworzeniu zlecenia przeniesienia wywoływane jest rozszerzenie MWMTO001, EXIT_SAPLL03T_001. Natomiast myślę, że lepiej jeśli będziesz uruchamiać swój program do pobrań, dopiero po potwierdzeniu zlecenia na rozmieszczenie, bo wtedy jesteś pewien, że zapas znajduje się w docelowej lokalizacji, skąd możesz go pobrać do produkcji. Po potwierdzeniu zlecenia przeniesienia masz rozszerzenie MWMTO002, EXIT_SAPLL03T_002.
Zwróć uwagę, że oba rozszerzenia tj. po utworzeniu i po potwierdzeniu są wywoływane w update task.
Po utworzeniu zlecenia przeniesienia wywoływane jest rozszerzenie MWMTO001, EXIT_SAPLL03T_001. Natomiast myślę, że lepiej jeśli będziesz uruchamiać swój program do pobrań, dopiero po potwierdzeniu zlecenia na rozmieszczenie, bo wtedy jesteś pewien, że zapas znajduje się w docelowej lokalizacji, skąd możesz go pobrać do produkcji. Po potwierdzeniu zlecenia przeniesienia masz rozszerzenie MWMTO002, EXIT_SAPLL03T_002.
Zwróć uwagę, że oba rozszerzenia tj. po utworzeniu i po potwierdzeniu są wywoływane w update task.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1478 times
- Kontakt:
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Ma - jeśli zlecenie jest automatycznie potwierdzane podczas tworzenia to wywoływane jest tylko rozszerzenie MWMTO001, a MWMTO002 już nie, bo nie ma tak naprawdę oddzielnego kroku potwierdzenia. To czy zlecenie jest potwierdzane podczas tworzenia widać w MWMTO001.
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Niestety napotkaliśmy program przy procesowaniu naszego programu w backgroundzie przez job w user-exit ZXLTOU01. Nie jest to możliwe wg developera ze względu na fakt, że L_TA_HINZUFUEGEN jest wołany w update tasku i commit jest wywoływany w FB JOB_OPEN. Hm, cokolowiek to znaczy. Próbowaliśmy też BADI WM_ENHANCEMENT, ale dostajemy message: BADI definition WM_WM_ENHANCEMENT is only provided for SAP internal use.
Nie mamy innego pomysłu. Czy da się temu jakoś zaradzić albo jednak wywoływać job w innym miejscu?
BYłbym wdzięczny za pomoc.
Dzięki,
Marcin.
Nie mamy innego pomysłu. Czy da się temu jakoś zaradzić albo jednak wywoływać job w innym miejscu?
BYłbym wdzięczny za pomoc.
Dzięki,
Marcin.
-
- Posty: 1061
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 71 times
- Been thanked: 315 times
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
a na czym problem polega, w momencie nie macie do dyspozycji jeszcze danych w bazie?Yeti pisze: ↑wt mar 26, 2024 5:31 pm Niestety napotkaliśmy program przy procesowaniu naszego programu w backgroundzie przez job w user-exit ZXLTOU01. Nie jest to możliwe wg developera ze względu na fakt, że L_TA_HINZUFUEGEN jest wołany w update tasku i commit jest wywoływany w FB JOB_OPEN. Hm, cokolowiek to znaczy.
A BADI nazywa się inaczej WM_ENHANCMENT.
https://community.sap.com/t5/applicatio ... -p/5456338
Ostatnio zmieniony śr mar 27, 2024 10:13 am przez wojtas7, łącznie zmieniany 1 raz.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1478 times
- Kontakt:
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Problem polega na tym, że jak w update task zrobisz commit to poleci dump.
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Tak, dokładnie - mamy dump.dominik.tylczynski pisze: ↑śr mar 27, 2024 10:10 am Problem polega na tym, że jak w update task zrobisz commit to poleci dump.
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1478 times
- Kontakt:
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Miejsce jest dobre. Natomiast faktycznie nie możesz utworzyć zadania w tle funkcją FB_JOB_OPEN będąc w update task'u ze względu na commit w tej funkcji. Dlatego musisz tworzenie job'a wyprowadzić poza update task. Całą logikę/kod ABAP, który teraz masz w ZXLTOU01 do tworzenia job'a przenieś do nowego modułu funkcyjnego, RFC-enabled. Następnie z ZXLTOU01 wywołaj ten nowy moduł przy pomocy CALL FUNCTION func IN BACKGROUND TASK AS SEPARATE UNIT. Wtedy tworzenie job'a zostanie wykonane w oddzielnym LUW. Jakby się coś wysypało w tej funkcji, to błędy znajdziesz w logu RFC, transakcja SM58.Yeti pisze: ↑wt mar 26, 2024 5:31 pm Niestety napotkaliśmy program przy procesowaniu naszego programu w backgroundzie przez job w user-exit ZXLTOU01. Nie jest to możliwe wg developera ze względu na fakt, że L_TA_HINZUFUEGEN jest wołany w update tasku i commit jest wywoływany w FB JOB_OPEN. Hm, cokolowiek to znaczy. Próbowaliśmy też BADI WM_ENHANCEMENT, ale dostajemy message: BADI definition WM_WM_ENHANCEMENT is only provided for SAP internal use.
Nie mamy innego pomysłu. Czy da się temu jakoś zaradzić albo jednak wywoływać job w innym miejscu?
BYłbym wdzięczny za pomoc.
Dzięki,
Marcin.
Tak naprawdę to nie musisz nawet za każdym razem tworzyć nowego job'a. Możesz zaplanować jedno zadanie w tle i uruchamiać je przy pomocy zdarzenia wywoływanego z rozszerzenia po utworzeniu zlecenia przeniesienia: Na początek spróbowałbym z job'em uruchamianym zdarzeniem. Jest to znacznie prostsze do zaimplementowania.
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Bardzo dziękuję za wszystkie podpowiedzi! Próbujemy wszystkiego. Developer entuzjastycznie podszedł do pierwszej z nich dotyczącej LUW. Jednak przed chwilą dostałem info od programisty: The statements COMMIT WORK and ROLLBACK WORK must not be executed within a LUW. In addition, no implicit database commit can be triggered there. To jest z SAP documentation. Nasz program do tworzenia TO na pobranie ma kilka commitów. Czy to ma sens czy też my coś źle robimy, że cały czas mamy problem z tymi commitami?
Druga propozycja wydaje mi się lepsza, ale żadne z nas nie ma z tym doświadczenia. Zaczęliśmy więc od LUW.
Pozdrawiam,
Marcin
Druga propozycja wydaje mi się lepsza, ale żadne z nas nie ma z tym doświadczenia. Zaczęliśmy więc od LUW.
Pozdrawiam,
Marcin
-
- Posty: 8356
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1924 times
- Been thanked: 1478 times
- Kontakt:
Re: TO na pobranie podczas tworzenia TO na rozmieszczenie
Coś musicie robić nie tak z CALL FUNCTION func IN BACKGROUND TASK AS SEPARATE UNIT. Wykorzystywałem to podejście wielokrotnie i działało bez zarzutu. Nie kojarzę ograniczenie w COMMIT WORK w CALL FUNCTION func IN BACKGROUND TASK AS SEPARATE UNIT.Yeti pisze: ↑pt mar 29, 2024 11:36 am Bardzo dziękuję za wszystkie podpowiedzi! Próbujemy wszystkiego. Developer entuzjastycznie podszedł do pierwszej z nich dotyczącej LUW. Jednak przed chwilą dostałem info od programisty: The statements COMMIT WORK and ROLLBACK WORK must not be executed within a LUW. In addition, no implicit database commit can be triggered there. To jest z SAP documentation. Nasz program do tworzenia TO na pobranie ma kilka commitów. Czy to ma sens czy też my coś źle robimy, że cały czas mamy problem z tymi commitami?