Меню

EEWB - Easy Enhancement Workbench (Быстрое добавление данных на подэкраны)

|

В статье изложена возможность быстрого добавления пользовательских полей данных на подэкраны стандартных транзакций используя механизм EEWB - Easy Enhancement Workbench. В настоящее время, количество возможных транзакций, для которых можно использовать данный механизм пока невелико, но со временем, возможно, транзакций поддерживающих механизм EEWB, станет больше.

В статье изложена возможность быстрого добавления пользовательских полей данных на подэкраны стандартных транзакций используя механизм EEWB - Easy Enhancement Workbench. В настоящее время, количество возможных транзакций, для которых можно использовать данный механизм пока невелико, но со временем, возможно, транзакций поддерживающих механизм EEWB, станет больше.

Категории: функциональный модуль системы, SAP CRM, ABAP Расширения экранов пользователей

В последнее время SAP все ближе и ближе подходит к упрощению расширения системы: экзиты, BADI, энхансмены, в общем, с каждым днем, все проще и проще становится «завалить» систему и все меньше опыта нужно для этого иметь. Последним стойким бастионом оставались экраны стандартных программ, то есть их, конечно, можно было расширять путем добавления новых визуальных элементов, но для этого нужно было, скажем, довольно неплохо знать как сам ABAP, так и методы работы с экранами в SAP. Обычно в системе вам предоставляется отдельный подэкран, куда пользователь может разместить свои визуальные элементы, а дальше... дальше довольно много ABAP-а, чтобы эти данные сохранялись и читались в стандартной транзакции. Однако, кажется и в этой области доработки своих экранов, скоро можно будет ничего не знать, а элементы будут добавляться за 5-10 минут.

Например, ниже на Рис.1 в транзакции BP – ведения бизнес-партнеров добавлены новые поля. Эти поля можно добавить разными способами, но я их вставил без какого либо написания кода. Значения этих полей корректно сохраняются в базе данных и читаются оттуда, вся процедура заняла минут 10, ну и потом, конечно, оно еще компилировалось минут 20-25. Руками же, на это все потребовалось бы, наверное, потратить день, а то и пару, начиная с поиска требуемых экзитов, экранов и т.д.

Рис. 1 BP

Самое интересное, что можно вставлять не только поля, как на Рис.1, но и экранные таблицы, значения которых тоже корректно сохраняются в базе данных, как, например, немного расширенный таблицей предыдущий экран Рис.2. При этом табличные данные могут быть как зависящими от времени, так и нет, и система автоматически будет вести такие данные.

Рис. 2 BP

Как видим из примера, рисуется все красиво, а теперь перейдем к тому, как все это можно реализовать. В принципе все очень просто. Для ведения своих полей создана отдельная транзакция EEWB — Easy enhancement Workbench. Таки действительно просто и быстро, тут не соврали. В общем запускаем транзакцию и попадаем в редактор расширений, Рис.3.

Рис. 3 EEWB

Слева находится список проектов, которые созданы вами. Если проектов еще нет, то дерево будет содержать только корневую папку. Что примечательно, можно добавлять поля как отдельными проектам, так и в рамках одного проекта, при этом система корректно будет выполнять интеграцию всех проектов в рамках транзакции. В общем, выбираем «создать новый проект». Для этого или жмем кнопку создания на панели инструментов или, стоя на дереве проектов, пользуемся левой кнопкой из контекстного меню: «Create project Alt+P». Если получим сообщение вида: User's logical system could not be determined (№ сообщения OXT_MISC102), то это значит, что при определении мандантов системы не задали имя логической системы. Вообще-то, для систем, мигрировавших из старых версий, или же если не используется ALE интеграция с другими системами, возможна ситуация: логическое имя не прописано. Определение логических имен для мандантов ведется в транзакции SCC4, например, как на Рис.4. Самому выполнять такую операцию без привлечения администраторов системы я бы не советовал. Это их, так сказать, область интересов, а также, если система рабочая, то после задания логического имени нужно обязательно выполнить адаптацию данных для уже существующих документов и объектов системы.

Рис. 4 SCC4

После ввода имени логической системы, можно вернуться к определению проекта. Сначала система запросит у вас данные проекта, Рис.5.

