Принудительный Display Like (от 22.03.2021)
Обнаружил для себя забавную особенность при работе с сообщениями. Есть код: START-OF-SELECTION. MESSAGE s000(ztest). Логично предположить что сообщение будет вида ‘S’ (Status), однако есть возможность внутри самого сообщения указать принудительно DISPLAY LIKE:
https://abap-blog.ru/osnovy-abap/sap-dynpro/prinuditelnyj-display-like/
Обнаружил для себя забавную особенность при работе с сообщениями. Есть код: START-OF-SELECTION. MESSAGE s000(ztest). Логично предположить что сообщение будет вида ‘S’ (Status), однако есть возможность внутри самого сообщения указать принудительно DISPLAY LIKE:
https://abap-blog.ru/osnovy-abap/sap-dynpro/prinuditelnyj-display-like/
abap-blog.ru
ABAP Blog | Принудительный Display Like
Обнаружил для себя забавную особенность при работе с сообщениями. Есть код: START-OF-SELECTION. MESSAGE s000(ztest). Логично предположить что сообщение будет вида ‘S’ (Status), однако есть возможность внутри самого сообщения указать принудительно DISPLAY…
Коварные запятые (от 23.03.2021)
Уже несколько раз сталкивался с ситуацией, когда разработчик пишет что-то вроде: TYPES: BEGIN OF ts_some_type, a TYPE i, b TYPE i, END OF ts_some_type. DATA: lt_some_table TYPE SORTED TABLE OF ts_some_type WITH UNIQUE KEY a, b. lt_some_table = VALUE #( ( a = 1 b = 1 ) ( a = 1 b = 2…
https://abap-blog.ru/osnovy-abap/kovarnye-zapyatye/
Уже несколько раз сталкивался с ситуацией, когда разработчик пишет что-то вроде: TYPES: BEGIN OF ts_some_type, a TYPE i, b TYPE i, END OF ts_some_type. DATA: lt_some_table TYPE SORTED TABLE OF ts_some_type WITH UNIQUE KEY a, b. lt_some_table = VALUE #( ( a = 1 b = 1 ) ( a = 1 b = 2…
https://abap-blog.ru/osnovy-abap/kovarnye-zapyatye/
abap-blog.ru
ABAP Blog | Коварные запятые
Уже несколько раз сталкивался с ситуацией, когда разработчик пишет что-то вроде: [crayon-605a193244e0a619387509/] Данный код приведёт к исключению CX_SY_ITAB
Forwarded from HR[хаб]library
Hays_Salary-Guide_2021-3.pdf
11 MB
Табличные выражения и исключения (от 27.03.2021)
Начиная с версии ABAP 7.40 мы можем считывать данные из таблиц через табличные выражения следующим образом: TRY. ls_row = lt_itab[ id = lv_find_id ]. CATCH cx_sy_itab_line_not_found. " INTO DATA(lo_exception) " В случае отсутствия записи необходимо обработать исключение. ENDTRY. Однако такой вариант кроме того что является слишком длинным аналогом других, может оказывать существенное влияние на производительность…
https://abap-blog.ru/osnovy-abap/isklyucheniya-i-tablichnye-vyrazheniya/
Начиная с версии ABAP 7.40 мы можем считывать данные из таблиц через табличные выражения следующим образом: TRY. ls_row = lt_itab[ id = lv_find_id ]. CATCH cx_sy_itab_line_not_found. " INTO DATA(lo_exception) " В случае отсутствия записи необходимо обработать исключение. ENDTRY. Однако такой вариант кроме того что является слишком длинным аналогом других, может оказывать существенное влияние на производительность…
https://abap-blog.ru/osnovy-abap/isklyucheniya-i-tablichnye-vyrazheniya/
abap-blog.ru
ABAP Blog | Табличные выражения и исключения
Начиная с версии ABAP 7.40 мы можем считывать данные из таблиц через табличные выражения следующим образом: TRY. ls_row = lt_itab[ id = lv_find_id ]. CATCH cx_sy_itab_line_not_found. " INTO DATA(lo_exception) " В случае отсутствия записи необходимо обработать…
Просмотр каталога полей любого ALV (от 28.03.2021)
Иногда бывает полезно посмотреть каталог ALV без погружения в код или в отладку. Cделать это можно для любого ALV зажав Shift и щёлкнув два раза правой кнопкой мыши на не занятом данными месте, пример: Откроется сервисный инструмент, где среди прочего есть каталог полей:
https://abap-blog.ru/osnovy-abap/prosmotr-kataloga-polej-lyubogo-alv/
Иногда бывает полезно посмотреть каталог ALV без погружения в код или в отладку. Cделать это можно для любого ALV зажав Shift и щёлкнув два раза правой кнопкой мыши на не занятом данными месте, пример: Откроется сервисный инструмент, где среди прочего есть каталог полей:
https://abap-blog.ru/osnovy-abap/prosmotr-kataloga-polej-lyubogo-alv/
abap-blog.ru
ABAP Blog | Просмотр каталога полей любого ALV
Иногда бывает полезно посмотреть каталог ALV без погружения в код или в отладку. Cделать это можно для любого ALV зажав Shift и щёлкнув два раза правой кнопкой мыши на не занятом данными месте, пример: Откроется сервисный инструмент (alv consistency check)…
SELECT SINGLE и UP TO 1 ROWS (от 28.03.2021)
Казалось бы, выборка единственной записи из таблицы довольно простая и логически понятная операция, однако все еще частой ошибкой находимой на code-review является следующее предупреждение Code Inspector’a: Далее рассмотрим что это такое и почему это не нужно игнорировать.
https://abap-blog.ru/osnovy-abap/select-single-i-up-to-1-rows/
Казалось бы, выборка единственной записи из таблицы довольно простая и логически понятная операция, однако все еще частой ошибкой находимой на code-review является следующее предупреждение Code Inspector’a: Далее рассмотрим что это такое и почему это не нужно игнорировать.
https://abap-blog.ru/osnovy-abap/select-single-i-up-to-1-rows/
abap-blog.ru
ABAP Blog | SELECT SINGLE и UP TO 1 ROWS
Казалось бы, выборка единственной записи из таблицы довольно простая и логически понятная операция, однако все еще частой ошибкой находимой на code-review является следующее предупреждение Code Inspector’a: Syntax check warning In «SELECT SINGLE …», the WHERE…
Короткая форма VALUE при формировании таблиц (от 28.03.2021)
У оператора VALUE #( ) при формировании внутренних таблиц есть так называемая короткая форма: VALUE dtype|#( [let_exp] [BASE itab] col1 = dobj11 ... ( col2 = dobj12 col3 = dobj13 ... ) ( col2 = dobj22 col3 = dobj23 ... ) ... col1 = dobj31 col2 = dobj32 ... ( col3 = dobj33 ... )…
https://abap-blog.ru/osnovy-abap/korotkaya-forma-value-pri-formirovanii-vnutrennix-tablic/
У оператора VALUE #( ) при формировании внутренних таблиц есть так называемая короткая форма: VALUE dtype|#( [let_exp] [BASE itab] col1 = dobj11 ... ( col2 = dobj12 col3 = dobj13 ... ) ( col2 = dobj22 col3 = dobj23 ... ) ... col1 = dobj31 col2 = dobj32 ... ( col3 = dobj33 ... )…
https://abap-blog.ru/osnovy-abap/korotkaya-forma-value-pri-formirovanii-vnutrennix-tablic/
abap-blog.ru
ABAP Blog | Короткая форма VALUE при формировании таблиц
У оператора VALUE #( ) при формировании внутренних таблиц есть так называемая короткая форма: VALUE dtype|#( [let_exp] [BASE itab] col1 = dobj11 ... ( col2 = dobj12 col3 = dobj13 ... ) ( col2 = dobj22 col3 = dobj23 ... ) ... col1 = dobj31 col2 = dobj32 ...…
Полезная книжка. Забавно как автор исходя из своего опыта разработки и понимания ООП в Java рассматривает ООП в ABAP. https://www.twirpx.org/file/2506431/
www.twirpx.org
Скачать McDonough James E. Object-Oriented Design with ABAP [PDF]
Apress, 2017. 359 p. ISBN13: 978-1-4842-2837-1; ISBN13: 978-1-4842-2838-8. Conquer your fear and anxiety learning how the concepts behind object-oriented design apply to the ABAP programming environment. Through simple examples and metaphors this book demystifies…
AMDP BAdI (от 30.03.2021)
Начиная с ABAP 7.4 SP08 нам стал доступен специальный тип BAdI – AMDP BAdI, который позволяет заменить/расширить стандартную реализацию AMDP процедур реализованных SAP-ом или в Custom решениях. Основное предназначение AMDP BAdI – вызов процедур реализованных в реализации AMDP BAdI из других AMDP процедур в системе. Чтобы это стало возможным используется ключевое слово USING в определении…
https://abap-blog.ru/enhancements/amdp-badi/
Начиная с ABAP 7.4 SP08 нам стал доступен специальный тип BAdI – AMDP BAdI, который позволяет заменить/расширить стандартную реализацию AMDP процедур реализованных SAP-ом или в Custom решениях. Основное предназначение AMDP BAdI – вызов процедур реализованных в реализации AMDP BAdI из других AMDP процедур в системе. Чтобы это стало возможным используется ключевое слово USING в определении…
https://abap-blog.ru/enhancements/amdp-badi/
abap-blog.ru
ABAP Blog | AMDP BAdI
Начиная с ABAP 7.4 SP08 нам стал доступен специальный тип BAdI — AMDP BAdI, который позволяет заменить/расширить стандартную реализацию AMDP процедур реализованных SAP-ом или в Custom решениях. Основное предназначение AMDP BAdI — вызов процедур реализованных…