Прямая запись в таблицы SAP через SE16N_INTERFACE или кража фаворитов

от автора

В работе консультанта ERP-системы SAP часто возникает желание исправить какое-либо значение в таблице напрямую. Это желание возникает, как правило, в трех случаях или от лени сторнирования (удаления) документов, или от незнания процесса, или, наоборот, от прекрасного понимая процессов, связей таблиц и возможных последствиях такого вмешательства в базу данных. Хотя здесь я забыл указать ещё один случай – из-за глупости, но искренне верю, что таких консультантов единицы.

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

Подкатом рассказ не о том, как я крал фавориты, а пример прямой записи в таблицы.

Определим таблицу, требующую редактирования

У каждого консультанта есть свои рычаги для поиска имени нужной таблицы. Кто-то использует F1, кто-то гуглит, а профи помнят их наизусть(шутка конечно). В данном разделе я не буду описывать способы как искать нужные таблицы, просто сообщу, что писать мы будем в таблицу SMEN_BUFFC. Именно она хранит фавориты пользователя.

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

Функциональный модуль

Запускаем транзакцию SE37 «ABAP-функциональные модули» и выполняем ФМ SE16N_INTERFACE.

В самой ФМке нужно только написать имя нашей таблицы SMEN_BUFFC и поставить «Х» напротив I_EDIT.

Запускаем нашу ФМку.

Ты ещё ничего не сделал. Есть шанс остановиться

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

Добавляем, удаляем, изменяем

В результате работы ФМки у нас открывается наша таблица на редактирование. Здесь можно добавлять, удалять строки или корректировать значения.
В итоге я просто взял все фавориты пользователя из таблицы SMEN_BUFFC и вставил их в эту же таблицу, но предварительно изменив логин на свой.

Не пугайся, консультант, все это я проделывал не в продуктиве, а на домашнем сервере. Ведь после того как получил хорошо структурированные транзакции, я и их просто выгрузил в локальный файл и загрузил в нужной системе.

Эпилог

Есть и другие способы править таблицы, которые могут быть проще, но в моей истории я пользовался ФМкой SE16N_INTERFACE.
Как я и говорил в начале, все можно было сделать намного быстрее, а главное безопаснее, но это было бы не интересно.

ссылка на оригинал статьи http://habrahabr.ru/post/215833/