Рис. 5 EEWB-CPRJ

Имя проекта произвольное, но, желательно, со смыслом, затем - краткий текст описания. Далее нужно будет указать имя пакета разработки, в рамках которого будет выполняться генерация программ при реализации расширения. Если пакета нет, его можно создать в транзакции SE80, в параллельной сессии. Далее задается первая буква при определении расширений, обычно она или Z или Y. После чего сохраняем определение проекта. После этого система запросит у вас (два запроса), куда будут записываться создаваемые вами расширения, Рис.6. Если на предыдущем шаге вы создавали новый проект, то, как минимум, запрос на разработку уже вас уже есть. Для выбора запроса можно нажать кнопку с карандашом и там - или создать новый запрос, или выбрать уже существующий.

Рис. 6 EEWB-REQ

После задания запросов сохраняем данные, Рис.7. Система проверяет, чтобы запросы были не закрыты. Если все нормально, то статус запросов будет = Valid.

Рис. 7 EEWB-REQ

Теперь проект считается определенным, и можно приступать к созданию собственно элементов экрана, Рис.8. Все данные изменений в ходе работы с проектом будут автоматически записываться на закладке протокола.

Рис. 8 EEWB-PRJ

Все пользовательские элементы на экране являются расширениями стандарта и работают через механизм энхансментов. Для создания расширений или нажимаем кнопку на панели инструментов, или через контекстное меню: «Create Extension Alt+E». В появившемся окне нужно заполнить 4 поля, Рис.9.

Рис. 9 EEWB-EXT

Имя проекта - тут только ваша фантазия + желательно смысловая нагрузка, краткое описание, как обычно, - что-то более внятное, чем имя расширения. Далее нужно выбрать объект расширения EEW Bus. Objekt, это делается путем выбора допустимых объектов из списка. Стандартно в системе, как я понимаю, всегда есть 3 объекта по расширению бизнес-партнеров. Однако можно импортировать другие объекты, например, расширения сбытовых заказов и т.д., об этом будет чуть ниже. После выбора объекта, выбираем тип расширения. Возможны два варианта: расширение, которые будет состоять из полей экрана, или расширение, которое будет являться экранной таблицей. Собственно говоря: что за что отвечает, видно из Рис.10.

Рис. 10 BP-2

Для начала сделаем расширение, которое включает в себя пользовательские поля, а затем уже займемся экранной таблицей. В принципе, что в первом, что во втором случае никаких особых сложностей нет, все делается быстрее, чем создается данное описание. Далее жмете сохранение и, скорее всего, получите ошибку как на Рис.11

Рис. 11 EEWB-ERR

Это первый «баг» работы с данной транзакцией, на который многие наталкиваются и дальше не идут, так как поиск по нотам ничего не дает, а что нужно делать не очень ясно. Однако спасибо «Предводителю», проблема решается очень просто. Нужно зайти в таблицу TBZ1 и там для объекта расширения BUPA, который мы указали при создании расширения, установить флаг в поле XDCFLAG, Рис.12.

Рис. 12 TBZ1-BUPA

Уж как там «Предводитель» нашел это - ясно, отладка в руки и успех в кармане, но после задания в этом поле значения «X», все начинает работать. Опять же главное - не то что нашел, а то, что установил: данная операция безопасна.

Выбор данных, как уже говорил, осуществляем по имени объекта заданного в поле EEW Bus. Objekt, Рис.13. После внесения изменений в таблицу (способов как это сделать есть много: начиная от перехода в отладку при просмотре записи данных, до написания небольшой программы, которая обновляет это поле) возвращаемся в транзакцию EEWB и, если вы были в ней, то нужно выйти и зайти из транзакции, чтобы внесенные в таблицу изменения стали активными.

Рис. 13 TBZ1-BUPA-SEL

Теперь если вы зашли в транзакцию EEWB по новой, то у вас уже будет созданный проект и будет созданное расширение, Рис.14.

Рис. 14 EEWB-N0

Становимся на точку расширения в дереве, Рис.15, и из контекстного меню, выбрав кнопку на панели инструментов, запускаем помощника, который быстро добавит необходимые поля на экран пользовательской закладки ведения данных бизнес-партнера.

