Концепция блокировок в SAP (от 10.01.2014)
Если несколько программ конкурируют за доступ к одним и тем же данным, Вам необходимо обеспечить синхронизацию обращения к этим данным чтобы они оставались корректными и работа логики приложений не была нарушена. К примеру, если в системе резервирования билетов необходимо оформить билет на рейс, необходимо защитить данные в таблице хранящей записи о рейсах, чтобы во время…
https://abap-blog.ru/database-work/koncepciya-blokirovok-v-sap/
Если несколько программ конкурируют за доступ к одним и тем же данным, Вам необходимо обеспечить синхронизацию обращения к этим данным чтобы они оставались корректными и работа логики приложений не была нарушена. К примеру, если в системе резервирования билетов необходимо оформить билет на рейс, необходимо защитить данные в таблице хранящей записи о рейсах, чтобы во время…
https://abap-blog.ru/database-work/koncepciya-blokirovok-v-sap/
abap-blog.ru
ABAP Blog | Концепция блокировок в 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/
При работе с сообщениями иногда может возникнуть необходимость настройки типов выводимых сообщений (было информационным, а захотели сделать сообщением об ошибке, либо вообще отключить вывод сообщения). Ниже будет подробнее разобрано как это реализовать. Рассмотрим небольшой пример. Есть следующий класс сообщений 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/
abap-blog.ru
ABAP Blog | Гибкая настройка сообщений
При работе с сообщениями иногда может возникнуть необходимость настройки типов выводимых сообщений (было информационным, а захотели сделать сообщением об ошибке, либо вообще отключить вывод сообщения). Ниже будет подробнее разобрано как это реализовать. Рассмотрим…
Поиск транзакции к ракурсу ведения (от 15.01.2014)
Первый способ: найти в SPRO, для этого необходимо зайти в транзакцию SM30 и нажать кнопку настройка: Первый способ работает не всегда: Второй способ: открыть на просмотр таблицу TSTCP – параметры транзакции (например, через SE11): Результат:
https://abap-blog.ru/osnovy-abap/slovar/poisk-tranzakcii-k-rakursu-vedeniya/
Первый способ: найти в SPRO, для этого необходимо зайти в транзакцию SM30 и нажать кнопку настройка: Первый способ работает не всегда: Второй способ: открыть на просмотр таблицу TSTCP – параметры транзакции (например, через SE11): Результат:
https://abap-blog.ru/osnovy-abap/slovar/poisk-tranzakcii-k-rakursu-vedeniya/
abap-blog.ru
ABAP Blog | Поиск транзакции к ракурсу ведения
Первый способ: найти в SPRO, для этого необходимо зайти в транзакцию SM30 и нажать кнопку настройка: Первый способ работает не всегда: Второй способ: открыть на просмотр таблицу TSTCP – параметры транзакции (например, через SE11): Результат:
6 способов найти место вызова сообщений (от 17.01.2014)
Задачу определения места в программе, из которого было вызвано сообщение, можно решить несколькими способами. Ниже будут рассмотрены основные из них. В качестве простого примера рассмотрим вызов сообщения в SE38, при неправильно указанном имени программы: Способ первый. Щелкнув дважды по сообщению и открыв подробный текст в разделе технической информации, мы увидим класс сообщения и его номер:…
https://abap-blog.ru/osnovy-abap/6-sposobov-vyyasnit-otkuda-bylo-vyzvano-soobshhenie/
Задачу определения места в программе, из которого было вызвано сообщение, можно решить несколькими способами. Ниже будут рассмотрены основные из них. В качестве простого примера рассмотрим вызов сообщения в SE38, при неправильно указанном имени программы: Способ первый. Щелкнув дважды по сообщению и открыв подробный текст в разделе технической информации, мы увидим класс сообщения и его номер:…
https://abap-blog.ru/osnovy-abap/6-sposobov-vyyasnit-otkuda-bylo-vyzvano-soobshhenie/
abap-blog.ru
ABAP Blog | 6 способов найти место вызова сообщений
Задачу определения места в программе, из которого было вызвано сообщение, можно решить несколькими способами. Ниже будут рассмотрены основные из них. В качестве простого примера рассмотрим вызов сообщения в SE38, при неправильно указанном имени программы:…
Получение информации о ФМ (от 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/
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-blog.ru
ABAP Blog | Получение информации о функциональном модуле
С помощью данного кода, можно получить описание всех параметров указанного ФМ
Изменения в языке ABAP 7.40 (от 30.01.2014)
Демонстрация основных изменений в языке. Более подробно в документации и тут. Обзор изменений 7.40, SP05 тут.
https://abap-blog.ru/osnovy-abap/izmeneniya-v-yazyke-abap-7-40/
Демонстрация основных изменений в языке. Более подробно в документации и тут. Обзор изменений 7.40, SP05 тут.
https://abap-blog.ru/osnovy-abap/izmeneniya-v-yazyke-abap-7-40/
abap-blog.ru
ABAP Blog | Изменения в языке ABAP 7.40
Демонстрация основных изменений в языке. Более подробно в документации и тут. Обзор изменений 7.40, SP05 тут.
Бесплатные курсы SAP (от 18.02.2014)
Более 80 курсов доступно, по этой ссылке можно ознакомится каким образом получить к ним доступ http://scn.sap.com/docs/DOC-51591.
https://abap-blog.ru/others/besplatnye-kursy-sap/
Более 80 курсов доступно, по этой ссылке можно ознакомится каким образом получить к ним доступ http://scn.sap.com/docs/DOC-51591.
https://abap-blog.ru/others/besplatnye-kursy-sap/
Sap
SAP Learning Hub Free Courses Overview
SAP Learning Hub provides access to more than 383 free courses and communities (called SAP Learning Rooms) within its discovery edition. This overview document covers all free content currently available:http://origin-saplearninghub.
Строитель типов (от 27.02.2014)
В ABAP редакторе есть весьма удобный генератор (строитель) типов, чтобы воспользоваться им, необходимо сделать следующее: Написать в редакторе TYPES Нажать Ctrl+Пробел, чтобы вызвать вспомогательное меню Щелкнуть два раза по TYPES или нажать Shift+Enter На экране необходимо указать структуру из словаря и нажать кнопку Preview TYPE, после чего можно будет выбирать необходимые поля для будущей структуры:…
https://abap-blog.ru/osnovy-abap/stroitel-tipov/
В ABAP редакторе есть весьма удобный генератор (строитель) типов, чтобы воспользоваться им, необходимо сделать следующее: Написать в редакторе TYPES Нажать Ctrl+Пробел, чтобы вызвать вспомогательное меню Щелкнуть два раза по TYPES или нажать Shift+Enter На экране необходимо указать структуру из словаря и нажать кнопку Preview TYPE, после чего можно будет выбирать необходимые поля для будущей структуры:…
https://abap-blog.ru/osnovy-abap/stroitel-tipov/
abap-blog.ru
ABAP Blog | Строитель типов
В ABAP редакторе есть весьма удобный генератор (строитель) типов, чтобы воспользоваться им, необходимо сделать следующее: Написать в редакторе TYPES Нажать Ctrl+Пробел, чтобы вызвать вспомогательное меню Щелкнуть два раза по TYPES или нажать Shift+Enter На…
Доступ к приватному атрибуту класса (от 28.02.2014)
Инкапсуляция — механизм языка программирования, ограничивающий доступ к составляющим объект компонентам (методам и свойствам), делает их приватными, то есть доступными только внутри объекта. Является важным инструментом ООП наряду с полиморфизмом, наследованием и абстракцией данных. Как известно в ABAP можно получить доступ к приватному атрибуту другого класса, если класс запрашивающий атрибут является другом. Кроме этого способа, доступ к приватному атрибуту можно получить если мы сможем…
https://abap-blog.ru/osnovy-abap/dostup-k-privatnomu-atributu-klassa/
Инкапсуляция — механизм языка программирования, ограничивающий доступ к составляющим объект компонентам (методам и свойствам), делает их приватными, то есть доступными только внутри объекта. Является важным инструментом ООП наряду с полиморфизмом, наследованием и абстракцией данных. Как известно в ABAP можно получить доступ к приватному атрибуту другого класса, если класс запрашивающий атрибут является другом. Кроме этого способа, доступ к приватному атрибуту можно получить если мы сможем…
https://abap-blog.ru/osnovy-abap/dostup-k-privatnomu-atributu-klassa/
abap-blog.ru
ABAP Blog | Доступ к приватному атрибуту класса
Инкапсуляция — механизм языка программирования, ограничивающий доступ к составляющим объект компонентам (методам и свойствам), делает их приватными, то есть доступными только внутри объекта. Является важным инструментом ООП наряду с полиморфизмом, наследованием…
Сделать снимок экрана (от 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/
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/
abap-blog.ru
ABAP Blog | Сделать снимок экрана
С помощью данного кода можно получить снимок экрана на фронтенде, без вызова Windows API.
Оптимальное использование 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/
Очень часто в коде какого-либо user (customer) exit можно встретить кучу разных ветвлений, одно вставил программист Петя по задаче X, другое вставил программист Вася по задаче Y. Со временем подобный код становится плохо читаемым. Для удобства его восприятия можно воспользоваться современными BADI, основанными на Enhancement Framework. Суть данного удобства заключается в том, что вместо кучи…
https://abap-blog.ru/enhancements/optimalnoe-ispolzovanie-eser-exitov-s-pomoshhyu-vyzova-badi/
abap-blog.ru
ABAP Blog | Оптимальное использование user (customer) exit’ов с помощью вызова BADI
Оптимизация использования User (customer) exit'ов за счёт их группировки в новых BADI, основанных на Enhancement Framework.
Автоматическая проверка присвоения имен для переменных (от 05.04.2014)
Как правило, в ABAP используется венгерская нотация для обозначения переменных. В разных источниках правила по обозначению переменных могут отличаться, даже внутри кода SAP нет единого подхода. Есть некоторые рекомендации по обозначению, но они так же не являются полными. С помощью анализатора кода тр. SCI можно унифицировать правила и проверять их соблюдение. Ниже, с помощью этой…
https://abap-blog.ru/osnovy-abap/avtomaticheskaya-proverka-prisvoeniya-imen-dlya-peremennyx/
Как правило, в ABAP используется венгерская нотация для обозначения переменных. В разных источниках правила по обозначению переменных могут отличаться, даже внутри кода SAP нет единого подхода. Есть некоторые рекомендации по обозначению, но они так же не являются полными. С помощью анализатора кода тр. SCI можно унифицировать правила и проверять их соблюдение. Ниже, с помощью этой…
https://abap-blog.ru/osnovy-abap/avtomaticheskaya-proverka-prisvoeniya-imen-dlya-peremennyx/
abap-blog.ru
ABAP Blog | Автоматическая проверка присвоения имен для переменных
Обзор инструмента автоматической проверки правильного присвоения имен для переменных в ABAP коде.
Тестирование, управляемое данными (Data-Driven Testing) (от 25.04.2014)
Методология тестирования, управляемого данными (DDT) применяется в автоматизации тестирования ПО, представляет собой тестирование, выполнение и верификация которого производится на основе данных, которые хранятся в БД или любых других источниках данных. Обычно сравнивают эталонные данные с теми, что на выходе получает система из метода (функции, программы и т.п.). Тестирование, управляемое данными подразумевает разделение юнит тестов и…
https://abap-blog.ru/osnovy-abap/testirovanie-upravlyaemoe-dannymi-data-driven-testing/
Методология тестирования, управляемого данными (DDT) применяется в автоматизации тестирования ПО, представляет собой тестирование, выполнение и верификация которого производится на основе данных, которые хранятся в БД или любых других источниках данных. Обычно сравнивают эталонные данные с теми, что на выходе получает система из метода (функции, программы и т.п.). Тестирование, управляемое данными подразумевает разделение юнит тестов и…
https://abap-blog.ru/osnovy-abap/testirovanie-upravlyaemoe-dannymi-data-driven-testing/
abap-blog.ru
ABAP Blog | Тестирование, управляемое данными (Data-Driven Testing)
Введение в методологию Data-Driven Testing с использованием ABAP Unit.
Диаграмма классов UML (от 12.05.2014)
При моделировании какой-либо системы, построенной с помощью ООП, широко используется унифицированный язык моделирования UML. Взаимосвязи между классами в такой системе принято отображать в виде диаграммы классов. В данной статье рассмотрены основные взаимосвязи между классами и как они отражаются в ABAP коде. Взаимосвязь — это особый тип логических отношений между сущностями, показанных на диаграммах классов и объектов. Существуют следующие виды…
https://abap-blog.ru/osnovy-abap/diagramma-klassov-uml/
При моделировании какой-либо системы, построенной с помощью ООП, широко используется унифицированный язык моделирования UML. Взаимосвязи между классами в такой системе принято отображать в виде диаграммы классов. В данной статье рассмотрены основные взаимосвязи между классами и как они отражаются в ABAP коде. Взаимосвязь — это особый тип логических отношений между сущностями, показанных на диаграммах классов и объектов. Существуют следующие виды…
https://abap-blog.ru/osnovy-abap/diagramma-klassov-uml/
abap-blog.ru
ABAP Blog | Диаграмма классов UML
Диаграмма классов 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 Objects разработчик неизбежно сталкивается с ситуацией, когда данные нужно либо загружать из каких-либо источников данных (БД, файлы и т.п.) в объекты, либо выгружать из объектов куда-либо. Системы, решающие задачу сопоставления информации из БД в объекты и обратно принято называть ORM системами. В объектно-ориентированном программировании объекты в программе представляют объекты из реального мира. В…
https://abap-blog.ru/database-work/abap-object-services-persistence-service/
abap-blog.ru
ABAP Blog | ABAP Object Services — Persistence Service — часть 1.
Введение в использование Object Services в ABAP.
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/
Инструмент обработки транзакций позволяет разработчику контролировать процессы записи изменений из хранимых объектах в базу данных. Transaction Service основан на классической схеме обновления данных, с небольшими дополнениями. Используя TS нет необходимости ручного вызова модулей обновлений. Кроме того, TS вводит такое понятие как ООП транзакция. Компоненты Transaction Service Рассмотрим используемые в TS компоненты. Сама по себе ООП…
https://abap-blog.ru/database-work/abap-object-services-transaction-service/
abap-blog.ru
ABAP Blog | ABAP Object Services – Transaction Service
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/
Ранее было показано, каким образом можно загрузить хранимый объект из БД относительно ключевых полей и даже как массово их инициализировать (метод GET_PERSISTENT_BY_KEY_TAB). Альтернативой подобному методу служит – Query Service. QS – Инструмент позволяющий Вам делать поиск и загрузку хранимых объектов, относительно логических выражений (условий). Кроме фильтров относительно условий, QS позволяет задать параметры сортировки. Используя QS, вам…
https://abap-blog.ru/database-work/abap-object-services-query-service/
abap-blog.ru
ABAP Blog | ABAP Object Services — Query Service
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/
Продолжаем знакомство с ABAP Object Services, в этой части будут рассмотрены темы: менеджеры инстанций и постоянства, пользовательские проверки при манипуляции с атрибутами хранимых классов, преобразование объектов в структуры и таблицы, загрузка связанных объектов без использования ссылочных атрибутов. Менеджер инстанций и менеджер постоянства (Persistency Manager) Как мы уже знаем каждый агент класса, содержит методы для создания,…
https://abap-blog.ru/database-work/abap-object-services-persistence-service-chast-2/
abap-blog.ru
ABAP Blog | ABAP Object Services – Persistence Service – часть 2
Дополнительные аспекты работы с Object Services.
Быстрая трассировка в отладчике (от 28.06.2014)
Начиная с SAP_ABA 702 в отладчике появился инструмент позволяющий быстро включать трассировку (SE30/ST05): Добавляем инструмент: Ставим точку перед вызовом SQL (В моем случае получение хранимого объекта): Активируем SQL Trace в инструменте, двойным щелчком мыши: Проходим вызов, деактивируем trace, получаем результат:
https://abap-blog.ru/others/bystraya-trassirovka-v-otladchike/
Начиная с SAP_ABA 702 в отладчике появился инструмент позволяющий быстро включать трассировку (SE30/ST05): Добавляем инструмент: Ставим точку перед вызовом SQL (В моем случае получение хранимого объекта): Активируем SQL Trace в инструменте, двойным щелчком мыши: Проходим вызов, деактивируем trace, получаем результат:
https://abap-blog.ru/others/bystraya-trassirovka-v-otladchike/
abap-blog.ru
ABAP Blog | Быстрая трассировка в отладчике
Начиная с SAP_ABA 702 в отладчике появился инструмент позволяющий быстро включать трассировку (SE30/ST05): Добавляем инструмент: Ставим точку перед вызовом SQL (В моем случае получение хранимого объекта): Активируем SQL Trace в инструменте, двойным щелчком…
ABAP Object Services – Интеграция с системой блокировок (от 28.06.2014)
На сервере приложений одновременно может работать большое число пользователей, которые в свою очередь работают параллельно с одними и теми же программами, может случиться ситуация, когда они попытаются одновременно обработать один и тот же объект (например, изменить поставку, заказ на закупку и т.п.). Чтобы в системе не возникало противоречивости данных, были придуманы блокировки, более подробно о…
https://abap-blog.ru/database-work/abap-object-services-integraciya-s-sistemoj-blokirovok/
На сервере приложений одновременно может работать большое число пользователей, которые в свою очередь работают параллельно с одними и теми же программами, может случиться ситуация, когда они попытаются одновременно обработать один и тот же объект (например, изменить поставку, заказ на закупку и т.п.). Чтобы в системе не возникало противоречивости данных, были придуманы блокировки, более подробно о…
https://abap-blog.ru/database-work/abap-object-services-integraciya-s-sistemoj-blokirovok/
abap-blog.ru
ABAP Blog | ABAP Object Services – Интеграция с системой блокировок
На сервере приложений одновременно может работать большое число пользователей, которые в свою очередь работают параллельно с одними и теми же программами, может