ABAP Blog ️
1.25K subscribers
5 photos
3 videos
56 files
340 links
Про ABAP, SAP и Разработку в целом.

🏛 https://abap-blog.ru/about/
Download Telegram
Концепция блокировок в SAP (от 10.01.2014)

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

https://abap-blog.ru/database-work/koncepciya-blokirovok-v-sap/
Гибкая настройка сообщений (от 14.01.2014)

При работе с сообщениями иногда может возникнуть необходимость настройки типов выводимых сообщений (было информационным, а захотели сделать сообщением об ошибке, либо вообще отключить вывод сообщения).  Ниже будет подробнее разобрано как это реализовать.    Рассмотрим небольшой пример. Есть следующий класс сообщений ZMESSAGES (транзакция SE91): Программа: PARAMETERS: p_param TYPE char10. START-OF-SELECTION. IF p_param IS INITIAL. MESSAGE e000(ZMESSAGES). ENDIF.…

https://abap-blog.ru/osnovy-abap/gibkaya-nastrojka-vyzyvaemyx-soobshhenij/
Поиск транзакции к ракурсу ведения (от 15.01.2014)

Первый способ: найти в SPRO, для этого необходимо зайти в транзакцию SM30 и нажать кнопку настройка: Первый способ работает не всегда: Второй способ: открыть на просмотр таблицу TSTCP – параметры транзакции (например, через SE11): Результат:

https://abap-blog.ru/osnovy-abap/slovar/poisk-tranzakcii-k-rakursu-vedeniya/
6 способов найти место вызова сообщений (от 17.01.2014)

Задачу определения места в программе, из которого было вызвано сообщение, можно решить несколькими способами. Ниже будут рассмотрены основные из них. В качестве простого примера рассмотрим вызов сообщения в SE38, при неправильно указанном имени программы: Способ первый. Щелкнув дважды по сообщению и открыв подробный текст в разделе технической информации, мы увидим класс сообщения и его номер:…

https://abap-blog.ru/osnovy-abap/6-sposobov-vyyasnit-otkuda-bylo-vyzvano-soobshhenie/
Получение информации о ФМ (от 23.01.2014)

DATA: ls_header TYPE header_fb, lt_import TYPE rsfb_para. ls_header-name = 'BAL_LOG_MSG_ADD'. cl_fb_parameter_db=>read( IMPORTING import = lt_import CHANGING header = ls_header EXCEPTIONS cancelled = 1 OTHERS = 2 ). Результат:

https://abap-blog.ru/osnovy-abap/poluchenie-informacii-o-fm/
Изменения в языке ABAP 7.40 (от 30.01.2014)

Демонстрация основных изменений в языке. Более подробно в документации и тут. Обзор изменений 7.40, SP05 тут.

https://abap-blog.ru/osnovy-abap/izmeneniya-v-yazyke-abap-7-40/
Строитель типов (от 27.02.2014)

В ABAP редакторе есть весьма удобный генератор (строитель) типов, чтобы воспользоваться им, необходимо сделать следующее: Написать в редакторе TYPES Нажать Ctrl+Пробел, чтобы вызвать вспомогательное меню Щелкнуть два раза по TYPES или нажать Shift+Enter На экране необходимо указать структуру из словаря и нажать кнопку Preview TYPE, после чего можно будет выбирать необходимые поля для будущей структуры:…

https://abap-blog.ru/osnovy-abap/stroitel-tipov/
Доступ к приватному атрибуту класса (от 28.02.2014)

Инкапсуляция — механизм языка программирования, ограничивающий доступ к составляющим объект компонентам (методам и свойствам), делает их приватными, то есть доступными только внутри объекта. Является важным инструментом ООП наряду с полиморфизмом, наследованием и абстракцией данных. Как известно в ABAP можно получить доступ к приватному атрибуту другого класса, если класс запрашивающий атрибут является другом. Кроме этого способа, доступ к приватному атрибуту можно получить если мы сможем…

https://abap-blog.ru/osnovy-abap/dostup-k-privatnomu-atributu-klassa/
Сделать снимок экрана (от 03.03.2014)

DATA: gv_mime_type TYPE string, gv_image TYPE xstring, gt_tabimg TYPE STANDARD TABLE OF x, gv_path TYPE string, gv_full_path TYPE string, gv_useraction TYPE i, gv_name TYPE string. cl_gui_frontend_services=>get_screenshot( IMPORTING mime_type_str = gv_mime_type image = gv_image EXCEPTIONS access_denied = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4 OTHERS = 5 ). IF sy-subrc 0. MESSAGE…

