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

«Ко­рре­кти­ро­вка таблиц базы данных с помощью ABAP»
Олег Точенюк:
Андрей а вам никто никогда не говорил, что обновлять таблицы базы данных SAP категорически запрещено, независимо от того чем обусловлены такие желания. Свои Z-таблицы, да сколько угодно, но......

База знаний

Вы можете подписаться на эту колонки этого автора, если авторизируетесь или зарегистрируетесь

Запись каталога объекта: изменение системы оригинала

05 декабря 2016, 10:20

Как я уже упоминал, в SAP системе существует свой словарь данных (ABAP Dictionary), который не стоит путать со словарем базы данных. Все объекты ABAP словаря имеют свою запись, которая называется запись каталога объекта. Эти записи в SAP системе хранятся в таблице TADIR (рис. 1). Даже сама таблица TADIR имеет запись о самой себе (рис. 2).


Рис. 1. Запись каталога объекта программы Z_DELETE_FROM_DEVACCESS.


Рис. 2. Запись каталога объекта таблицы TADIR.

Объект в SAP системе имеет ряд основных атрибутов: 

  • пакет разработки,
  • ответственный,
  • система оригинала.

Пакет разработок или, как его называли раньше, класс разработок, это каталог, в котором объединены программы/экраны/таблицы и т.д. одного функционального назначения. Пакеты могут быть вложенными и представлять собой большое дерево разработок, объединенных одним функциональным модулем, например, HR. Ведение пакетов осуществляется в транзакции SE80 (рис. 3).


Рис. 3. Пример пакета разработок.

У каждого пакета разработок есть уровень переносов, который используется в транспортной системе. Таким образом, при деблокировании запроса, SAP система по принадлежности объекта к пакету понимает в какую целевую систему направить запрос на импорт.

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

Попытка изменить объект в системе отличной от системы оригинала приведет к выдаче соответствующего сообщения и ограничению на внесение изменений (рис. 4). Включить такой объект в типичный запрос на перенос инструментальных средств не в системе оригинала тоже не получится.


Рис. 4. Попытка внести изменения в программу с другой системой оригинала.

Как вы помните, любой объект в SAP системе может находится в двух областях:

  • область имен SAP (или так называемые, стандартные объекты),
  • область имен клиента (объекты чьи имена начинаются на Z* или Y*).

У объектов из области имен SAP в качестве ответственного и системы оригинала всегда значится "SAP" (рис. 5).


Рис. 5. Пример записи каталога объекта из области имен SAP.

Итак, защитные механизмы это хорошо, но иногда они мешают работать. Запись каталога объекта можно изменить, воспользовавшись транзакцией SE03. На начальном экране необходимо выбрать пункт "Изменение записей каталога объектов" и нажать "Выполнить" (или F8) (рис. 6).


Рис. 6. Начальный экран транзакции SE03.

На следующем экране необходимо выбрать реквизиты нужного объекта и снова нажать "Выполнить" (или F8) (рис. 7). Напоминаю еще раз, что реквизиты объектов можно найти в таблице TADIR (рис. 1).


Рис. 7. Ввод реквизитов объекта.

На следующем экране система покажет найденные объекты и, для вызова диалога изменения записи каталога объекта необходимо выделить строку с объектом и нажать кнопку "Каталог объектов" на верхней панели (рис. 8).


Рис. 8. Изменение записи каталога объекта в транзакции SE03.

В диалоговом окне можно поменять все основные атрибуты объекта - пакет, ответственного или систему оригинала (рис. 9).


Рис. 9. Изменение атрибутов записи каталога объекта.

Изменить систему оригинала бывает необходимо, если объект был импортирован из другой системы, но при этом планируется его последующее изменение в текущей системе. Или при восстановлении утерянного объекта из другой системы трёх-системного ландшафта (из QAS в DEV, например).

Стоит еще добавить, что просмотреть запись каталога объекта можно в транзакциях разработчика, например, SE38/SE11, выбрав пункт меню "Перейти к -> Запись каталога объекта" (рис. 10). Но изменить все атрибуты в них нельзя.


Рис. 10. Просмотр записи каталога объекта в транзакциях SE38/SE11.

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

Олег Точенюк (Рейтинг: 10291) 12:58, 06 декабря 2016

Ну оно ручками как-то, если вам надо сменить систему оригинала для сотни, другой объектов, короче не кошерно будет. Да и устанете. Поэтому есть такой вот отчетик: RSWBO_OBJCAT. Читаем документацию по его использованию и работаем.
 
======================================================================
Short text
Change Object Directory Entries
 
Purpose
This program enables you to change local and global object directory entries.
 
It is aimed particularly at cleaning up inconsistencies between local and global object directory entries.
 
Caution
This program can cause inconsistencies if used incorrectly.
The changes are not recorded. Include the changed objects manually in a request, and then transport the request.
Description
Select objects on the selection screen by entering a request or specifying the attributes of the object directory.
 
You then see a list of objects with the local original system, the global original system, the person responsible, and the package. You now have the option of selecting the objects, and copying the local original system to the global object directory, or copying the global object directory to the local original system.
 
Note the following:
Objects with the generation flag are not selected.
If the global original system is not filled, then there is no entry in the global object directory, and no entry can be included in the global object directory.
Objects from $ or T packages, or objects with generation flags are not included in the global object directory.
Prerequisites
You need administration authorization in the Transport Organizer area.
======================================================================
19:16, 06 декабря 2016

Вячеслав Шиболов (Рейтинг: 483)

Олег, для сотни да. Труднова-то.
Спасибо за комментарий
09:05, 29 декабря 2016

Руслан Бурхонов (Рейтинг: 26)

Для массового изменения системы оригинала скажем для всего пакета необходимо выделить выделить узел пакета (выделяться все объекты пакета) и набрать в поле для транзакций функциональный код MASS.
16:42, 04 января 2017

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

Если честно ничего не понял, где нужно выделить узел пакета с содержимым. Можно экран примера?
15:59, 09 февраля 2017

Руслан Бурхонов (Рейтинг: 26)

Если по скринам из статьи, то на рис.8 можно выбрать класс разработки Z001 (ставим курсор на узел и жмем на кнопку выделения узла(третья кнопка слева в тулбаре). Далее в поле для транзакций вводим слово MASS и жмем Enter. В принципе дальше уже все интуитивно понятно.
Таким образом можно выбирать любой узел дерева (всю систему, пакет и т.д.)
11:52, 13 февраля 2017

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

Ага понятно. Спасибо