В документации к системе версии 7.30 (sy-saprl) было обнаружено интересное нововведение, возможность обработки RFC исключений в объектном представлении:

In the interface of a remote enabled function module, you can either specify class-based exceptions (as of release 7.1, EhP1) or define classic exceptions, that is, non class-based exceptions.

Все классические исключения согласно документации транслируются в объектное исключение cx_classic_exception. Читать далее

Многие из Вас видели в стандартных транзакциях кнопки расположенные в заголовке экрана:

1

Для того чтобы иметь возможность располагать GUI элементы в заголовке есть специальный контейнер называется он cl_gui_gos_container. Пример работы с ним далее.

Читать далее

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

Читать далее

Обычно подэкраны вставляются на экране выбора через создание вкладок по следующему принципу:

selection_tabs

Но что делать, если нам нужен только один подэкран и без рамки табуляции? Для этого можно воспользоваться следующим «хаком»:

Читать далее

Когда внутри цикла по таблице вы попытаетесь передать её с передачей по значению для изменения, сработает неявный выход из цикла после вызова процедуры:

Результат: 1, 1, 2, 3.

Из документации:

The replacement of the entire table body in a LOOP across the same table causes the loop to be exited at the next loop pass in accordance with the rules described above.

office-configuration-tool

Очень часто в процессе разработки необходимо предоставить гибкость программного решения, в зависимости от каких-либо требований, определенными теми или иными настройками. Подобная гибкость в SAP системах традиционно решается путём определения пользовательских настроек в транзакции SPRO.  В статье будет рассмотрен способ определения своих настроек на базе ведения многоуровневого кластера ракурсов и создание ссылки на него в SPRO.

Читать далее

Dzheki-Chan-memПо своему роду деятельности часто приходится разбираться с чужим ABAP кодом, в котором постоянно встречаются одни и те же проблемы, вызывающие «головную боль» при сопровождении. В данной статье будут рассмотрены основные из них.

UPDATE. На сайт добавлен раздел с лучшими практиками.

Читать далее

При проектировании объектно-ориентированных систем (классов), важно соблюдать основополагающие принципы проектирования. К ним можно отнести список правил, составленных Робертом Мартином, которые известны под именем 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), принцип инверсии зависимостей. Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

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