https://abap-blog.ru/osnovy-abap/sdelat-snimok-ekrana/
Оптимальное использование user (customer) exit’ов с помощью вызова BADI (от 30.03.2014)

Очень часто в коде какого-либо user (customer) exit можно встретить кучу разных ветвлений, одно вставил программист Петя по задаче X, другое вставил программист Вася по задаче Y. Со временем подобный код становится плохо читаемым. Для удобства его восприятия можно воспользоваться современными BADI, основанными на Enhancement Framework. Суть данного удобства заключается в том, что вместо кучи…

https://abap-blog.ru/enhancements/optimalnoe-ispolzovanie-eser-exitov-s-pomoshhyu-vyzova-badi/
Автоматическая проверка присвоения имен для переменных (от 05.04.2014)

Как правило, в ABAP используется венгерская нотация для обозначения переменных. В разных источниках правила по обозначению переменных могут отличаться, даже внутри кода SAP нет единого подхода. Есть некоторые рекомендации по обозначению, но они так же не являются полными. С помощью анализатора кода тр. SCI можно унифицировать правила и проверять их соблюдение.  Ниже, с помощью этой…

https://abap-blog.ru/osnovy-abap/avtomaticheskaya-proverka-prisvoeniya-imen-dlya-peremennyx/
Тестирование, управляемое данными (Data-Driven Testing) (от 25.04.2014)

Методология тестирования, управляемого данными (DDT) применяется в автоматизации тестирования ПО, представляет собой тестирование, выполнение и верификация которого производится на основе данных, которые хранятся в БД или любых других источниках данных. Обычно сравнивают эталонные данные с теми, что на выходе получает система из метода (функции, программы и т.п.). Тестирование, управляемое данными подразумевает разделение юнит тестов и…

https://abap-blog.ru/osnovy-abap/testirovanie-upravlyaemoe-dannymi-data-driven-testing/
Диаграмма классов UML (от 12.05.2014)

При моделировании какой-либо системы, построенной с помощью ООП, широко используется унифицированный язык моделирования UML. Взаимосвязи между классами в такой системе принято отображать в виде диаграммы классов. В данной статье рассмотрены основные взаимосвязи между классами и как они отражаются в ABAP коде. Взаимосвязь — это особый тип логических отношений между сущностями, показанных на диаграммах классов и объектов. Существуют следующие виды…

https://abap-blog.ru/osnovy-abap/diagramma-klassov-uml/
ABAP Object Services – Persistence Service – часть 1. (от 28.05.2014)

При разработке с использованием ABAP Objects разработчик неизбежно сталкивается с ситуацией, когда данные нужно либо загружать из каких-либо источников данных (БД, файлы и т.п.) в объекты, либо выгружать из объектов куда-либо. Системы, решающие задачу сопоставления информации из БД в объекты и обратно принято называть ORM системами. В объектно-ориентированном программировании объекты в программе представляют объекты из реального мира. В…

https://abap-blog.ru/database-work/abap-object-services-persistence-service/
ABAP Object Services – Transaction Service (от 31.05.2014)

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

https://abap-blog.ru/database-work/abap-object-services-transaction-service/
ABAP Object Services – Query Service (от 03.06.2014)

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

https://abap-blog.ru/database-work/abap-object-services-query-service/
ABAP Object Services – Persistence Service – часть 2 (от 04.06.2014)

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

https://abap-blog.ru/database-work/abap-object-services-persistence-service-chast-2/
Быстрая трассировка в отладчике (от 28.06.2014)

Начиная с SAP_ABA 702 в отладчике появился инструмент позволяющий быстро включать трассировку (SE30/ST05): Добавляем инструмент: Ставим точку перед вызовом SQL (В моем случае получение хранимого объекта): Активируем SQL Trace в инструменте, двойным щелчком мыши: Проходим вызов, деактивируем trace, получаем результат:

https://abap-blog.ru/others/bystraya-trassirovka-v-otladchike/
ABAP Object Services – Интеграция с системой блокировок (от 28.06.2014)

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

https://abap-blog.ru/database-work/abap-object-services-integraciya-s-sistemoj-blokirovok/