Копирование организационной структуры

Всем привет!

Сегодня мы будем копировать организационную структуру. Например, ко мне пришла заявка на копирование одной шахты в другую. Без людей. Вроде бы все просто. Первым делом я зашел в 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 и переименовать названия оргединиц.

Копирование организационной структуры: 5 комментариев

  1. yegorm

    А нельзя ли использовать путь анализа, не содержащий P, для того же эффекта?

  2. VirVit Автор записи

    Нельзя, к сожалению. Система все равно выбирает соединения с P 🙂

  3. Timon

    Добрый день.

    Спасибо большое за вариант решения проблемы с копированием оргструктуры. Но только у меня есть проблемка: при выборе варианта плана Z-программа (так же как и основная) требует чтобы я ввел целевой вариант плана.

    Подскажите плз как можно решить эту проблему, т.к. ни один из существующих вариантов не подходит 🙁

  4. VirVit Автор записи

    Не совсем понял в чем проблема. Если его не нужно вводить по каким-то причинам, то надо посмотреть, какой селекционный экран стоит в атрибутах программы (SE38-attributes-HR report category).

Добавить комментарий