RLTREORG2 w tle - brak Execute

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

RLTREORG2 w tle - brak Execute

Post autor: Yeti »

Korzystamy u klienta z raportu RLTREORG2, który naprawia rozbieżności pomiędzy tabelami LAGP & LQUA. Raport działa, ale klient chciałby, aby działał w tle i naprawiał te rozbieżności na bieżąco.
Na pewno padnie pytanie o jakie rozbieżności dokładnie chodzi i dlaczego nie są analizowane za każdym razem. Klient zaprojektował i wdrożył kontrolę pojemności miejsca składowania na poziomie 1 SU, ale bez zarządzania jednostkami składowania. Ilość na 1 SU jest brana z danych paletyzacji a rozmieszczanie częściowych ilości w danym miejscu jest atualizowane jako ułamek 1 SU, np:
    1 PAL = 45 EA w danych paletyzacji
      Paleta w miejscu składowania = 15 EA
        Max il. SU w miejscu skł = 1
          Wyliczona aktualna ilość SU w m. skł. = 0,334
          System standardowa zawsze zaokrągla tę wartość w górę. Powinno być 0,333.

          Za pomocą raportu można to poprawić:
          Przykład.jpg
          Przykład.jpg (15.2 KiB) Przejrzano 567 razy
          Raport puszczony w tle, listuje tylko miejsca do naprawy, ale nie wykonuje akcji naprawczej. User ma przypisany ID parametr dla funkcji Execute.
          Pytanie - czy istnieje jakiś drugi raport, który popycha te wyniki? Albo czy ten raport wykonuje execute w jakiś inny sposób? Albo jeśli nie to czy można to jakoś sprytnie oprogramować?

          POzdr,
          Marcin
          wojtas7
          Posty: 1060
          Rejestracja: pt mar 14, 2008 12:51 pm
          Has thanked: 71 times
          Been thanked: 314 times

          Re: RLTREORG2 w tle - brak Execute

          Post autor: wojtas7 »

          Czy aby wykonać ten raport trzeba coś dodatkowo nacisnąć (przycisk)? Czy jesteś pewien że wariant selekcji jest OK?
          dominik.tylczynski
          Posty: 8350
          Rejestracja: wt kwie 03, 2007 4:05 pm
          Has thanked: 1921 times
          Been thanked: 1476 times
          Kontakt:

          Re: RLTREORG2 w tle - brak Execute

          Post autor: dominik.tylczynski »

          Raport RLTREORG2 nie jest raczej narzędziem do regularnego używania. W założeniu ma on naprawiać niespójności danych, a niespójności nie powinny być stale generowane. Jeśli są, to moim zdaniem jest coś nie tak w implementacji procesu i zacząłbym od wyeliminowania przyczyny regularnego powstawania niespójnych danych.

          Raportu RLTREORG2 nie można uruchamiać w tle z opcją automatycznego korygowania niespójności. Ten raport najpierw wyświetla listę ALV z wynikami analizy, a dopiero potem można te niespójności naprawić opcją "EXECUTE". Ta opcja jest wykonywana w procedurze USER_COMMAND, linia 1639 raportu:

          Kod: Zaznacz cały

          form USER_COMMAND using R_UCOMM like SY-UCOMM
                         RS_SELFIELD type SLIS_SELFIELD.
          
            case R_UCOMM.
              when 'EXE'.
                check LF_ZWMC = 'BU' and P_TEST is initial.               " 662369
          *  Storage Bins processing
                if P_LAGP = 'X'.
                  loop at ILAGP where CHBOX = 'X'.
                    clear LAGP.
                    perform FINAL_BIN_CHECK.                              " 662369
                    perform LOCK_SINGLE_BIN_FOR_UPDATE.                   " 662369
                    case ILAGP-STATUS.
                      when TO_CREATE.
                        perform CREATE_BIN.
                      when TO_CHANGE.
                        perform UPDATE_BIN.
                      when TO_DELETE.
                        perform LAGP_DELETE_BIN.
                      when LPTYP_MISSING.
                        perform BIN_TYPE_MISSING.
                      when MAXQU_INCONSISTENCY.
                        perform ANZQU_TOO_HIGH.
                      when MAXLE_INCONSISTENCY.
                        perform ANZLE_TOO_HIGH.
                      when NO_T337A or NO_T337B or NO_T337Z.              " 662369
                        perform CUSTOMIZING_PB.
                      WHEN weight_inconsistency.                          " 691556
                        PERFORM weight_unit_issue.
                    endcase.
                  endloop.
          
          *  Storage Units processing
                elseif P_LEIN = 'X'.
                  loop at ILEIN where CHBOX = 'X'.
                    clear LEIN.
                    perform FINAL_SU_CHECK.                               " 662369
                    perform LOCK_SINGLE_SU_FOR_UPDATE.                    " 662369
                    case ILEIN-STATUS.
                      when TO_CREATE.
                        perform CREATE_SU.
                      when TO_CHANGE.
                        perform UPDATE_SU.
                      when TO_DELETE.
                        perform LEIN_DELETE_SU.
                      when QU_INCONSISTENCY.
                        perform QUANT_INCONSISTANT.
                      WHEN weight_inconsistency.                          " 691556
                        PERFORM weight_unit_issue.
                    endcase.
                  endloop.
          
                endif.
                perform REFRESH_ALV changing RS_SELFIELD.
          Aby wykonać raportem naprawę danych w tle musiałbyś przerobić raport, tak aby nie wyświetlał listy ALV, tylko od razu wykonywał ten kawałek kodu.

          Reasumując, zacząłbym od próby wyeliminowania przyczyny powstawania niespójnych danych. Dopiero potem zrobiłbym Z-kopię RLTREORG2 i ją dopasował do działania w tle.
          Yeti
          Posty: 203
          Rejestracja: śr sty 05, 2011 5:14 pm
          Has thanked: 74 times
          Been thanked: 13 times

          Re: RLTREORG2 w tle - brak Execute

          Post autor: Yeti »

          Tak myślałem. Na szczęście klient dał się przekonać i zgadza się z tym podejściem, aby najpierw przyjrzeć się nieścisłościom. Jeśli będzie coś wartościowego, uaktualnię topic.
          Pozdr,
          Marcin
          ODPOWIEDZ