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

«Ко­рре­кти­ро­вка таблиц базы данных с помощью ABAP»
Олег Точенюк:
Андрей а вам никто никогда не говорил, что обновлять таблицы базы данных SAP категорически запрещено, независимо от того чем обусловлены такие желания. Свои Z-таблицы, да сколько угодно, но......
«Тра­нза­кция SM02: сообщения в SAP системе»
Олег Башкатов:
С помощью ФМ TH_POPUP можно отправить сообщение конкретному пользователю :-)
«Практика освоения ABAP CDS для не­про­гра­мми­сто­в. Часть 1»
Михаил Вронский:
Большое спасибо за статью. Написана хорошим языком, даны правильные формулировки - с полнотой и логической последовательностью.

База знаний

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

6040
18

Преамбула

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

Ограниченный доступ

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

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

Иван Тремичев (Рейтинг: 54) 17:39, 12 марта 2019

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

Дмитрий Белан (Рейтинг: 704)

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

Олег Точенюк (Рейтинг: 11218)

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

Дмитрий Белан (Рейтинг: 704)

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

Олег Точенюк (Рейтинг: 11218)

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

Дмитрий Белан (Рейтинг: 704)

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

Александр Платушин (Рейтинг: 72) 22:29, 02 апреля 2019

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

Виктор Блок (Рейтинг: 16) 11:57, 10 июня 2020

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

Никита Калуцкий (Рейтинг: 139)

В верхний регистр если тип данных CHAR используете. Попробуйте SSTRING.
13:20, 03 июля 2020

Олег Точенюк (Рейтинг: 11218)

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

Олег Башкатов (Рейтинг: 8217)

Мне думается, что единственным корректным способом является переход от ALV-сетке к старому доброму List.
 
Делается так:
1) запускаем SE37, переходим по пути Утилиты -> Параметры настройки и ищем вкладку Построитель Функций
 

 
2) затем снимаем галку ALV-сетка: представление среды теста
 

 
3) затем снова запускаем тестовую среду в se37 и тогда уже видим старый экран и там нужно поставить галку "Прописная/строчная"
 

 
4) если же мы поставим эту галку в ново-улучшенной среде ALV, то там ALV экран не различает строчные буквы
 

Александр Носов (Рейтинг: 458) 16:08, 03 августа 2020

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

Олег Точенюк (Рейтинг: 11218)

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

Александр Носов (Рейтинг: 458)

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

Олег Точенюк (Рейтинг: 11218)

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

Олег Точенюк (Рейтинг: 11218)

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

Олег Башкатов (Рейтинг: 8217)

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

Олег Точенюк (Рейтинг: 11218)

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

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП»