Текущее время: Сб, июн 21 2025, 09:21

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Виртуальные признаки и показатели
СообщениеДобавлено: Чт, апр 27 2006, 14:32 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2005, 10:34
Сообщения: 99
Откуда: Мытищи
Коллеги, может у кого есть опыт или инфа по созданию и использованию виртуальных показателей и признаков в отчетах. У меня есть дока "BW: Virtual characteristics and key figures in Reporting". Но чет там ничего толком не описано.
Спасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 15:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
Ну тут достаточно все просто

1. создаем проект в CMOD
2. присваиваем расширение RSR00002
3. в компоненте EXIT_SAPMRSRU_001 проваливаемся в по двойному клику ZXRSRU02. здесь определяем те показатели и характеристики, которые будут обрабатываться в расширении. дял каждого инфокуба, которые подается в расширение в переменной I_S_RKB1D-INFOCUBE, надо определить режимы для каждй характеристики и показателя и RKE_C_MODE-READ (если характеристика будет считываться) или записи – параметр RRKE_C_MODE-NO_SELECTION и добавить в таблицу E_T_CHANM, показатели – в E_T_KYFNM
4. se80 - группа функций XRSR, инклюд ZXRSRTOP. собственно здесь пишется логика формирования тех признаков и показателей ,определенных на предыдущем шаге.

Вот в общем то и все.

проваливаться можно при выполнении отчета ,.если поставить break

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 27 2006, 16:56 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2005, 10:34
Сообщения: 99
Откуда: Мытищи
Спасибо, все правильно
Но я это все уже сделал, причем когда тестировал дописал в мастерданные признака всякие разные ненужные значения :D , но это неважно - разработка.
Но вот как ЭТО можно использовать? я так понял, что используя virtual kf можно подменить логику запроса или что-то в этом роде.
Задача была следующая: есть признак компания и группа компаний.
В отчете на мульте в строках лежит компания с иерархией, но также требуется ограничивать показатели значением группы в соответствии со значением компании. Т.е. можно конечно сделать структуру, где поставить ограничение по компании и группе в каждой строке, но это негибко. Менять что-нить в логике - не наш случай.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 28 2006, 08:11 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, июн 04 2005, 09:01
Сообщения: 88
Откуда: Kuba
2 vpu - скинь pls доку в личку, чтот интересно стало. Буду благодарен!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 28 2006, 13:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Насчет доки присоединяюсь.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 28 2006, 14:15 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2005, 10:34
Сообщения: 99
Откуда: Мытищи
BW: Virtual characteristics and key figures in Reporting

With this enhancement, you can define and evaluate user-specific virtual characteristics and key figures.

Components

The components for the enhancement are the function modules EXIT_SAPMRSRU_001 and EXIT_SAPMRSRU_999.

Using enhancement 001

You must firstly define the characteristics, or key figures within the InfoCube.

You deposit the customer-specific code in include reports. The include ZXRSRU02 is intended for function module EXIT_SAPMRSRU_001. In this include, the fields still to be processed must be listed. The name of a characteristic in field CHANM and of the processing mode in the field MODE is located in the table E_T_CHANM. Characteristics can either be processed reading (constant RRKE_C_MODE-READ) or writing (constant RRKE_C_MODE-NO_SELECTION). Table E_T_KYFNM contains the name for the key figures to be processed.

In the include ZXRSRTOP, a global variable must be created for each InfoCube for each characteristic. Field information for the structure to be changed is stored in these variables. The name of the variables is formed from the prefix G_POS_, the name of the InfoCube,_ and the name of the InfoObject all together.

In the include ZXRSRZZZ, a form (routine) must be created for every InfoCube. The name of this form must be made up of USER_ and the technical name of the InfoCube. The specific code for the virtual characteristics, or key figures, for this InfoCube is stored in this form. The individuals fields of the structure C_S_DATA to be changed are accessed using field symbols.

You should note that the data records transferred can be on a different aggregation level depending on read procedure and drilldown. Moreover, compound information is not automatically changed with compounded characteristics after changing a higher-level characteristic. In addition, the compound characteristic must also be defined in the mode RRKE_C_MODE-NO_SELECTION.

