Текущее время: Пт, мар 29 2024, 16:22

Часовой пояс: UTC + 3 часа


Правила форума


Вопросы по ППМ (MRP) - сюда.
Вопросы по классификации - сюда.
Вопросы по входящим поставкам - сюда.



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Как найти BAdI и user-exit'ы, в том числе в MM.
СообщениеДобавлено: Вт, ноя 20 2007, 15:04 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
Как узнать, какие BAdI срабатывают при работе транзакции? Для кого-то этот текст будет откровением, кто-то мне захочет написать "да и так знали"... не надо :)

BAdI (или Business Add-Ins) появились уже в 4.7 версии, но я там не был, поэтому то, что я здесь написал, справедливо для версии ERP2005.

Запускаем SE24, указываем класс "cl_exithandler".
Тыкаем "Просмотр", в появившемся списке тыкаем в метод GET INSTANCE 2 (два) раза быстро (double click). Открывается исходный код. Переходим на строку CASE sy-subrc. (Это в начале, у меня это строка 28 ).
Ставим бряк на эту строку.

Запускаем нужную нам транзакцию, например, me21n. Вылезает окно отладчика, смотрим содержимое EXIT_NAME. Для перехода к следующему сработавшему BAdI нажимаем F8.

Смотреть BAdI - в SE18.

Спасибо за внимание, пожелания и предложения принимаются :)

О том, как найти user-exit'ы, расскажет OlegDm :)

_________________
Eritis sicut Deus, scientes bonum et malum...


Последний раз редактировалось SAA Чт, авг 14 2008, 07:36, всего редактировалось 3 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 20 2007, 15:14 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Вот прога, с помощью которой это (найти Exit-ы и BADI) сделать проще (к сожалению не помню откуда ее взял, так что прямой ссылки на источник-оригинал дать не могу):

Code:
REPORT ZPM_X_EXIT_BADI NO STANDARD PAGE HEADING
                       LINE-SIZE  80  LINE-COUNT 65  MESSAGE-ID ZM.

TABLES : TSTC,
         TADIR,
         MODSAPT,
         MODACT,
         TRDIR,
         TFDIR,
         ENLFDIR,
         SXS_ATTRT,
         TSTCT.

DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
DATA : FIELD1(30).
DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
DATA wa_tadir type tadir.

PARAMETERS : P_TCODE LIKE TSTC-TCODE,
             P_PGMNA LIKE TSTC-PGMNA .

START-OF-SELECTION.

  IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.

  ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
  ENDIF.

  IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'PROG'
    AND OBJ_NAME = TSTC-PGMNA.

    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.

    IF SY-SUBRC NE 0.
      SELECT SINGLE * FROM TRDIR
      WHERE NAME = TSTC-PGMNA.
      IF TRDIR-SUBC EQ 'F'.
        SELECT SINGLE * FROM TFDIR
        WHERE PNAME = TSTC-PGMNA.

        SELECT SINGLE * FROM ENLFDIR
        WHERE FUNCNAME = TFDIR-FUNCNAME.

        SELECT SINGLE * FROM TADIR
        WHERE PGMID = 'R3TR'
        AND OBJECT = 'FUGR'
        AND OBJ_NAME EQ ENLFDIR-AREA.

        MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
      ENDIF.
    ENDIF.

    SELECT * FROM TADIR INTO TABLE JTAB
    WHERE PGMID = 'R3TR'
    AND OBJECT in ('SMOD', 'SXSD')
    AND DEVCLASS = V_DEVCLASS.


    SELECT SINGLE * FROM TSTCT
    WHERE SPRSL EQ SY-LANGU
    AND TCODE EQ P_TCODE.

    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    WRITE:/(19) 'Transaction Code - ',
    20(20) P_TCODE,
    45(50) TSTCT-TTEXT.
    SKIP.
    IF NOT JTAB[] IS INITIAL.
      WRITE:/(105) SY-ULINE.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.

* Sorting the internal Table
      sort jtab by OBJECT.
      data : wf_txt(60) type c,
      wf_smod type i ,
      wf_badi type i ,
      wf_object2(30) type C.
      clear : wf_smod, wf_badi , wf_object2.
