Если необходимо добавить в кубик инфообъект (или удалить, заменить и т.д.) можно воспользоваться функцией ремоделинга. В данном случае мы будет добавлять характеристику времени – Календарная неделя в случае, когда в кубе есть только календарный день.
Запускаем транзакцию RSA1 находим нужный куб.
Нам нужно создать правило преобразования нашего куба. Вводим любое имя и жмем Create. Затем вводим описание правила.
Жмакаем кнопочку "добавить".
Затем вводим имя инфообъекта и измерение, куда мы будем его добавлять.
Поскольку неделю нам нужно будет высчитать из календарного дня выбираем Customer-exit, в котором мы опишем правило заполнения недели для уже имеющихся данных в кубе.
Так же можно выбрать константу или атрибут характеристики..
Customer-exit нужно сначала создать. Для этого открываем новое окно и запускаем транзакцию SE24.
Пишем имя класса в жмем Create.
В первом окошке выбираем, что создавать будет класс, а не интерфейс, затем заполняем описание класса.
Интерфейс у нашего класса будет IF_RSCNV_EXIT.
Переходим на вкладку методов и проваливаемся в _RSCNV_EXIT~EXIT.
Нам открывается окошко, в котором мы будем кодить.
<l_week> type any, <l_day> type any, <l_month> type any, <l_dimid> type any, <l_newfield> type any. "новая структура куба sid_day(10), week type KWEEK. "поскольку у нас в кубиках валяются не данные, а их идишники - тут будет некоторая пляска sid_day = <l_day>. "по идишнику определяем дату UNASSIGN <l_day>. "по дате определяем неделю CALL FUNCTION 'DATE_GET_WEEK' EXPORTING date = day IMPORTING week = week EXCEPTIONS date_invalid = 1 OTHERS = 2. "а теперь ищем идишник для недели CALL FUNCTION 'RRSI_VAL_SID_SINGLE_CONVERT' EXPORTING i_iobjnm = '0CALWEEK' i_chavl = WEEK IMPORTING e_sid = <l_newfield> EXCEPTIONS no_sid = 1 chavl_not_allowed = 2 chavl_not_figure = 3 chavl_not_plausible = 4 x_message = 5 interval_not_found = 6 foreign_lock = 7 inherited_error = 8 OTHERS = 9. UNASSIGN <l_s_old>.
Сохраняем метод и активируем класс. Все, наш Customer-exit готов.
Возвращаемся в предыдущее окно и пишем имя класса в поле Customer-exit.
Жмем ОК и сохраняем нашего правило преобразования.
Далее жмем кнопку Schedule и планируем преобразование куба. После отработки джоба наш куб будет преобразован.