Furthermore, the fiscal year (0FISCYEAR), the fiscal year period (0FISCPER) and the fiscal year variant (0FISCVARNT) cannot be read or changed in the enhancement.

Using enhancement 999

Enhancement 999 may not be changed. Calling up serves to update information via the structure C_S_DATA. This functionality is completely taken over by form USER_INIT_GLOBALS.

Example

InfoCube DEMOCUBE has the characteristic PRODUCT PRICE_TP and the key figure ACT_PRICE and QUANTITY. In the enhancement, the product from the current price for PRODUCT and the key figure QUANTITY should be determined. If successful, the characteristic PRICE_TP should contain the characteristic value '1'.

The include ZXRSRU02: Definition

***INCLUDE ZXRSRU02
DATA: L_S_CHANM TYPE RRKE_S_CHANM.
CASE I_S_RKB1D-INFOCUBE.
WHEN 'DEMOCUBE'.
L_S_CHANM-CHANM = 'PRODUCT'.
L_S_CHANM-MODE = RRKE_C_MODE-READ.
APPEND L_S_CHANM TO E_T_CHANM.
L_S_CHANM-CHANM = 'PRICE_TP'.
L_S_CHANM-MODE = RRKE_C_MODE-NO_SELETION.
APPEND L_S_CHANM TO E_T_CHANM.
APPEND 'ACT_PRICE' TO E_T_KYFNM.
APPEND 'QUANTITY' TO E_T_KYFNM.
ENDCASE.

The include ZXRSRTOP: global data
***INCLUDE ZXRSRTOP .

DATA: G_POS_DEMOCUBE_PRODUCT TYPE I.
DATA: G_POS_DEMOCUBE_PRICE_TP TYPE I.
DATA: G_POS_DEMOCUBE_ACT_PRICE TYPE I.
DATA: G_POS_DEMOCUBE_QUANTITY TYPE I.

Das Include ZXRSRZZZ: Changing the data

***INCLUDE ZXRSRZZZ .

FORM USER_DEMOCUBE USING I_S_RKB1D TYPE RSR_S_RKB1D
CHANGING C_S_DATA TYPE ANY.

FIELD-SYMBOLS <L_PRODUCT>.
FIELD-SYMBOLS <L_PRICE_TP>.
FIELD-SYMBOLS <L_ACT_PRICE>.
FIELD-SYMBOLS <L_QUANTITY>.

ASSIGN COMPONENT G_POS_DEMOCUBE_PRODUCT
OF STRUCTURE C_S_DATA TO <L_PRODUCT>.

ASSIGN COMPONENT G_POS_DEMOCUBE_PRICE_TP
OF STRUCTURE C_S_DATA TO <L_PRICE_TP>.

ASSIGN COMPONENT G_POS_DEMOCUBE_ACT_PRICE
OF STRUCTURE C_S_DATA TO <L_ACT_PRICE>.

ASSIGN COMPONENT G_POS_DEMOCUBE_QUANTITY
OF STRUCTURE C_S_DATA TO <L_QUANTITY>.


* Routine to get the price
* PERFORM GET_PRICE USING <L_PRODUCT>
* CHANGING <L_ACT_PRICE>.

IF <L_ACT_PRICE> GT 0.
<L_ACT_PRICE> = <L_ACT_PRICE> * <L_QUANTITY>.
<L_PRICE_TP> = '1'.
ENDIF.

ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 13 2007, 17:41 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Коллеги. Кому удалось победить badi rsr_olap_badi которая также обеспечивает обработку виртуальных признаков и показателей? Что-то у меня не вызывается она. Как бороть?

Вопрос следом. Badi и ZXRSRU02 работают только на кубиках, или также на ODS и инфо-объектах, которые отмечены как инфо-провайдеры ?

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 14 2007, 08:04 
Специалист
Специалист

Зарегистрирован:
Пт, апр 13 2007, 17:15
Сообщения: 225
Zharik написал(а):
Коллеги. Кому удалось победить badi rsr_olap_badi которая также обеспечивает обработку виртуальных признаков и показателей? Что-то у меня не вызывается она. Как бороть?

