Классический Бади и Нью-Бади

Бывший участник

Классический Бади и Нью-Бади ...

Привет всем,

У меня есть вопрос относительно новой концепции Бади с использованием точек расширения.

С классическим Бади однажды мы создаем реализацию будет вызывать нашу реализацию, когда был назван класс BADI.

Но с новой концепцией мы должны явно назвать Бади, который мы создали не так ли? не значит ли это модифицирования стандартный код (если нет раздела ehancement или точка)?

Может кто-нибудь сказать мне, есть ли другой способ вызвать нашу реализацию с помощью GET о BADI и ВЫЗОВ Бади без изменения стандартного кода (путем создания явного усиления).

Ура,

D.

 

2 ответов

 
 
  • автора фото профиля
    Бывший участник
    2007 в 04:52 27 апреля
    1

    Здравствуй,

    Классические и новые БАДИСЫ отличаются по ряду признаков, имеющие важное значение для миграции:

    1. Объект BAdI

    а. С классической БАДИС, BAdI объект создается путем вызова метода фабрики, и ссылки с помощью ссылочной переменной типа интерфейса Бади.

    б. С новым БАДИСОМ, BAdI объект создается с помощью GET BADIas ABAP заявления ручки для вызовов методов Бади и ссылок через ссылочную переменный типа BAdI. объект А BAdI является экземпляром внутреннего BaDi класса, которые в противном случае невидимы наружу.

    2. Передача значений сравнения для фильтра

    а. С классическим Badis, значение фильтра, сохраняется в структуре и передается с вызовом методов BaDi.

    б. С новым БАДИСОМ, значение сравнения для фильтров используется для поиска реализации передается, когда объект BAdI создаются с GET BADIstatement.

    Там нет никакого способа перенастройки вызова методы фабрики один к одному в заявление ABAP, потому что GET BADI может также возвращать существующий объект Бади, который не является возможным с заводским способом.

    3. Вызывать методы Бади

    Передача значений сравнения для фильтра

    а. Классический BAdI можно назвать только один раз и позиция вызовов регистрируется централизованно.

    б. С новым БАДИСОМ, несколько вызовов возможны и позиция вызовов не регистрируются централизованно.

    По указанным выше причинам, автоматическая миграция вызов не представляется возможным.

    Посмотрите на ссылку ниже.

    http://help.sap.com/saphelp_nw2004s/helpdata/en/ee/6f3b42ea85b26be10000000a155106/content.htm

    http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/4d3e42fc94aa04e10000000a1550b0/content.htm

    Я надеюсь, что это помогает.

    С уважением,

    Reshma

    4 Комментарии
      •  
          Майкл Экер    Бывший член

        Здравствуй,

        Если BAdI не перенесенный BAdI, но новый BAdI, он не может быть вызываемым через

        CL_EXITHANDLER. Это необходимо вызвать с помощью команды ABAP G Бади и ЗВ Бади.

        Вызов CL_EXITHANDLER приведет к ошибке. Если это кодирование является доставленных писем от SAP и снова BAdI это не переносимое BADI вы должны создать сообщение проблемы.

        regrads

        Майкл

     
     
  • автора фото профиля
    Бывший участник
    2007 в 02:57 12 октября
    0

    Привет Dhanushka,

    У меня такая же проблема, как у вас. Но я до сих пор не понимаю, как ваша проблема решается с помощью ответов, приведенных выше. Можете ли вы дать более конкретный ответ?

    где писать команды G Бади и ВЫЗОВ Бади, если нет Enhancement пятна? Является ли это исправить, чтобы сделать это в неявном улучшении?

рекомендация

отwww.cnblogs.com/rainysblog/p/12057402.html
рекомендация