Изменение данных таблиц через отладчик или ФМ
Эта статья описывает два варианта изменения содержимого таблиц SAP различными способами на примерах RCM таблиц в S4 HANA. Такая необходимость часто возникает у ABAP программистов и консультантов во время отладки и тестирования разработок, особенно при интеграции с внешними системами. Статья будет полезна для таких специалистов.
Преамбула
Эта статья описывает два варианта изменения содержимого таблиц SAP различными способами на примерах RCM таблиц в S4 HANA. Такая необходимость часто возникает у ABAP программистов и консультантов во время отладки и тестирования разработок, особенно при интеграции с внешними системами. Статья будет полезна для таких специалистов.
Содержание
Редактирование таблицы через режим отладки
Редактирование таблицы с использованием функционального модуля SE16N_INTERFACE
Введение
Пусть необходимо поменять даты, номер, статус договора RCM, но интерфейс нам этого не позволяет (Рисунок 1). Такая ситуация возможна, например, при тестировании взаимодействия SAP MM и RCM, когда данные в RCM при полном сценарии должны попадать из внешней системы, но прохождение сценария MM невозможно пока эти поля не будут получены. Для выполнения отдельного сценария MM мы сможем временно заполнить эти поля RCM вручную.
Рисунок 1. Неизменяемые поля в интерфейсе SAP RCM.
Поиск таблиц, полей и записей
Необходимо определить таблицу, поля и запись, соответствующие полям интерфейса, которые мы собираемся менять. Один из простых способов это кликнуть в соответствующее поле интерфейса, нажать F1 (Техническая информация) и просмотреть название таблицы и поля.
Для поиска соответствующей записи в таблице можно использовать транзакцию SE16 и применить фильтр по известным значениям полей. В нашем примере мы по номеру случая SCMG_T_CASE_ATTR-EXT_KEY=2132 определяем CASE-GUID, а по нему находим соответствующую запись в таблице ZTRCM_CONTR, в которой находятся поля подлежащие изменению. (Рисунок 2).
Рисунок 2. Поиск нужной записи через фильтры по некоторым полям.
Найденные значения полей представлены в таблице ниже. (См. Таблицу 1).
Таблица 1. Значения изменяемых полей.
Редактирование таблицы через режим отладки
Запускаем транзакцию SE16N
Вводим имя таблицы, вводим значения ключа, в данном случае CASE_GUID, ставим галки только на те поля, которые будем смотреть/менять (для удобства) (Рисунок 3).
Рисунок 3. Выбор полей для редактирования.
Введите в поле для ввода кодов транзакций символы /h и нажмите Enter (Рисунок 4).
Рисунок 4. Переключение в режим редактирования.
Далее нажмите кнопку ‘Выполнить’ (F8) (Рисунок 5).
Вы перейдете в режим отладки.
Рисунок 5. Отображение статуса отладки.
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 19
Комментарий от
Иван Тремичев
| 12 марта 2019, 17:39
И все равно раз 1-3 месяца появляется эта же статья, но другими словами
Опытные консультанты уже это знают.
Неопытным - противопоказаны подобные знания, т.к. не редко изменение приводит к не консистенции данных.
Комментарий от
Дмитрий Белан
| 12 марта 2019, 18:12
Иван Тремичев 12 марта 2019, 17:39
Мое мнение - подобные статьи вредны.
И все равно раз 1-3 месяца появляется эта же статья, но другими словами
Опытные консультанты уже это знают.
Неопытным - противопоказаны подобные знания, т.к. не редко изменение приводит к не консистенции данных.
Комментарий от
Олег Точенюк
| 19 марта 2019, 14:57
Дмитрий Белан 12 марта 2019, 18:12
Столовый нож в неумелых руках может нанести травму. Однако это не повод вообще не пользоваться ножами. Для правильного использования есть другие административные и технические способы ограничения.
Комментарий от
Дмитрий Белан
| 22 марта 2019, 13:17
Олег Точенюк 19 марта 2019, 14:57
Так, а какой смысл в этих ножах? Когда даже на этот ресурсе это упоминалось уже несколько раз.
В настоящее время, уже на другом проекте у меня возникает такая необходимость, в частности изменение Z-параметров в Z-таблице в системе тестирования.
Комментарий от
Олег Точенюк
| 27 марта 2019, 15:39
Дмитрий Белан 22 марта 2019, 13:17
В разделе "Введение" данной статьи описана одна из ситуаций, когда это было необходимо.
В настоящее время, уже на другом проекте у меня возникает такая необходимость, в частности изменение Z-параметров в Z-таблице в системе тестирования.
Комментарий от
Дмитрий Белан
| 27 марта 2019, 18:21
Олег Точенюк 27 марта 2019, 15:39
Я не про необходимо, я про то, что как менять данные в таблицах даже на данном ресурсе было уже не раз опубликовано, а уж в гугле то... еще больше ссылок, но все равно статьи на данную тему появляются с завидной регулярностью, т.е. в общем или гугл у народа отключен или не знаю, что является побуждающей причиной к написанию уже сто раз написанного ранее.
Комментарий от
Александр Платушин
| 02 апреля 2019, 22:29
Комментарий от
Виктор Блок
| 10 июня 2020, 11:57
Не смог найти как это обойти!
Может Вы знаете?
Комментарий от
Никита Калуцкий
| 29 июня 2020, 13:43
Виктор Блок 10 июня 2020, 11:57
Но есть проблема: при редактировании если в гриде есть текстовые поля, то они все переводятся в верхний регистр!
Не смог найти как это обойти!
Может Вы знаете?
Комментарий от
Олег Точенюк
| 03 июля 2020, 13:20
Никита Калуцкий 29 июня 2020, 13:43
В верхний регистр если тип данных CHAR используете. Попробуйте SSTRING.
2. Совет про стринги хорош, вопрос только как им можно воспользоваться :-) для стандартных программ которые через отладчик смотрят.
Комментарий от
Олег Башкатов
| 06 июля 2020, 23:57
Виктор Блок 10 июня 2020, 11:57
Но есть проблема: при редактировании если в гриде есть текстовые поля, то они все переводятся в верхний регистр!
Не смог найти как это обойти!
Может Вы знаете?
Делается так:
1) запускаем SE37, переходим по пути Утилиты -> Параметры настройки и ищем вкладку Построитель Функций
2) затем снимаем галку ALV-сетка: представление среды теста
3) затем снова запускаем тестовую среду в se37 и тогда уже видим старый экран и там нужно поставить галку "Прописная/строчная"
4) если же мы поставим эту галку в ново-улучшенной среде ALV, то там ALV экран не различает строчные буквы
Комментарий от
Александр Носов
| 03 августа 2020, 16:08
P.S: Если нет прав на отладку, можно воспользоваться аналогом SE16N: sapboard.ru/forum/viewtopic.php и abap4.ru/zse16n.html
Комментарий от
Олег Точенюк
| 04 августа 2020, 11:27
Александр Носов 03 августа 2020, 16:08
Я против редактирования таблиц подобными способами, но иногда возникают исключения. Пример из личного опыта. Был перенос запроса с корректировкой выполняемой программы. Возник дамп, образовалась неконсистентность данных. Требовалось оперативно поправить статусы в документах для исправления ошибок.
P.S: Если нет прав на отладку, можно воспользоваться аналогом SE16N: sapboard.ru/forum/viewtopic.php и abap4.ru/zse16n.html
Пока писать сам, что не так, не буду, посмотрю на варианты от читателей :-). Так сказать какие могут быть варианты.
Комментарий от
Александр Носов
| 04 августа 2020, 12:46
Олег Точенюк 04 августа 2020, 11:27
Интересная ссылка на программу автор которой абап освоил (ну в какой-то мере), а вот структуру/схему таблиц БД с которой собственно говоря он работает - нет. Так сказать образец абапера которого я бы на работу брать не рекомендовал, а то ведь назетит всякой ерунды, а вам потом с этим жить. Можете на собеседовании приводить пример таблицы автора ZTEST с вопросом, что в этой таблице не так. Если ничего не ответит, переходите к следующему.
Пока писать сам, что не так, не буду, посмотрю на варианты от читателей :-). Так сказать какие могут быть варианты.
Программистов, использующих foo и bar в примерах тоже на работу не возьмете? :)
Комментарий от
Олег Точенюк
| 04 августа 2020, 18:17
Александр Носов 04 августа 2020, 12:46
А разве для демонстрации программы должна быть "правильная" таблица?
Программистов, использующих foo и bar в примерах тоже на работу не возьмете? :)
Комментарий от
Олег Точенюк
| 27 августа 2020, 20:24
Олег Точенюк 04 августа 2020, 18:17
Если человек делает такую таблицу, не возьму, потому что... ну короче вы тоже похоже не поняли в чем проблема? Это знаете как для примера как выглядит знак сложения в арифметике написать 2 + 2 = 5, потому что мы сейчас не об правильности суммирования, а о демонстрации как выглядит знак суммирования. Я правильно вас понял, вы такого математика возьмете, так как ну подумаешь, что оно там написало, оно же знак сложения демонстрировало, да?
Комментарий от
Олег Башкатов
| 30 августа 2020, 19:55
Олег Точенюк 27 августа 2020, 20:24
Ну что же раз желающих дать правильный ответ нет, или они очень заняты, напишу почему нет. В системе S/4 как и в предыдущих системах SAP ECC, завод всегда однозначно связан с балансовой единицей, через связку таблиц T001W - T001K - T001 следовательно, если кто-то делает таблицу, где ключами выступают поля БЕ + Завод, этим самым человек показывает свое абсолютное непонимание схемы БД в части логистики, а с другой стороны, ну раз он использует в примере, такую связку, то видимо он представляется всем как специалист по абап в области логистики, коим по моему мнению он не является ни в каком виде. Вот поэтому я не взял бы на работу такого абапера, который не понимает базовых основ в системе в той функциональности на которую он по видимому претендует. Ну это тоже самое, что математик пишет 2 + 2 = 5, на вопрос продемонстрировать операцию сложения. Как говорится а что тут такого, мы же про знак плюс, а не правильность написанного действия.
что делать, если такой человек уже принят? и он уже формирует архитектуру и выдает ТЗ и уверен, что он прав, и уверяет других, что так лучше?
и там уже не 2 + 2 = 5, там 2 + 2 = 'ЛучшийВмиреОтвет подбери себе сам и с музыкой'.
Комментарий от
Олег Точенюк
| 30 августа 2020, 21:22
Олег Башкатов 30 августа 2020, 19:55
а можно вопрос немного переиначу:
что делать, если такой человек уже принят? и он уже формирует архитектуру и выдает ТЗ и уверен, что он прав, и уверяет других, что так лучше?
и там уже не 2 + 2 = 5, там 2 + 2 = 'ЛучшийВмиреОтвет подбери себе сам и с музыкой'.
Комментарий от
Бахытжан Тайлакбаев
| 27 октября 2023, 10:40