Sapforum.Biz

Учет и отчетность => Контроллинг (CO) => Тема начата: themax от Апрель 28, 2016, 02:12:52 pm

Название: Пакетный ввод изменения групп СПП элементов.
Отправлено: themax от Апрель 28, 2016, 02:12:52 pm
Всем доброго времени суток!

Я заранее извиняюсь за то, что возможно не в той ветке пишу, но вопрос касается непосредственно групп спп элементов и мне подумалось что может быть есть какой то стандартный инструмент по массовому изменению содержимого групп СПП элементов, который я пока не нашёл. Т.е. мне надо массово удалить из группы большое количество СПП элементов. Делать это в ручную пользователи конечно же не хотят. Пытался делать с помощью SHDB, но там в самом коде ничего кроме группы не видно, т.е. нет поля, которое бы читало название самого СПП элемента. Может кто подскажет с чем это нужно есть?
Название: Re: Пакетный ввод изменения групп СПП элементов.
Отправлено: Uukrul от Апрель 29, 2016, 11:26:49 am
You are not allowed to view links. Register or Login
Я заранее извиняюсь за то, что возможно не в той ветке пишу, но вопрос касается непосредственно групп спп элементов и мне подумалось что может быть есть какой то стандартный инструмент по массовому изменению содержимого групп СПП элементов, который я пока не нашёл. Т.е. мне надо массово удалить из группы большое количество СПП элементов. Делать это в ручную пользователи конечно же не хотят. Пытался делать с помощью SHDB, но там в самом коде ничего кроме группы не видно, т.е. нет поля, которое бы читало название самого СПП элемента. Может кто подскажет с чем это нужно есть?
Ну там транзакции старые, я бы сделал так, удалил бы все группы, это можно сделать через SHDB транзакция KJH2 - Изменить, а дальше создав бы новые группы через CJSG - Генерировать.
Название: Re: Пакетный ввод изменения групп СПП элементов.
Отправлено: themax от Апрель 29, 2016, 12:31:13 pm
Т.е. Вы  мне предлагаете грохнуть все группы, а потом с помощью CJSG создать допустим с теми же именами группы новые, но добавить в них те спп элементы которые необходимы?! Идея конечно интересная. Если других способов нет придётся наверное так и делать, а то СПП элементов в группах очень много, в ручную запаришься удалять. Жаль что нет возможности пакетником отсоединить СПП элементы от той или иной группы.
Название: Re: Пакетный ввод изменения групп СПП элементов.
Отправлено: Uukrul от Апрель 29, 2016, 01:04:14 pm
You are not allowed to view links. Register or Login
Т.е. Вы  мне предлагаете грохнуть все группы, а потом с помощью CJSG создать допустим с теми же именами группы новые, но добавить в них те спп элементы которые необходимы?! Идея конечно интересная.
Ну грохнуть через пакетник и создать тоже через пакетник.
You are not allowed to view links. Register or Login
СПП элементов в группах очень много, в ручную запаришься удалять. Жаль что нет возможности пакетником отсоединить СПП элементы от той или иной группы.
Ну на транзакцию изменения пакетник к сожалению сделать не реально похоже. Но, если у вас есть время и желание потом поделится, то для ведения групп есть функциональный модуль, который активно используется при ведении групп:
Код: You are not allowed to view links. Register or Login
*-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.
Так что если разберетесь и расскажете как, будет способ программного изменения групп. Если вкратце то надо пройтись в отладке там при нажатии кнопки сохранения вызывается модуль:
Код: You are not allowed to view links. Register or Login
  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 , удаляем лишнее, дополняем нужное и вызываем модуль обновления. Ну за день/два вроде как не проблема написать обработчик.
Название: Re: Пакетный ввод изменения групп СПП элементов.
Отправлено: themax от Май 05, 2016, 08:36:22 am
Хорошая транзакция CJSG, которую Вы мне по советовали. Она не только позволяет создавать группы, но и изменять их содержимое. С её помощью я втянул текстовый файл, который содержал список СПП элементов и он изменил группу. Теперь она содержит только те СПП элементы, которые я указал в текстовом файлике. Спасибо Uukrul за подсказку.