LEFT JOIN and WHERE . ABAP SQL

В новом синтаксисе ABAP SQL  появилась возможность прописывать условия для таблиц LEFT JOIN  в WHERE.

Однако есть существенное отличие между условием прописанным после ON  и в условии WHERE.

Читать далее «LEFT JOIN and WHERE . ABAP SQL»

Создание динамической таблицы

Создание динамической таблицы для ALV в зависимости от структуры.

Читать далее «Создание динамической таблицы»

ФМы для чтения ИТ и ЛБД в HR. Почему их надо использовать

Немного сумбурных мыслей.
Информация для разработчиков, которые ранее не работали с модулем HR и не очень понимают, зачем при разработке в данном модуле использовать ЛБД или ФМ для выборки данных вместо селектов. Как всегда более подробно в курсах. В данном случае это HR350. Не претендую на идеальное и полное изложение материала. 

Читать далее «ФМы для чтения ИТ и ЛБД в HR. Почему их надо использовать»

BADI. Поиск и использование

Business Add-Ins

User-Exits позволяют клиентам прикрепить дополнительный код для стандартных SAP исходный код без необходимости изменения исходного объекта. Business Add-Ins SAP методика расширений, основанная на ABAP Objects.

Служат для того, чтобы вносить модификацию в алгоритм обработки объекта и свести к минимуму работы при обновлении системы.

Основным преимуществом данной концепции является возможность повторного использования. BAdI может быть реализован несколько раз.

Читать далее «BADI. Поиск и использование»

Дополнительные поля в Инфо-Наборе

Для заполнения дополнительных полей в инфо-наборе можно сделать следующее:

1. Создать расширенную структуру CI_Pnnnn_AF для ИТ;
2. Создать ФМ для заполнения дополнительных полей. Для образца можно взять ФМ RPAQ_GET_AF_NNNN;
3. В таблице T770AF прописать структуру и ФМ для заполнения дополнительных полей к ней;
4. В таблице T77ID прописать дополнительную структуру для ИТ;(Скорее всего необходимость данного пункта была из-за особенностей моей системы. В идеале запись должна создаваться автоматически)
5. Актуализируем дополнительные поля в инфо-наборе Инфо-набор->Другие функции->Актуализировать дополн. поля в HR.

Добавление нового поля в таблицу с записями.

В результате тестирования разработки оказалось, что при выборке из Z* таблицы выбираются не все значения.
В таблице у нас находятся 15 записей. В se11 мы видим, что у пяти записей в поле del_flag = 'X', у десяти del_flag пустой.

Далее выполняем три запроса к таблице:

В результате имеем: все 15 записей в таблице lt_table_1, 5 записей с del_flag = 'X' в таблице lt_table_2 и ТОЛЬКО 5 записей в таблице lt_table_3 с del_flag 'X'. Куда же делись еще 5 записей, которые должны были выбраться в таблицу ls_table_3 ?

Читать далее «Добавление нового поля в таблицу с записями.»

CALL TRANSACTION ‘QE01’

В одной из программ потребовалось вызвать транзакцию QE01 ввести там данные и вернуться в исходную транзакцию. Но в некоторых случаях вместо возврата в исходную программу, возвращалиcь в меню SAP. Оказалось, что транзакция в некоторых случаях вызывала другие при помощи LEAVE TO TRANSACTION, причем экраны были практически идентичны. А LEAVE очищает стек вызовов, и после выполнения транзакции просто некуда было возвращаться. В нашем случае, если были частичные партии, вызывалась транзакция QE14. Проблему решили тем, что теперь мы вызываем две транзакции в зависимости от наличия частичных партий QE01 и QE14 соответственно. Проблема с возвратом в исходную программу решена.

ALV – FULLSCREEN

Если необходимо вывести ALV на полный экран, то не надо создавать контейнер на экране, из-за возможных проблем с отображением на экранах с различным расширением. Нужно просто записать:

 

cl_gui_alv_grid – текстовая шапка

При необходимости добавить информацию перед таблицей cl_gui_alv_grid, может возникнуть вопрос как это сделать, т.к. Непосредственно сам класс, нам это не позволяет. В общем случае алгоритм точно такой же как и при выводе нескольких ALV в одном контейнере. Только вместо одной из таблиц мы будем выводить текст.

Читать далее «cl_gui_alv_grid – текстовая шапка»