Сегодня мы будем выполнять копирование организационной структуру. Например, ко мне пришла заявка на копирование одной шахты в другую. Без людей. Вроде бы все просто. Первым делом я зашел в PPOME и попробовал скопировать оргединицу «Шахта 1» в «Шахта 2». Система умная — скопировала. Только без подчиненных объектов. Тут-то приключения и начались. Помня о некоторой стандартной программе для копирования объектов организационного менеджмента, я пошел по меню искать желаемое. И нашел! Программа RHCOPYSTRUCT, транзакция RE_RHCOPYSTRUCT. И она тоже работает! За одним исключением.

Гадким исключением. Система выбирает все, включая самую последнюю связь S-P, то есть меняет первый инфотип у людей. А нам нужно скопировать только скелет структуры, чтобы затем его поменять и перевести людей. В результате исследования интернета и системы мне не удалось найти ни одного простого способа решить эту задачу. Пришлось капельку сломать программу RHCOPYSTRUCT. Итак, копируем программу в свою Z*. И меняем несколько строчек:

Добавляем параметр на селекционный экран.
SELECT-OPTIONS: PEX1001 FOR P1001-SCLAS.

В районе строчки 213 находим кусочек текста и добавляем проверку:
CALL FUNCTION ‘RH_READ_INFTY’
EXPORTING
AUTHORITY = ‘DISP’
INFTY = RITU_INFTY
ISTAT = PC-ISTAT
INFTB = 0 » Note 740546
TABLES
INNNN = INFTY_TAB
OBJECTS = OBJEC_INNN
EXCEPTIONS
ALL_INFTY_WITH_SUBTY = 1
NOTHING_FOUND = 2
NO_OBJECTS = 3
WRONG_CONDITION = 4
OTHERS = 5
.
*IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.

LOOP AT INFTY_TAB.
* Für die Verknüpfungen müssen noch SOBID und VARYF umgesetzt werden
IF INFTY_TAB-INFTY EQ ‘1001’.
» VirVit
» 04/11/13
» Delete all relations to connected objects from selection screen param PEX1001
IF INFTY_TAB-VARYF(2) IN PEX1001.
DELETE INFTY_TAB.
CONTINUE.
ENDIF.

Все!

Теперь можно запустить программу, а в созданном параметре выбора указать, связи с какими объектами нам не нужны. В нашем случае с объектом P. Путь анализа я использовал O_S_P_O.

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