Меню

Изменение данных таблиц через отладчик или ФМ

|

Эта статья описывает два варианта изменения содержимого таблиц 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

Мое мнение - подобные статьи вредны.
И все равно раз 1-3 месяца появляется эта же статья, но другими словами
Опытные консультанты уже это знают.
Неопытным - противопоказаны подобные знания, т.к. не редко изменение приводит к не консистенции данных.

Столовый нож в неумелых руках может нанести травму. Однако это не повод вообще не пользоваться ножами. Для правильного использования есть другие административные и технические способы ограничения.

Комментарий от  

Олег Точенюк

  |  19 марта 2019, 14:57

Столовый нож в неумелых руках может нанести травму. Однако это не повод вообще не пользоваться ножами. Для правильного использования есть другие административные и технические способы ограничения.

Так, а какой смысл в этих ножах? Когда даже на этот ресурсе это упоминалось уже несколько раз.

Комментарий от  

Дмитрий Белан

  |  22 марта 2019, 13:17

Так, а какой смысл в этих ножах? Когда даже на этот ресурсе это упоминалось уже несколько раз.

В разделе "Введение" данной статьи описана одна из ситуаций, когда это было необходимо.
В настоящее время, уже на другом проекте у меня возникает такая необходимость, в частности изменение Z-параметров в Z-таблице в системе тестирования.

Комментарий от  

Олег Точенюк

  |  27 марта 2019, 15:39

В разделе "Введение" данной статьи описана одна из ситуаций, когда это было необходимо.
В настоящее время, уже на другом проекте у меня возникает такая необходимость, в частности изменение Z-параметров в Z-таблице в системе тестирования.

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

Комментарий от  

Дмитрий Белан

  |  27 марта 2019, 18:21

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

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

Комментарий от  

Александр Платушин

  |  02 апреля 2019, 22:29

Раньше пользовался &sap_edit, сейчас столкнулся с установленной нотой 1420281. Статья пришлась очень кстати, спасибо.

Комментарий от  

Виктор Блок

  |  10 июня 2020, 11:57

Но есть проблема: при редактировании если в гриде есть текстовые поля, то они все переводятся в верхний регистр!
Не смог найти как это обойти!
Может Вы знаете?

Комментарий от  

Никита Калуцкий

  |  29 июня 2020, 13:43

Но есть проблема: при редактировании если в гриде есть текстовые поля, то они все переводятся в верхний регистр!
Не смог найти как это обойти!
Может Вы знаете?

В верхний регистр если тип данных CHAR используете. Попробуйте SSTRING.

Комментарий от  

Олег Точенюк

  |  03 июля 2020, 13:20

В верхний регистр если тип данных CHAR используете. Попробуйте SSTRING.

1. Перевод строк в верхний регистр выполняется в том случае, если в домене галка "Строчные буквы" не установлена, тут как говорится никак не обойти систему, ну разве что в отладчике менять руками в PAI назад.
 
2. Совет про стринги хорош, вопрос только как им можно воспользоваться :-) для стандартных программ которые через отладчик смотрят.

Комментарий от  

Олег Башкатов

  |  06 июля 2020, 23:57

Но есть проблема: при редактировании если в гриде есть текстовые поля, то они все переводятся в верхний регистр!
Не смог найти как это обойти!
Может Вы знаете?

Мне думается, что единственным корректным способом является переход от ALV-сетке к старому доброму List.
 
Делается так:
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

Я против редактирования таблиц подобными способами, но иногда возникают исключения. Пример из личного опыта. Был перенос запроса с корректировкой выполняемой программы. Возник дамп, образовалась неконсистентность данных. Требовалось оперативно поправить статусы в документах для исправления ошибок.
P.S: Если нет прав на отладку, можно воспользоваться аналогом SE16N: sapboard.ru/forum/viewtopic.php и abap4.ru/zse16n.html

Интересная ссылка на программу автор которой абап освоил (ну в какой-то мере), а вот структуру/схему таблиц БД с которой собственно говоря он работает - нет. Так сказать образец абапера которого я бы на работу брать не рекомендовал, а то ведь назетит всякой ерунды, а вам потом с этим жить. Можете на собеседовании приводить пример таблицы автора ZTEST с вопросом, что в этой таблице не так. Если ничего не ответит, переходите к следующему.
 
Пока писать сам, что не так, не буду, посмотрю на варианты от читателей :-). Так сказать какие могут быть варианты.

Комментарий от  

Александр Носов

  |  04 августа 2020, 12:46