* Get the total SMOD.

      LOOP AT JTAB into wa_tadir.
        at first.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.

          WRITE:/1 SY-VLINE,
          2 'Enhancement/ Business Add-in',
          41 SY-VLINE ,
          42 'Description',
          105 SY-VLINE.
          WRITE:/(105) SY-ULINE.
        endat.
        clear wf_txt.
        at new object.
          if wa_tadir-object = 'SMOD'.
            wf_object2 = 'Enhancement' .
          elseif wa_tadir-object = 'SXSD'.
            wf_object2 = ' Business Add-in'.

          endif.
          FORMAT COLOR COL_GROUP INTENSIFIED ON.

          WRITE:/1 SY-VLINE,

          2 wf_object2,
          105 SY-VLINE.
        endat.

        case wa_tadir-object.
          when 'SMOD'.
            wf_smod = wf_smod + 1.
            SELECT SINGLE MODTEXT into wf_txt
            FROM MODSAPT
            WHERE SPRSL = SY-LANGU
            AND NAME = wa_tadir-OBJ_NAME.
            FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

          when 'SXSD'.
* For BADis
            wf_badi = wf_badi + 1 .
            select single TEXT into wf_txt
            from SXS_ATTRT
            where sprsl = sy-langu
            and EXIT_NAME = wa_tadir-OBJ_NAME.
            FORMAT COLOR COL_NORMAL INTENSIFIED ON.

        endcase.



        WRITE:/1 SY-VLINE,
        2 wa_tadir-OBJ_NAME hotspot on,
        41 SY-VLINE ,
        42 wf_txt,
        105 SY-VLINE.
        AT END OF object.
          write : /(105) sy-ULINE.
        ENDAT.


      ENDLOOP.

      WRITE:/(105) SY-ULINE.



      SKIP.
      FORMAT COLOR COL_TOTAL INTENSIFIED ON.
      WRITE:/ 'No.of Exits:' , wf_smod.
      WRITE:/ 'No.of BADis:' , wf_badi.

    ELSE.
      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
      WRITE:/(105) 'No userexits or BADis exist'.
    ENDIF.
  ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'Transaction does not exist'.
  ENDIF.

AT LINE-SELECTION.

  data : wf_object type tadir-object.
  clear wf_object.

  GET CURSOR FIELD FIELD1.
  CHECK FIELD1(8) EQ 'WA_TADIR'.
  read table jtab with key obj_name = sy-lisel+1(20).
  move jtab-object to wf_object.

  case wf_object.
    when 'SMOD'.
      SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).

      CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    when 'SXSD'.
      SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
      CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
  endcase.


Последний раз редактировалось OlegDm Ср, ноя 21 2007, 06:23, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 20 2007, 15:17 
Директор
Директор

Зарегистрирован:
Чт, авг 18 2005, 17:00
Сообщения: 1174
Откуда: РФ
Добавлю:
Свои BADi создаются в se19.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 20 2007, 15:40 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
немного подредактировал заголовок и сообщение

_________________
Eritis sicut Deus, scientes bonum et malum...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 17:04 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, авг 02 2007, 14:26
Сообщения: 443
Откуда: S/4 HANA
Пол: Мужской
Классно!!! Я и этого не знал, хотя давно меня интересовал этот вопрос.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 17:14 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 10:25
Сообщения: 627
Позвольте добавить свои "пять копеек":
https://www.sdn.sap.com/irj/sdn/thread?threadID=400329


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 22 2007, 18:37 
Начинающий
Начинающий

Зарегистрирован:
Чт, ноя 22 2007, 18:33
Сообщения: 1
и мои 5 копеек


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 23 2007, 08:29 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
вообще нужно для коллекции иметь различные варианты отчетов для поиска расширений, поскольку одни могут найти одно, другие другое.
Например, приведенный мной код не найдет BTE, в то же самое время это делает приведенный по ссылке DYA отчет, но он не может найти, например, БАДИ для ME21N.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как найти BAdI и user-exit'ы, в том числе в MM.
СообщениеДобавлено: Ср, ноя 03 2010, 13:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 29 2005, 07:34
Сообщения: 1127
Откуда: РОССИЯ
Пол: Мужской
to OlegDm

за программку ВВВВООООТ ТАКОЕ БОЛЬШЕ СПААААСИБО! :D

_________________
мне бы такой "Журнал изменений" как в SAP да в жизнь... цены бы не было!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как найти BAdI и user-exit'ы, в том числе в MM.
СообщениеДобавлено: Ср, ноя 03 2010, 14:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Вот тут еще можно посмотреть: viewtopic.php?f=13&t=62150
Описание способов поиска расширений + отчет для расширенного поиска (самая первая прога которую я написал в ходе самообучения ABAPу :mrgreen:).


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB