Loading



+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средства » SMOD/CMOD - Расширения (Модератор: Dmitriy)Тема:
|- Enhancement Spot (Практический пример создания)



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

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

Оффлайн Uukrul

  • SAP R/3 4.6C
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 2.151
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #25 : Июль 30, 2010, 04:28:57 pm »
В общем похоже в свой программе надо предусмотреть сначала создание точек расширений, а потом уже из использовать.. ну мне пока так показалось (ну это что касается точек Explicit).


Оффлайн Uukrul

  • SAP R/3 4.6C
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 2.151
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #27 : Июль 30, 2010, 04:37:15 pm »
Похоже, это как-то связано с пакетами.
https://weblogs.sdn.sap.com/pub/wlg/3056
https://weblogs.sdn.sap.com/pub/wlg/3336
https://weblogs.sdn.sap.com/pub/wlg/3430
https://weblogs.sdn.sap.com/pub/wlg/3506
https://weblogs.sdn.sap.com/pub/wlg/3595
Да нет, я тут поковырял короче в свой программе создать вот именно эти Explicit точки не вопрос, в режиме редактирования стоим на строке кода и правой кнопкой мыши по меню: Расширения - Создать опцию и получаем что-то типа
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 точка должна быть явно определена в коде в требуемом месте, т.е. из моего примера
PERFORM call_1 CHANGING my_structure.
--- вставил точку расширения изменяющую my_structure ---
PERFROM call_2 USING my_structure.
PERFROM call_3.
чтобы вставить точку расширения между call_1 и call_2, в тексте должно было бы быть что-то типа так написано:
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
  • *
  • Сообщений: 62
  • Reputation Power: 0
  • A. has no influence.
Re: Enhancement Spot (Практический пример создания)
« Ответ #28 : Июль 30, 2010, 04:50:29 pm »
Похоже, что так оно и есть - если разработчик не предусмотрел, то и не будет. Спасибо за разъяснения.

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

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

Оффлайн Skif

  • Jr. Member
  • **
  • Сообщений: 530
  • Reputation Power: 0
  • Skif has no influence.
Re: Enhancement Spot (Практический пример создания)
« Ответ #29 : Август 13, 2010, 12:17:33 pm »
жаль что не даёт сделать IF в начальном enh, потом старое тело, endif в конечном enh, новое тело ;((

Оффлайн A.

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

Оффлайн Uukrul

  • SAP R/3 4.6C
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 2.151
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #31 : Август 24, 2010, 11:10:53 am »
После переноса в целевую систему приходится активировать объекты, в которые произведено внедрение.
Как-то странно это.. потому что эта технология используется в BADI и транспорты без проблем носят такие объекты, я переносил как сами BADI так и Enhancement Spot-ы и дополнительной активации делать в продуктиве не требовалось. Такая проблема у вас на одной системе или вы пробовали это делать на разных системах?

Оффлайн A.

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

Оффлайн Uukrul

  • SAP R/3 4.6C
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 2.151
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #33 : Август 24, 2010, 12:46:27 pm »
Трехсистемный ландшафт. После переноса и в тест, и в продуктив надо активировать.
Ладно подождем еще кого-то, потому как по мне это не совсем нормальное поведение при транспорте расширений или у меня сейчас временная потеря памяти  ???

Оффлайн №1

  • Administrator
  • Jr. Member
  • *****
  • Сообщений: 511
  • Reputation Power: 1
  • №1 has no influence.
  • Пол: Мужской
  • Самая большая ложь - это неверно понятая правда.
Re: Enhancement Spot (Практический пример создания)
« Ответ #34 : Август 24, 2010, 01:38:27 pm »
Цитата: Uukrul  link=topic=546.msg7554#msg7554 date=1282643187
Ладно подождем еще кого-то, потому как по мне это не совсем нормальное поведение при транспорте расширений или у меня сейчас временная потеря памяти  ???
Я как участник процесса переноса ни разу с таким "капризом" системы не сталкивался

Оффлайн Uukrul

  • SAP R/3 4.6C
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 2.151
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
    • Sapforum.BIZ
Enhancement Spot (Практический пример создания)
« Ответ #35 : Сентябрь 25, 2010, 06:04:06 pm »
В первую тему сообщения добавлен файл Enhancement Spot 2.pdf, с более расширенным описанием работы с точками расширений на основании последних замечаний и примеров.

Оффлайн insaf121

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

Оффлайн Uukrul

  • SAP R/3 4.6C
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 2.151
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
    • Sapforum.BIZ
Re: Enhancement Spot (Практический пример создания)
« Ответ #37 : Июль 25, 2011, 11:48:17 am »
Я тоже не сталкивался с тем что после переноса нужно активировать расширения. А никто не знает способ полегче для того чтобы посмотреть все эти енкхасменты для какой-нибудь задачи?
К сожалению нет... хотя как вариант если все разработки выполнялись одним пакетом, то просмотрев пакет, можно получить все активированные в нем расширения.

Оффлайн A.

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


 


Facebook Comments