Интересная ссылка на программу автор которой абап освоил (ну в какой-то мере), а вот структуру/схему таблиц БД с которой собственно говоря он работает - нет. Так сказать образец абапера которого я бы на работу брать не рекомендовал, а то ведь назетит всякой ерунды, а вам потом с этим жить. Можете на собеседовании приводить пример таблицы автора ZTEST с вопросом, что в этой таблице не так. Если ничего не ответит, переходите к следующему.
 
Пока писать сам, что не так, не буду, посмотрю на варианты от читателей :-). Так сказать какие могут быть варианты.

А разве для демонстрации программы должна быть "правильная" таблица?
Программистов, использующих foo и bar в примерах тоже на работу не возьмете? :)

Комментарий от  

Олег Точенюк

  |  04 августа 2020, 18:17

А разве для демонстрации программы должна быть "правильная" таблица?
Программистов, использующих foo и bar в примерах тоже на работу не возьмете? :)

Если человек делает такую таблицу, не возьму, потому что... ну короче вы тоже похоже не поняли в чем проблема? Это знаете как для примера как выглядит знак сложения в арифметике написать 2 + 2 = 5, потому что мы сейчас не об правильности суммирования, а о демонстрации как выглядит знак суммирования. Я правильно вас понял, вы такого математика возьмете, так как ну подумаешь, что оно там написало, оно же знак сложения демонстрировало, да?

Комментарий от  

Олег Точенюк

  |  27 августа 2020, 20:24

Если человек делает такую таблицу, не возьму, потому что... ну короче вы тоже похоже не поняли в чем проблема? Это знаете как для примера как выглядит знак сложения в арифметике написать 2 + 2 = 5, потому что мы сейчас не об правильности суммирования, а о демонстрации как выглядит знак суммирования. Я правильно вас понял, вы такого математика возьмете, так как ну подумаешь, что оно там написало, оно же знак сложения демонстрировало, да?

Ну что же раз желающих дать правильный ответ нет, или они очень заняты, напишу почему нет. В системе S/4 как и в предыдущих системах SAP ECC, завод всегда однозначно связан с балансовой единицей, через связку таблиц T001W - T001K - T001 следовательно, если кто-то делает таблицу, где ключами выступают поля БЕ + Завод, этим самым человек показывает свое абсолютное непонимание схемы БД в части логистики, а с другой стороны, ну раз он использует в примере, такую связку, то видимо он представляется всем как специалист по абап в области логистики, коим по моему мнению он не является ни в каком виде. Вот поэтому я не взял бы на работу такого абапера, который не понимает базовых основ в системе в той функциональности на которую он по видимому претендует. Ну это тоже самое, что математик пишет 2 + 2 = 5, на вопрос продемонстрировать операцию сложения. Как говорится а что тут такого, мы же про знак плюс, а не правильность написанного действия.

Комментарий от  

Олег Башкатов

  |  30 августа 2020, 19:55

Ну что же раз желающих дать правильный ответ нет, или они очень заняты, напишу почему нет. В системе S/4 как и в предыдущих системах SAP ECC, завод всегда однозначно связан с балансовой единицей, через связку таблиц T001W - T001K - T001 следовательно, если кто-то делает таблицу, где ключами выступают поля БЕ + Завод, этим самым человек показывает свое абсолютное непонимание схемы БД в части логистики, а с другой стороны, ну раз он использует в примере, такую связку, то видимо он представляется всем как специалист по абап в области логистики, коим по моему мнению он не является ни в каком виде. Вот поэтому я не взял бы на работу такого абапера, который не понимает базовых основ в системе в той функциональности на которую он по видимому претендует. Ну это тоже самое, что математик пишет 2 + 2 = 5, на вопрос продемонстрировать операцию сложения. Как говорится а что тут такого, мы же про знак плюс, а не правильность написанного действия.

а можно вопрос немного переиначу:
что делать, если такой человек уже принят? и он уже формирует архитектуру и выдает ТЗ и уверен, что он прав, и уверяет других, что так лучше?
и там уже не 2 + 2 = 5, там 2 + 2 = 'ЛучшийВмиреОтвет подбери себе сам и с музыкой'.

Комментарий от  

Олег Точенюк

  |  30 августа 2020, 21:22

а можно вопрос немного переиначу:
что делать, если такой человек уже принят? и он уже формирует архитектуру и выдает ТЗ и уверен, что он прав, и уверяет других, что так лучше?
и там уже не 2 + 2 = 5, там 2 + 2 = 'ЛучшийВмиреОтвет подбери себе сам и с музыкой'.

Ну выход то у тебя всегда есть, вроде крепостное право отменил давно уже :-) А так что ты с ним можешь сделать? Он же уже работает и вадает как я понимаю тебе ТЗ. Ну можешь делать так как считаешь нужным, некоторое время.

Комментарий от  

Бахытжан Тайлакбаев

  |  27 октября 2023, 10:40

Спасибо за статью!