Sapforum.Biz
Учет и отчетность => Контроллинг (CO) => Тема начата: themax от Апрель 28, 2016, 02:12:52 pm
-
Всем доброго времени суток!
Я заранее извиняюсь за то, что возможно не в той ветке пишу, но вопрос касается непосредственно групп спп элементов и мне подумалось что может быть есть какой то стандартный инструмент по массовому изменению содержимого групп СПП элементов, который я пока не нашёл. Т.е. мне надо массово удалить из группы большое количество СПП элементов. Делать это в ручную пользователи конечно же не хотят. Пытался делать с помощью SHDB, но там в самом коде ничего кроме группы не видно, т.е. нет поля, которое бы читало название самого СПП элемента. Может кто подскажет с чем это нужно есть?
-
Я заранее извиняюсь за то, что возможно не в той ветке пишу, но вопрос касается непосредственно групп спп элементов и мне подумалось что может быть есть какой то стандартный инструмент по массовому изменению содержимого групп СПП элементов, который я пока не нашёл. Т.е. мне надо массово удалить из группы большое количество СПП элементов. Делать это в ручную пользователи конечно же не хотят. Пытался делать с помощью SHDB, но там в самом коде ничего кроме группы не видно, т.е. нет поля, которое бы читало название самого СПП элемента. Может кто подскажет с чем это нужно есть?
Ну там транзакции старые, я бы сделал так, удалил бы все группы, это можно сделать через SHDB транзакция KJH2 - Изменить, а дальше создав бы новые группы через CJSG - Генерировать.
-
Т.е. Вы мне предлагаете грохнуть все группы, а потом с помощью CJSG создать допустим с теми же именами группы новые, но добавить в них те спп элементы которые необходимы?! Идея конечно интересная. Если других способов нет придётся наверное так и делать, а то СПП элементов в группах очень много, в ручную запаришься удалять. Жаль что нет возможности пакетником отсоединить СПП элементы от той или иной группы.
-
Т.е. Вы мне предлагаете грохнуть все группы, а потом с помощью CJSG создать допустим с теми же именами группы новые, но добавить в них те спп элементы которые необходимы?! Идея конечно интересная.
Ну грохнуть через пакетник и создать тоже через пакетник.
СПП элементов в группах очень много, в ручную запаришься удалять. Жаль что нет возможности пакетником отсоединить СПП элементы от той или иной группы.
Ну на транзакцию изменения пакетник к сожалению сделать не реально похоже. Но, если у вас есть время и желание потом поделится, то для ведения групп есть функциональный модуль, который активно используется при ведении групп:
*-set hierarchy maintenance
CALL FUNCTION 'K_SET_HIERARCHY_MAINTENANCE'
EXPORTING
e_setid = l_setid
e_co_area = l_kokrs
e_class = l_class
e_mode = l_mode
EXCEPTIONS
not_available_for_for_setclass = 1
convert_error = 2
no_chart_of_accounts = 3
no_controlling_area = 4
set_not_found = 5
illegal_field_replacement = 6
illegal_table_replacement = 7
fm_raise = 8
OTHERS = 9.
Так что если разберетесь и расскажете как, будет способ программного изменения групп. Если вкратце то надо пройтись в отладке там при нажатии кнопки сохранения вызывается модуль:
CALL FUNCTION 'K_HIERARCHY_UPDATE'
EXPORTING
E_CLASS = L_CLASS
E_KOKRS = GLOBAL_KOKRS
E_KTOPL = GLOBAL_KTOPL
E_INFO = GLOBAL_HIER_INFO
E_MODE = GLOBAL_MODE
TABLES
T_NODES = GLOBAL_NODES
T_VALUES = GLOBAL_VALUES
T_FORMULA = GLOBAL_FORMULA
T_FIELD_INFO = GLOBAL_FIELDINFO
T_ALESETS = GLOBAL_ALESETS
EXCEPTIONS
UPDATE_ERROR = 1
OTHERS = 2.
В общем идем в группу функций: KKHI и там похоже надо посмотреть порядок вызова модулей, по факту для упрощения похоже делаем чтение структуры K_HIERARCHY_TABLES_READ - Einlesen der Hierarchietabellen für die Gruppenpflege , удаляем лишнее, дополняем нужное и вызываем модуль обновления. Ну за день/два вроде как не проблема написать обработчик.
-
Хорошая транзакция CJSG, которую Вы мне по советовали. Она не только позволяет создавать группы, но и изменять их содержимое. С её помощью я втянул текстовый файл, который содержал список СПП элементов и он изменил группу. Теперь она содержит только те СПП элементы, которые я указал в текстовом файлике. Спасибо Uukrul за подсказку.