WM: User Exits for Own stock removal Strategy

A tu dla odmiany podyskutować możesz na tematy logistyczne SAP. Jeśli pojawią się jakieś pytania, nie zwlekaj, zadaj je natychmiast.
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Witam

Mam problem z własna strategia pobrania zapasu na typie magazynu.

Napisałem własna logikę wyszukiwania zapasu w INCLUDE ZXLTOU07 rozszerzenia MWMTO004 (rozszerzenie mam aktywowane SMOD).
Gdy testuje program z poziomu SMOD->EXIT_SAPLL03A_005 system zatrzymuje sie na ustawionym BREAK i widzę ze program działa poprawnie zgodnie z oczekiwaniami, ale jak próbuje przetworzyć zapotrzebowanie przeniesienia z poziomu LB13 to mimo tego ze w programie mam BREAK system nie zatrzymuje się i wychodzi na to ze w ogóle nie wchodzi w to rozszerzenie.

Na typie magazynu mam zaznaczony X dla User Exit przy wydaniu zapasu.
Ma ktoś pomysł dlaczego SAP nie uruchamia tego rozszerzenia?

Z góry dziękuje za pomoc.
Damian
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: WM: User Exits for Own stock removal Strategy

Post autor: dominik.tylczynski »

Czy zlecenie przeniesienia utworzone w LB13 jest wydawane z typu magazynu, dla którego zaimplementowałeś rozszerzenie?
Jak tworzysz w LB13 zlecenie przeniesienia: w tle czy w pierwszym planie z podaniem lokalizacji?
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Tak dokładnie tak. Rozszerzenie implementuje do typu magazynu z jakiego ma zostać pobrany towar.
A, co do LB13 to bez względu czy robię w tle czy w pierwszym planie i tak nie otwiera się rozszerzenie.


Pozdrawiam
Damian
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Ma ktoś pomysł co może być przyczyną takiej sytuacji?

Pozdrawiam
Damian
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: WM: User Exits for Own stock removal Strategy

Post autor: dominik.tylczynski »

To, że wykonanie rozszerzenia nie zatrzymuje się na break-point może być spowodowane tym, że zlecenie przeniesienia tworzone w LB13 jest przetwarzane w update task'u. Ustaw w kodzie swojego rozszerzenia zewnętrzny break point i sprawdź czy się zatrzyma. O external breakpoint przeczytasz na SAP Help: External Debugging (HTTP and RFC Debugging)

Inna możliwość to ustawienie nieskończonej pętli w kodzie rozszerzenia i wejście do debugera z SM50. Tę metodę opisałem kiedyś w artykule na stronie Polskiej Grupy Użytkowników SAP: Łatwe testowanie RFC i update task
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Sprawdziłem obydwa sposoby i niestety ciągle brak rezultatu. Przy external breakpoint program i tak się nie zatrzymuje, a przy nieskończonej pętli w kodzie w SM50 nie widać rozszerzenia które powinno się uruchomić.

Pozdrawiam
Damian
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: WM: User Exits for Own stock removal Strategy

Post autor: dominik.tylczynski »

Widzę zatem dwie możliwości:
  1. Albo w LB13 przetwarzasz zapotrzebowania przeniesienia na ruchy, które nie są pobraniem
  2. Albo jednak jest coś nie tak z implementacją rozszerzenia
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Hmm ale to czy rodzaj ruchu czy jest pobraniem czy nie SAP waliduje sobie tylko po tym polu?
Załączniki
plik.PNG
plik.PNG (17.96 KiB) Przejrzano 1731 razy
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: WM: User Exits for Own stock removal Strategy

Post autor: dominik.tylczynski »

Obawiam się, że bez dostępu do Twojego systemu trudno mi będzie coś więcej powiedzieć.
User-exit EXIT_SAPLL03A_005 jest wywoływany w procedurze AUSLAGERSTRATEGIE_USEREXIT, include LL03AF8N, linia 163:

Kod: Zaznacz cały

*........Einlesen und Sortieren Platzbestände für Auslagertyp...........

  CALL CUSTOMER-FUNCTION '005'
       EXPORTING
         I_LTAK     = LTAK
         I_LTAP     = LTAP
         I_MLVS     = I_MLVS
         I_MGEF     = I_MGEF
         I_T331     = VTYP
         I_T333     = I_T333
         I_T340D    = IT340D
         I_ANFML    = I_RL03A-ANFML
         I_ANFME    = I_RL03A-ANFME
         I_VORGA    = I_RL03A-VORGA
       TABLES
         T_BDBATCH  = BDBATCH_CUS
         T_QMAT     = QMAT_CUS.


Z kolei procedura AUSLAGERSTRATEGIE_USEREXIT jest wywoływana pod koniec procedury VONPLATZ_ERMITTELN, include LL03AF1F, linia 108:

Kod: Zaznacz cały

*........Auslagerung über Userexit......................................

  IF T331-USAUS = CON_X.
    PERFORM AUSLAGERSTRATEGIE_USEREXIT.
  ELSE.
Ustaw tam break-point'y i zobacz co się dzieje.
greg_hhl
Posty: 145
Rejestracja: wt paź 10, 2017 4:26 pm
Has thanked: 54 times
Been thanked: 86 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: greg_hhl »

