:::: МЕНЮ ::::

Не устанавливается точка прерывания в Eclipse

Если вы используете Eclipse или HANA Studio как IDE для ABAP, но при этом пользуетесь классическим отладчиком, то возможно вы сталкивались с проблемой когда /h и BREAK-POINT не запускают отладку, а при попытке установить точку прерывания возникает ошибка ED701: Невозможно установ. точки прерыв. из-за внеш. контекста (—> подр. текст). На английском звучит так: Breakpoints cannot be set because of external context (—> long text).

Читать дальше…

Передача INITIAL значений в ABAP Proxy

Недавно я настраивал интеграцию одного сервиса, где из SAP необходимо было передать набор полей, часть из которых были необязательны к заполнению. На стороне ABAP использовался класс, сгенерированный на основе WSDL поставщика. До определенного момента все работало хорошо. Проблемы начались, когда потребовалось передать в опциональном параметре значение по умолчанию (INITIAL). В этом случае сгенерированная полезная нагрузка не содержала нужных тегов в окончательном XML-документе. Из-за отсутствия тэгов, сервер возвращал ошибку передачи данных.

Читать дальше…

Извлечение уникальных значений из внутренней таблицы

Начиная с версии ABAP 7.4 появилась возможность быстро и эффективно извлечь уникальные значения определенного столбца из таблицы.

В общем случае код выглядит следующим образом

Ниже примеры извлечения таблицы и ренджа уникальных значений TADIR-DEVCLASS.

Читать дальше…

Транзакция на ракурс ведения

  1. Создаем транзакцию с начальным объектом «Транзакция с параметрами»
  2. В поле транзакция указываем SM30
  3. Устанавливаем флаг «Пропустить первый экран»
  4. Указываем параметры: VIEWNAME = «имя таблицы»; UPDATE = X
Читать дальше…

Программа для снятия скриншотов

В процессе работы часто приходится обмениваться скриншотами. Для информативности и акцентирования внимания на определенные области, на скриншотах наносятся текстовые комментарии, выделяются области, рисуются стрелки и т.п.

До недавнего времени, для снятия скриншотов я пользовался программой Lightshot, но по требованию ИБ от нее пришлось отказаться. После чего я решил написать свой Lightshot с открытым исходным кодом. Оставляю ссылки на исполняемый файл и на исходный код.

Читать дальше…

Сериализация данных и типов данных

Существует несколько способов сериализации и десериализации данных. Самые популярные из них:

  • В формате XML через CALL TRANSFORMATION
  • В формате JSON через класс /UI2/CL_JSON
  • В кластер данных через оператор EXPORT

В некоторых случаях, помимо самих данных, требуется сериализовать тип данных (например, если тип сериализуемых данных определяется в рантайме). Сделать это можно через класс CL_SALV_BS_DDIC.

Читать дальше…

Доступ к приватным атрибутам класса

В языке ABAP есть реализация паттерна «снимок» (Memento), цель которого сохранять и восстанавливать состояния объектов. Под состоянием понимается значения всех его атрибутов. Используя данный паттерн можно считать PROTECTED и PRIVATE атрибуты и изменять из значения в произвольном объекте.

Читать дальше…

Поиск объектов в ABAP-словаре

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

Пример поиска структуры с BKPF ключом
Читать дальше…



Архитектурные шаблоны в ABAP: MVC, MVP, MVVM, MVA

MVC (Model-View-Controller) — фундаментальный шаблон проектирования, целью которого является отделение логики интерфейса пользователя от логики программирования. MVC имеет множество вариантов реализации. Существуют модификации шаблона, самые известные из них MVP и MVVM.
Ниже описана концепция архитектурного шаблона MVC и его модификаций MVP и MVVM. Приведена концепция шаблона MVA, основанная на паттернах MVC, MVP и MVVM и адаптирована под язык ABAP. Читать дальше…


Страницы:12345