При проектировании объектно-ориентированных систем (классов), важно соблюдать основополагающие принципы проектирования. К ним можно отнести список правил, составленных Робертом Мартином, которые известны под именем SOLID. SOLID это аббревиатура, где каждая из букв обозначает отдельное правило:

  • S — (Single responsibility principle — SRP), принцип единственной обязанности. На каждый класс должна быть возложена единственная обязанность.
  • O – (Open/closed principle — OCP), принцип открытости-закрытости. Программные сущности должны быть открыты для расширения, но закрыты для изменения.
  • L – (Liskov substitution principle — LSP), принцип подстановки Барбары Лисков. Объекты в программе могут быть заменены их наследниками без изменения свойств программы.
  • I – (Interface segregation principle — ISP), принцип разделения интерфейса. Много специализированных интерфейсов лучше, чем один универсальный.
  • D – (Dependency inversion principle — DIP), принцип инверсии зависимостей. Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Далее мы рассмотрим каждый из принципов подробнее.Читать далее

1405186568_118806С увеличением объема информации необходимой для выполнения своих профессиональных обязанностей, перед каждым IT специалистом, а в особенности программистами, встаёт задача её быстрого поиска, для чего информация должна быть хорошо структурирована, актуальна, а поиск по ней должен выдавать релевантные результаты.

В данной статье будет рассмотрен один из способов построения простейшей базы знаний, с помощью продукта Help & Manual (H&M).

Читать далее

В стандартном ABAP редакторе существует функция автоматического добавления скобок, кавычек:

autosc

Данная функция не обрабатывает угловые кавычки (<>), при желании можно добавить эту возможность изменив в файлах abap_spec.xml и abap4_spec.xml значение <OpenClose> на следующее:

Файлы расположены по адресу: Users\<username>\AppData\Roaming\SAP\SAP GUI\ABAP Editor

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

К сожалению, в ABAP Object Services нет встроенного механизма поддержки блокировок, что может привести к ошибкам и противоречивости данных при одновременном изменении одинаковых объектов.

Далее в ходе статьи мы разберем один из способов интеграции с системой блокировок.

Читать далее

Начиная с SAP_ABA 702 в отладчике появился инструмент позволяющий быстро включать трассировку (SE30/ST05):

Добавляем инструмент:

add_trace_tool

Ставим точку перед вызовом SQL (В моем случае получение хранимого объекта):

add_bp

Активируем SQL Trace в инструменте, двойным щелчком мыши:

trace_activate

Проходим вызов, деактивируем trace, получаем результат:

trace_view

Продолжаем знакомство с ABAP Object Services, в этой части будут рассмотрены темы: менеджеры инстанций и постоянства,  пользовательские проверки при манипуляции с атрибутами хранимых классов, преобразование объектов в структуры и таблицы, загрузка связанных объектов без использования ссылочных атрибутов.

Читать далее

1401801143_033

Ранее было показано, каким образом можно загрузить хранимый объект из БД относительно ключевых полей и даже как массово их инициализировать (метод GET_PERSISTENT_BY_KEY_TAB). Альтернативой подобному методу служит — Query Service. QS — Инструмент позволяющий Вам делать поиск и загрузку хранимых объектов, относительно логических выражений (условий). Кроме фильтров относительно условий, QS позволяет задать параметры сортировки. Используя QS, вам не надо будет выбирать отдельные ключевые поля, т.о. для массовой инициализации группы объектов, система выполнит только один SQL запрос.

Читать далее

databaseИнструмент обработки транзакций позволяет разработчику контролировать процессы записи изменений из хранимых объектах в базу данных.

Transaction Service основан на классической схеме обновления данных, с небольшими дополнениями. Используя TS нет необходимости ручного вызова модулей обновлений. Кроме того, TS вводит такое понятие как ООП транзакция.Читать далее