Вопрос следом. Badi и ZXRSRU02 работают только на кубиках, или также на ODS и инфо-объектах, которые отмечены как инфо-провайдеры ?

Я только BADI и использовал, работает на ура с любым провайдером.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 14 2007, 20:17 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Цитата:
BW: Virtual characteristics and key figures in Reporting ....

В этом примере нормально меняются показатели, но для признаков там на входе структура и на строке, подобной <L_PRICE_TP> = '1'. BEx dываливается с ошибкой про переприсвоение структур. А внутри этой структуры огрызки данных под псевдонимами. Как это разрулить. Запись по аналогии <L_PRICE_TP>-aaa = 1. не компилится.

Как изменять признаки?

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 15 2007, 09:00 
Специалист
Специалист

Зарегистрирован:
Пн, июл 18 2005, 12:10
Сообщения: 169
Пол: Мужской
EvgenySA написал(а):
Я только BADI и использовал, работает на ура с любым провайдером.

+1
никаких проблем не нашел.
пробовал и через расширения, но это более сложный путь.
так что только BADI
информации на sdn навалом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 15 2007, 09:50 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Коллеги. Succes story и на sap.com достаточно. Интересует именно эта проблема.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 17 2007, 08:43 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
badi не заработала из-за глюков системы. Теперь всё ок.
Но UserExit мне так полностью и не сдались :D
Всем спасибо.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 27 2008, 13:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Кто-нить может подсказать в какой момент присваиваются значения переменным
DATA: G_POS_DEMOCUBE_PRODUCT TYPE I.
DATA: G_POS_DEMOCUBE_PRICE_TP TYPE I.
DATA: G_POS_DEMOCUBE_ACT_PRICE TYPE I.
DATA: G_POS_DEMOCUBE_QUANTITY TYPE I.

или для бади это атрибуты класса
P_CHA_... и P_KYF...
???

У нас почему-то когда начинает работать метод calculate они все равны нулю. Естественно дальнейший расчет не имеет смысла.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 27 2008, 17:39 
Специалист
Специалист

Зарегистрирован:
Пт, апр 13 2007, 17:15
Сообщения: 225
Вот такой код должен быть.
Code:
METHOD if_ex_rsr_olap_badi~initialize.
  DATA:
    l_global_name TYPE string.
  FIELD-SYMBOLS:
    <l_global>    TYPE i,
    <l_s_sfc>     TYPE rrkg_s_sfc,
    <l_s_sfk>     TYPE rrkg_s_sfk.


  CLASS cl_exm_im_rsr_olap_badi DEFINITION LOAD.

  LOOP AT i_th_sfc ASSIGNING <l_s_sfc> WHERE keyreturnnm IS NOT INITIAL.

    CONCATENATE 'P_CHA' <l_s_sfc>-chanm
        INTO l_global_name
        SEPARATED BY '_'.

    UNASSIGN <l_global>.
    ASSIGN (l_global_name) TO <l_global>.
    CHECK <l_global> IS ASSIGNED.
    <l_global> = cl_exm_im_rsr_olap_badi=>get_field_position_d(
                                       i_fieldnm = <l_s_sfc>-keyreturnnm
                                       i_s_data  = i_s_data ).
  ENDLOOP.

  LOOP AT i_th_sfk ASSIGNING <l_s_sfk>.

    CONCATENATE 'P_KYF' <l_s_sfk>-kyfnm
        INTO l_global_name
        SEPARATED BY '_'.

    UNASSIGN <l_global>.
    ASSIGN (l_global_name) TO <l_global>.
    CHECK <l_global> IS ASSIGNED.
    <l_global> = cl_exm_im_rsr_olap_badi=>get_field_position_d(
                                       i_fieldnm = <l_s_sfk>-kyfnm
                                       i_s_data  = i_s_data ).
  ENDLOOP.
ENDMETHOD.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 27 2008, 18:11 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Как показала практика использования виртуальных признаков/показателей, от них необходимо по-максимому избавляться.
Лучше расчет перенести на трансформации, иначе процесс формирования отчета будет становиться бесконечным с ростом числа данных.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB