Текущее время: Чт, апр 18 2024, 03:53

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


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


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Вт, сен 07 2010, 21:02 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Parazit написал:
Поскольку ООП оправдано при написании довольно больших собственных разработок, возникает сомнение в правильности этих проектных решений вообще. Таки при внедрении R/3 надо и внедрять R/3 (простите за тафтологию), а не кустарщину, которую потом неизвестно кто и как будет поддерживать.

Вот! Именно поэтому у меня и вызвала удивление такая буквально одержимость объектами. Если уж дошло до создания своих классов, то невольно задумываешься, а зачем, собственно, это делать в R/3...

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Вт, сен 07 2010, 21:52 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Jelena написала:
Parazit написал:
Поскольку ООП оправдано при написании довольно больших собственных разработок, возникает сомнение в правильности этих проектных решений вообще. Таки при внедрении R/3 надо и внедрять R/3 (простите за тафтологию), а не кустарщину, которую потом неизвестно кто и как будет поддерживать.

Вот! Именно поэтому у меня и вызвала удивление такая буквально одержимость объектами. Если уж дошло до создания своих классов, то невольно задумываешься, а зачем, собственно, это делать в R/3...

Создание собственных классов наследованием от стандартных работает как расширение функциональности. Посмотрите, например, в сторону POWL.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Ср, сен 08 2010, 09:12 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 25 2009, 10:56
Сообщения: 14
Здесь немного про попытку применения OO в SAP:
http://sapboard.ru/forum/viewtopic.php?f=18&t=1462&start=15


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Ср, сен 08 2010, 09:59 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Цитата:
- А где вы их применяете?

Например, мне нужно было распарсить XSD-шаблон, а как структуру документа хранить в программе? Конечно, объектно. Получилась красивая объектная обертка. Был класс "узел xml", "узел-таблица", "строка таблицы" итд. Наследовались они от абстрактного базового класса, что-то переопределялось, что-то добавлялось. В абстр. классе, например, можно определить все атрибуты, которые есть у всех объектов (имя xml-тэга, например).

Также была задачка построить иерархический отчет. Узлы и Листочки отчета - инстанции классов. Листы умеют выбирать нужные данные, а узлы должны считать суммы всех подчиненных узлов и листов. В итоге подсчет всего запускается одним лишь вызовом:
Code:
root->calculate( ).
- рекурсивный обход иерархии. Узлы и листы наследуются от абстрактного класса, в котором есть метод calculate. В каждом классе метод соответсвенно переопределяется. Очень удобно.

Это всего лишь два "свежих" случая из моей практики, было больше...

Не спорю, что это всё можно было сделать и с помощью функционального подхода, но это неудобно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Ср, сен 08 2010, 14:16 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 02 2006, 18:56
Сообщения: 78
В отчетах свои объекты редки (т.к. отчеты в основной массе просты)(при этом не считаю наследование от cl_gui_alv_grid за свой объект :))
Но вот в разработках, подразумевающих ввод данных, проверки и т.д. страюсь использовать объекты
Так же своими объектами хорошо обернуть некоторую стандартную функциональность, чтоб упростить с ней работу, например soi для excel обернули в свой класс, стало намного удобнее :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Ср, сен 15 2010, 13:29 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
Участвовал в разработке... можно назвать ее маленьким Z-модулем.
Приняли волевое решение писать на классах, что в итоге и сделали.
В целом понравилось, например такие удобные вещи (уже упоминали):
Code:
IF lo_proj->is_approved( ) = abap_true.
...
ENDIF.

или такая работа с глобальными константами
Code:
IF lo_proj->get_type( ) = zcl_document=>e_types-project.
...
ENDIF.


Так что в целом новый подход понравился. Хотя несколько небольших вспомогательных программок писал без классов (только используя уже имеющиеся в системе).

А вообще много знаний по ООП понадобилось, когда писал в BADI для модуля MM (заказ на поставку). Помню, что поначалу реально не хватало этих знаний, из-за чего многие вещи не получались или отнимали много времени. Так что знание ООП уже не только пальцы, но и насущная необходимость.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Ср, ноя 09 2016, 11:52 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 17 2009, 00:53
Сообщения: 166
Откуда: Екатеринбург
Пол: Мужской
Jelena написала:
Спасибо всем за ответы. Думаю в преимуществах ООП никто не сомневается, меня интересовала чисто практическая сторона дела. Просто на недавнем интервью товарищ спросил, какой у меня опыт с Objects и после того, как я упомянула ALV, BADI и прочая, он с гонором переспросил: "Ну а свои-то классы вы писали?". Своих классов я пока в SAP не писала, но это не потому, что я тупая или не умею - просто не было нужды. Как уже правильно заметили выше - если это делает программу более громоздкой, то зачем? В общем для меня такой вопрос был скорее похож на примитивную распальцовку. :?

