Автор Тема: Enhancement Spot (Практический пример создания)  (Прочитано 81123 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #25 : Июль 30, 2010, 04:28:57 pm »
В общем похоже в свой программе надо предусмотреть сначала создание точек расширений, а потом уже из использовать.. ну мне пока так показалось (ну это что касается точек Explicit).

Оффлайн A.

  • Newbie
  • *
  • Сообщений: 110
  • Репутация: +1/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #26 : Июль 30, 2010, 04:30:07 pm »
Похоже, это как-то связано с пакетами.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #27 : Июль 30, 2010, 04:37:15 pm »
You are not allowed to view links. Register or Login
Похоже, это как-то связано с пакетами.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Да нет, я тут поковырял короче в свой программе создать вот именно эти Explicit точки не вопрос, в режиме редактирования стоим на строке кода и правой кнопкой мыши по меню: Расширения - Создать опцию и получаем что-то типа
Код: You are not allowed to view links. Register or Login
ENHANCEMENT-SECTION Y_MY_AREA SPOTS Y_MY_SPOT_EX .
  IF dynbegin = 'X'.
  ENDIF.
END-ENHANCEMENT-SECTION.

Ну и еще по справке вот такая вот строка... т.е. это таки должно быть явное разрешение для вставки модификации, объявленное операторами ENHANCEMENT and ENDENHANCEMENT, т..е. если в программе нет явного разрешения на расширение кода в этом месте, то как бы и точки расширения нет, собственно говоря поэтому оно и называется "явная точка расширения", в отличии от не явной которая типа всегда есть в начале и конце подпрограммы или функционального модуля.
Цитировать
You can assign source code plug-ins, defined between ENHANCEMENT and ENDENHANCEMENT in an ABAP program, to an enhancement option defined using ENHANCEMENT-POINT. These source code plug-ins are inserted into the code unchanged if the switch is in the relevant position.
Так что как бы разница между Explicit и Implicit ну если уж совсем на пальцах, то Implicit - есть всегда и не требует каких либо шагов для ее объявления, а вот Explicit точка должна быть явно определена в коде в требуемом месте, т.е. из моего примера
Код: You are not allowed to view links. Register or Login
PERFORM call_1 CHANGING my_structure.
--- вставил точку расширения изменяющую my_structure ---
PERFROM call_2 USING my_structure.
PERFROM call_3.
чтобы вставить точку расширения между call_1 и call_2, в тексте должно было бы быть что-то типа так написано:
Код: You are not allowed to view links. Register or Login
PERFORM call_1 CHANGING my_structure.
*  Явная точка расширения
   ENHANCEMENT-POINT XXX_ME_EX SPOTS XXX_MY_SPOT_EX .
PERFROM call_2 USING my_structure.
PERFROM call_3.
только тогда можно было бы вставлять свой код в промежутке вызова.
« Последнее редактирование: Июль 30, 2010, 04:43:33 pm от Uukrul »

Оффлайн A.

  • Newbie
  • *
  • Сообщений: 110
  • Репутация: +1/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #28 : Июль 30, 2010, 04:50:29 pm »
Похоже, что так оно и есть - если разработчик не предусмотрел, то и не будет. Спасибо за разъяснения.

P.S.
А было бы неплохо :) Смотришь на код - ну не нравится тебе конструкция вида
Код: You are not allowed to view links. Register or Login
IF 1 = 0. MESSAGE E000(AA). ENDIF.и ты её бах! в enhancement-section заключил и переписал потом в enhancement-point как надо.

:)
« Последнее редактирование: Июль 30, 2010, 04:52:47 pm от A. »

Оффлайн Skif

  • Jr. Member
  • **
  • Сообщений: 726
  • Репутация: +10/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #29 : Август 13, 2010, 12:17:33 pm »
жаль что не даёт сделать IF в начальном enh, потом старое тело, endif в конечном enh, новое тело ;((

Оффлайн A.

  • Newbie
  • *
  • Сообщений: 110
  • Репутация: +1/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #30 : Август 24, 2010, 09:56:14 am »
После переноса в целевую систему приходится активировать объекты, в которые произведено внедрение. Иначе не отрабатывает. Даже в закрытом от изменений продуктиве это приходится проделывать.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #31 : Август 24, 2010, 11:10:53 am »
You are not allowed to view links. Register or Login
После переноса в целевую систему приходится активировать объекты, в которые произведено внедрение.
Как-то странно это.. потому что эта технология используется в BADI и транспорты без проблем носят такие объекты, я переносил как сами BADI так и Enhancement Spot-ы и дополнительной активации делать в продуктиве не требовалось. Такая проблема у вас на одной системе или вы пробовали это делать на разных системах?

Оффлайн A.

  • Newbie
  • *
  • Сообщений: 110
  • Репутация: +1/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #32 : Август 24, 2010, 11:14:10 am »
Трехсистемный ландшафт. После переноса и в тест, и в продуктив надо активировать. При этом в разработке все активно. Активировать - нажимать на кнопку со спичкой.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #33 : Август 24, 2010, 12:46:27 pm »
You are not allowed to view links. Register or Login
Трехсистемный ландшафт. После переноса и в тест, и в продуктив надо активировать.
Ладно подождем еще кого-то, потому как по мне это не совсем нормальное поведение при транспорте расширений или у меня сейчас временная потеря памяти  ???

Оффлайн №1

  • Administrator
  • Jr. Member
  • *****
  • Сообщений: 636
  • Репутация: +23/-0
  • Пол: Мужской
  • Судьбы я вызов принимаю прямым пожатием руки
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #34 : Август 24, 2010, 01:38:27 pm »
Цитата: Uukrul  link=topic=546.msg7554#msg7554 date=1282643187
Ладно подождем еще кого-то, потому как по мне это не совсем нормальное поведение при транспорте расширений или у меня сейчас временная потеря памяти  ???
Я как участник процесса переноса ни разу с таким "капризом" системы не сталкивался
Мой You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Enhancement Spot (Практический пример создания)
« Ответ #35 : Сентябрь 25, 2010, 06:04:06 pm »
В первую тему сообщения добавлен файл Enhancement Spot 2.pdf, с более расширенным описанием работы с точками расширений на основании последних замечаний и примеров.

Оффлайн insaf121

  • Newbie
  • *
  • Сообщений: 25
  • Репутация: +1/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #36 : Июль 22, 2011, 10:00:30 am »
Я тоже не сталкивался с тем что после переноса нужно активировать расширения. А никто не знает способ полегче для того чтобы посмотреть все эти енкхасменты для какой-нибудь задачи?
Я сейчас работаю абапером и консалдинг который внедрял сап в нашу контору очень увлекался этим способом :( И под частую сразу не поймешь есть что то на стандарте или нет.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #37 : Июль 25, 2011, 11:48:17 am »
You are not allowed to view links. Register or Login
Я тоже не сталкивался с тем что после переноса нужно активировать расширения. А никто не знает способ полегче для того чтобы посмотреть все эти енкхасменты для какой-нибудь задачи?
К сожалению нет... хотя как вариант если все разработки выполнялись одним пакетом, то просмотрев пакет, можно получить все активированные в нем расширения.

Оффлайн A.

  • Newbie
  • *
  • Сообщений: 110
  • Репутация: +1/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Enhancement Spot (Практический пример создания)
« Ответ #38 : Ноябрь 01, 2011, 03:29:35 pm »
BAdI ORDER_COSTING_CK помечено только для использования в SAP. Есть ли пути все-таки задействовать её для себя? Ну кроме как подломать.
« Последнее редактирование: Ноябрь 01, 2011, 03:32:47 pm от A. »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #39 : Апрель 29, 2013, 11:25:00 am »
You are not allowed to view links. Register or Login
После переноса в целевую систему приходится активировать объекты, в которые произведено внедрение. Иначе не отрабатывает. Даже в закрытом от изменений продуктиве это приходится проделывать.
Вот тут тоже возникла ситуация когда после переноса объекты активны, но код не отрабатывает. Пришлось заходить в код, где были внедрения и выполнять активацию. Система: EHP4 FOR SAP ERP 6.0 / NW7.01


You are not allowed to view links. Register or Login
BAdI ORDER_COSTING_CK помечено только для использования в SAP. Есть ли пути все-таки задействовать её для себя? Ну кроме как подломать.
Нет... надо искать другое расширение. Ну и ломать, не советую, как говорили в одном фильме - хлопотно это. Я тут с одной такой системой сейчас общаюсь, там тоже, в свое время, решили, что классный абапер, это проще чем найти хорошего консультанта.
« Последнее редактирование: Апрель 29, 2013, 11:26:55 am от Uukrul »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #40 : Ноябрь 05, 2013, 12:39:27 pm »
Важное дополнение:

На небольшом эксурсе по поводу ENHANCEMENT, был задан вопрос чем отличаются декларации статических энхансментов от динамических энхансментов, ну т.е. если в коде вы встречаете следующие объявления:
 
Динамический: enhancement-point lmr1mfa0_01 spots es_saplmr1m.
 
или:
 
Статический: enhancement-point lmr1mfa0_01 spots es_saplmr1m static.
 
Само собой данные объявления применяются только при явных энхансментах - Explicit Enhancement Options.
 
Разница между этими объявлениями заключается в следующем.
 
Примечание: Я говорил, что техника Enhancement создана в первую очередь для возможности реализации бизнес-функций, а не для нас, простых пользователей системы.
 
Так вот бизнес-функция может находиться в состоянии "активно" или "в ожидании" (деактивирована), просмотреть статусы бизнес функций можно в транзакции SFW5. Бизнес-функции представляют собой собственно говоря набор Enhancement-тов, т.е. точек расширений, который могут быть декларированы в коде существующих транзакций системы как статические или динамические. Так вот если Enhancement объявлен как статический, но сама бизнес-функция не активирована, вы можете создать реализацию такого энхансмента и система будет обрабатывать написанный вами код. Если же энхансмент объявлен как динамический и бизнес-фукнция не активирована, то выполнять реализацию кода в таком энхансменте бесполезно, так как вызваться ваш код не будет, пока вы не активируете соответствующую бизнес-функцию в которую включен данный энхансмент.
 
PS: Это важный момент, если вы используете технику явных энхнасментов.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #41 : Апрель 16, 2014, 12:42:50 pm »
Заметил занятную вещь, когда вроде как и есть неявная точка расширения, но по факту использовать ее в принципе нельзя. И так как мы знаем, неявные точки расширения находятся на входе и выходе подпрограмм и функциональных модулей, а так же в конце записей структур. Есть такая себе структура:
Код: You are not allowed to view links. Register or Login
types : begin of stype_totals_header,
          BWKEY              LIKE      MBEW-BWKEY,
          WERKS              LIKE      MSEG-WERKS,
          matnr              like      mbew-matnr,
          CHARG              LIKE      MSEG-CHARG,
          sobkz              like      mslb-sobkz,

          NAME1              like      T001W-NAME1,
          maktx              like      makt-maktx,
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(86) Typ STYPE_TOTALS_HEADER, Выход                                                                                                                           end of stype_totals_header.
В ней как видим есть неявная точка расширения. Пробуем добавить свой код:
Цитировать
types : begin of stype_totals_header,
          BWKEY              LIKE      MBEW-BWKEY,
          WERKS              LIKE      MSEG-WERKS,
          matnr              like      mbew-matnr,
          CHARG              LIKE      MSEG-CHARG,
          sobkz              like      mslb-sobkz,

          NAME1              like      T001W-NAME1,
          maktx              like      makt-maktx,
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(86) Typ STYPE_TOTALS_HEADER, Выход                                                                                                                   S
*$*$-Start: 9999--------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZIMM_MB5B_REPORTS_01.    "inactive version
*
ENDENHANCEMENT.
*$*$-End:   9999--------------------------------------------------------------------------------$*$*
        end of stype_totals_header.
Получаем ошибки синтаксиса для выделенных красным строк. Что в принципе понятно, та как инструкция расширения после имени содержит точку, которая там не должна быть. В общем вот такая засада. Если бы структура была объявлена типа так:
Цитировать
]
types : begin of stype_totals_header,
          BWKEY              LIKE      MBEW-BWKEY,
          WERKS              LIKE      MSEG-WERKS,
          matnr              like      mbew-matnr,
          CHARG              LIKE      MSEG-CHARG,
          sobkz              like      mslb-sobkz,

          NAME1              like      T001W-NAME1,
          maktx              like      makt-maktx.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(86) Typ STYPE_TOTALS_HEADER, Выход                                                                                                                           types: end of stype_totals_header.
То проблем бы небыло ни у кого. Так что абаперы объявляете свои структуры правильно. , с ними не только вам работать возможно придется.

Sapforum.Biz

Re: Enhancement Spot (Практический пример создания)
« Ответ #41 : Апрель 16, 2014, 12:42:50 pm »