Рис. 15 EEWB-WIZ

По шагам выполняем все, что у нас просит помощник, первый шаг как обычно, Рис.16 показывает, что собственно мы запустили, само собой, мы это знаем, поэтому идем дальше.

Рис. 16 EEWB-WIZ-1

На следующем экране вводим название для блока, в котором будут выведены наши поля, Рис.17. Это не имя переменной, это - имя окаймляющего блока, который выделен на Рис.18. Пишем как обычно что-то внятное, дабы потом не забыть, что же хотим, чтобы пользователь вводил в данные поля.

Рис. 17 EEWB-WIZ-2
Рис. 18 EEWB-WIZ-2-1

На третьем шаге, наконец, определяем дополнительные поля, которые назначаем для заполнения пользователем, Рис.19. Определение полей довольно простое. Задаете

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти

Обсуждения Количество комментариев4

Комментарий от  

Нурбек Кулмурзаев

  |  10 апреля 2013, 07:58

Добрый день!
 
Очень полезная информация и очень хороший инструмент.
 
Так же возникли пару вопросов:
1. При переносе запроса в тестовую систему, не переноситься сам "Проект" в транзакции eewb, в таком случае как настраивать данные по справочникам (если настраивать справочники в DEV, при переносе выдает ошибку);
2. Как можно изменить тип данных по доменам/элементам данных, созданные с помощью EEWB.
Например, при создании полей (с помощью EEWB) инструмент предлагает "тип данных" только: CHAR, DATS and NUMC.
Для использование в расчетах, выщепредложенные тип данных использовать не получется, т.к. "не цифровые".
P.s.прямое изменение в SE11 не помогло, т.к. при генераций EEWB изначальные настройки возвращаются.
3. При создании таблицы предусмотрено только одно "Ключевое поле", как можно расширить если есть необходимость.
 
Спасибо!

Комментарий от  

Олег Точенюк

  |  12 апреля 2013, 23:33

Добрый день!
 
Очень полезная информация и очень хороший инструмент.
 
Так же возникли пару вопросов:
1. При переносе запроса в тестовую систему, не переноситься сам "Проект" в транзакции eewb, в таком случае как настраивать данные по справочникам (если настраивать справочники в DEV, при переносе выдает ошибку);
2. Как можно изменить тип данных по доменам/элементам данных, созданные с помощью EEWB.
Например, при создании полей (с помощью EEWB) инструмент предлагает "тип данных" только: CHAR, DATS and NUMC.
Для использование в расчетах, выщепредложенные тип данных использовать не получется, т.к. "не цифровые".
P.s.прямое изменение в SE11 не помогло, т.к. при генераций EEWB изначальные настройки возвращаются.
3. При создании таблицы предусмотрено только одно "Ключевое поле", как можно расширить если есть необходимость.
 
Спасибо!

Инструмент неплох бы был, но кажется как многое в системе, вышел, а потом про него забыли и забили, так что не очень актуален. Опять же в чистой ERP, есть всего три объекта, которые поддерживаются этой транзакцией, остальное только при наличии CRM.

Комментарий от  

Андрей Коновалов

  |  04 марта 2014, 15:47

Здравствуйте, Олег.
 
У меня к Вам есть один небольшой вопрос.
Мне нужно добавить три поля в ГФ "CRM_SERVICE_ROB_UI" для экрана "7110".
Скажите, пожалуйста, можно ли используя данную технологию сделать это?
Большое спасибо.

Комментарий от  

Олег Точенюк

  |  05 марта 2014, 00:20

Здравствуйте, Олег.
 
У меня к Вам есть один небольшой вопрос.
Мне нужно добавить три поля в ГФ "CRM_SERVICE_ROB_UI" для экрана "7110".
Скажите, пожалуйста, можно ли используя данную технологию сделать это?
Большое спасибо.

Честно не знаю, я с CRM не работал, одно могу сказать, что уже года как два точно, данный инструмент получил какое-то развитие и в CRM используется уже другое для ведения пользовательских данных. Как мне сказал в свое время гуру CRM-щик -> EEWB это уже вчерашний день и предложил показать его супер замену, но я как-то себя в области CRM не очень вижу, поэтому отказался :-)