Кстати, интересно, что авторы приведенной выше статьи про 8 причин начинают с того, что подозревают в косности почему-то именно программистов. Хотя, например, в нашей SAP системе, которой уже лет 20, мне с большим скрипом удалось всего несколько совершенно жутких отчетов хотя бы на ALV перевести. Пришлось делать прототип, собирать ключевых юзеров, терпеливо объяснять им преимущества и т.п. И то многие просто упираются ногами и руками - не дай бог как-то изменить их любимый отчет. (В принципе их тоже понять можно, конечно.)

как я вас понимаю!
примерно та же история.

_________________
Высшая степень уважения к клиенту - это разработать программу не так как он хочет, так как следует!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Ср, ноя 09 2016, 12:56 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 347
По опыту: зависит от круга задач, с которыми сталкиваешься на проекте. Если юзер-экзитовщина или срочное допиливание чужого неООП-кода - ООП применять нет смысла (разве что из "любви к искусству"). А при создании общих библиотек или при больших Z-разработках - очень даже удобно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Чт, ноя 10 2016, 03:55 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 179
Классы в ABAP'е удобны хотя бы тем, что у них статическая проверка типов, а у ФМников - динамическая (т.е. типы проверяются только в момент запуска).
Начиная с ABAP 7.4 очень удобно объявлять выходные переменные прямо при вызове метода (inline declaration), чего с ФМом сделать никак нельзя.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Где вы реально применяете ABAP Objects?
СообщениеДобавлено: Чт, ноя 10 2016, 11:14 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Parazit написал:
Требования работодателей к знанию ОО вполне объяснимы, т.к. немалую долю разработчика составляют изучение, отладка и внедрение расширений в стандартный код, а он всё больше и больше на объектах.
Об общих преимуществах ОО программрования писать не буду, это в инете найти можно.

Я использовал ОО для преобразования собственной функциональной группы в объекты, т.к. необходимо было разделить значения глобальных переменных в пределах одной программы.

Дополню, т.к. с тех пор "много воды утекло".
Последние лет 5 активно использую классы, причём глобальные. Опять же, об общих преимуществах ООП писать не буду, а затрону лишь специфику его использования в SAP.

Очень удобны глобальные классы при коллективной разработке большого проекта:
- Хотя бы уже тем, что можно редактировать отдельные методы одного класса, не блокируя друг друга. Не раз сталкивался с проблемой блокирования какого-нибудь инклуда при необходимости изменения подпрограммы, даже в рамках поддержки, а не больших разработок.
- Интерфейс ведения глобального класса улучшает навигацию по его отдельным частям и позволяет создавать их краткие описания и документацию, что полезно само по себе (для себя любимого) и очень выручает в создании документации описания разработок при сдаче проекта, особенно если этот процесс автоматизировать.
- Упрощает использование глобального пространства имён, сокращает риски их пересечения, особенно при повторном использовании ABAP-кода на разных проектах. Например, вы вынуждены придумывать уникальные имена ФМ-ов, не смотря на то, что они в разных функциональных группах. С методами такой проблемы нет, достаточно один раз придумать имя глобального класса. По этой же причине часто можно обойтись публичными типами и атрибутами вместо словаря.
- Параметры методов, в отличие от параметров подпрограмм, могут быть необязательными, иметь значения по умолчанию, более чётко разделены по виду доступа (Importing, Exporting, Changing, Returning). Это заметно облегчает доработку методов, без необходимости изменения всех существующих вызовов. В общем имеют все преимущества ФМ-ов, но исключают их недостатки.
- Довольно просто преобразуются в локальные классы, что позволяет компоновать легко (Copy/Past) переносимые утилиты. Например, моя утилита ZWWW_MIGRATE из разработки ZWWW версии 3.05 теперь полностью перенесена на классы и содержит их несколько десятков, что позволяет мне иметь все описанные преимущества разработки. Однако, для использования на других системах, я компоную её (автоматически) в один простой Report. Думаю, этот приём также можно использовать для создания демо-версий программ, ограничивая их функциональность (недокладывая некоторые объекты), а также не замусоривая систему потенциального клиента кучей ненужных (пока) объектов.
- Позволяет создавать не только повторно используемые функции (используя наследование), но и повторно используемые программы (с экранами, экранной логикой и т.д.). Что позволяет дорабатывать свои универсальные решения без их ломки под специфику конкретного клиента.

Например, так выглядит отчёт:
Code:
REPORT  ZITC_OBSALD NO STANDARD PAGE HEADING.

Data: Report_Object type ref to ZCLITC_OBSALD.

include ZITC_OBSALD_SELSCR.

include YITC_REPORT_INCLUDE.


А так выглядит наследованный отчёт, дополняющий и переопределяющий функциональность предыдущего:
Code:
REPORT  ZITC_OBSALD_PARAMS.

Data: Report_Object type ref to ZCLITC_OBSALD_PARAMS.

include ZITC_OBSALD_PARAMS_SELSCR.
include ZITC_OBSALD_SELSCR.

include YITC_REPORT_INCLUDE.


p.s.
Если ещё чего вспомню, допишу позже...

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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