dominik.tylczynski pisze: pn lip 22, 2019 9:11 am
Inna możliwość to ustawienie nieskończonej pętli w kodzie rozszerzenia i wejście do debugera z SM50. Tę metodę opisałem kiedyś w artykule na stronie Polskiej Grupy Użytkowników SAP: Łatwe testowanie RFC i update task
W mojej instalacji mam wykorzystane bardo podobne rozwiązanie: mam własny FM, który jest wywoływany z parametrem "nazwa modułu", wewnątrz FM sprawdzam w tabeli czy wykonywać nieskończoną pętlę ..... wygodne o tyle, że można zostawić w kodzie na stałe i w niczym nie przeszkadza. Wygodne rozwiązanie :)
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Sprawdziłem jak jak pisałeś i wychodzi mega dziwna sytuacja.

W include LL03AF1F ostatni BREAK który system zatrzymuje program mogę ostawić na lini 40.
Poniżej dla czyli od ENHANCEMENT 2 AUTO_VHU_PO_LL03AF1F. mam komunikat "Punktu zatrzym. nie jest ustawiony, ponieważ impl. rozsz. AUTO_VHU_PO_LL03AF1F jest wyłącz." wiec tu BREAK nie mogę postawić i wychodzi ze przez ten komunikat chyba SAP pomija implementacje rozszerzenia.

Może wystarczy aktywować rozszerzenie AUTO_VHU_PO_LL03AF1F? Tylko pytanie jak?

Pozdrawiam
Damian
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: WM: User Exits for Own stock removal Strategy

Post autor: dominik.tylczynski »

Tak jak pisałem wcześniej - bez dostępu do Twojego systemu to jest takie na ślepo macanie tematu. Spróbujmy jednak...

W moim systemie nie ma rozszerzenia AUTO_VHU_PO_LL03AF1F, jest ISAUTO_VHU_PO_SAPLL03A. Przypuszczam, że różnica wynika z innej wersji systemu, ale powinno wychodzić +/- na to samo.

Implemenetacja ENHANCEMENT 2 ISAUTO_VHU_PO_SAPLL03A w LL03AF1F jest u mnie od linii 52 do 104, a w linii 108 jest:

Kod: Zaznacz cały

  IF T331-USAUS = CON_X.
    PERFORM AUSLAGERSTRATEGIE_USEREXIT.
  ELSE.
Tutaj powinieneś móc ustawić break point.
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Tak na 108 owszem mogę BREAK postawić ale tak system nie zatrzymuje programu.
Sprawdziłem wpisy w tabeli T331 i przy typach mag z jakich chce pobrać zapas mam 'X' wiec kof. typów magazynu musi być dobrze.

Czyli można by spekulować ze jest to kwestia implementacji rozszerzenia. Ale nie wiem co tu można "skopać" ponieważ rozszerzenie SMOD jest aktywne
Załączniki
0002.PNG
0002.PNG (10.5 KiB) Przejrzano 1716 razy
001.PNG
001.PNG (3.42 KiB) Przejrzano 1716 razy
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: WM: User Exits for Own stock removal Strategy

Post autor: dominik.tylczynski »

Zrobiłem o siebie prosty test - oczywiście u mnie dane są inne, inne strategie, ruchy etc.
Ustawiłem zwykły session break point na początku procedury VONPLATZ_ERMITTELN, z LB13 wywołałem tworzenie TO w tle. Wykonanie zatrzymało się na break-point:
2019-07-22_13h47_32.png
2019-07-22_13h47_32.png (4.04 KiB) Przejrzano 1709 razy

Zauważyłem przy tym, że wykonanie procedury VONPLATZ_ERMITTELN jest kończone w następujących przypadkach (polecenie EXIT):

Linia 18:

Kod: Zaznacz cały

  IF LTAP-VLPLA <> INIT_LGPLA OR LTAK-MINWM = CON_X.
    PERFORM AUSLAGERSTRATEGIE_VORGABE USING CON_HELL.
    EXIT.
  ELSE.
    FLG_VORGABE_PLATZ = CON_FALSE.
  ENDIF.

Linia 27:

Kod: Zaznacz cały

  IF LTAP-VLTYP = MASK3.                                           "STR
    PERFORM AUSLAGERSTRATEGIE_***.  EXIT.
  ENDIF.

Linia 33:

Kod: Zaznacz cały

  IF LTAP-VLTYP = CON_EXIT_SFIFO.
    PERFORM AUSLAGERSTRATEGIE_USER_SFIFO.  EXIT.
  ENDIF.

W tych trzech przypadkach wykonanie nie dochodzi do rozszerzenia EXIT_SAPLL03A_005:
  1. Źródłowa lokalizacja jest ustalona
  2. Wydajesz wg strategii ścisłego FIFO
  3. Wydajesz wg strategii ścisłego FIFO + user exit
Ścisłe FIFO i ścisłe FIFO + exit wynikają z konfiguracji wyszukiwania typu magazynu.

Ustaw break-point na początku procedury VONPLATZ_ERMITTELN i daj znać co się dzieje.
damian33
Posty: 22
Rejestracja: czw cze 07, 2018 3:03 pm
Been thanked: 2 times

Re: WM: User Exits for Own stock removal Strategy

Post autor: damian33 »

Działa!
Dominik mega dziękuje za pomoc.

Nie ustawiałem teraz tych BREAK tylko zdjąłem ścisłe FIFO z typów mag gdzie implementuje rozszerzenie.
I teraz moja strategia działa dokładnie jak było założenie.

W całym temacie były dwa powody dlaczego nie uruchamiało się rozszerzanie:
1. Tak jak pisałeś niżej ścisłe FIFO nie pozwalało na uruchomienie rozszerzenia MWMTO004
2. Na materiale który wiozłem do testów nie miałem przypisanej strategii usuwania co tez kończyło program.

Naprawdę jeszcze raz dziękuje za pomoc.

Pozdrawiam
Damian
ODPOWIEDZ