Текущее время: Чт, авг 21 2025, 01:36

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Итоги в BEx
СообщениеДобавлено: Пт, фев 13 2009, 07:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
Добрый день, SAPфорум.RU.
Есть следующая проблема, при расчете Результатов в формуле.
Допустим, есть инфопровайдер:
Code:
  DOC_ID  CURR  AMOUNT PROV
  DOC_1    USD    100   10%
  DOC_2    USD    200   5%
  DOC_3    USD    300   20% 


Есть формула (ZFORMULA), которая рассчитывается как ZFORMULA = AMOUNT*PROV*0.01

В отчете "строю" по виду валют и получаю результат:
Code:
CURR    AMT  ZFORMULA
USD      600   210

То есть, формула срабатывает так: ZFORMULA = (100 + 200 + 300) * (0.1 + 0.05 + 0.2) = (600)*(0.35) = 210
Хотя должно быть:
Code:
CURR    AMT  ZFORMULA
USD      600   80

Т.е. ZFORMULA = 100*0.1 + 200*0.05 + 300*0.2 = 10 + 10 + 60 = 80.
Проблема распространенная, подскажите решение?
Копал в сторону "Расчет до агрегации" и "Расчет после агрегации". Что-то не получилось :oops:
Reference to Characteristic (Constant 1) ЧТО ЗА ЗВЕРЬ ТАКОЙ? Где он полезен? (В пункте 2, написано, но что-то не догнал)
Вот что пишут:
http://help.sap.com/saphelp_nw04/helpda ... ameset.htm
1. If you choose to calculate the formula before aggregation, this usually leads to bad performance as a large amount of data (single records) has to be calculated. Often in formula calculations, the single record information for only one or two specific characteristics is required and the rest of the InfoProvider data can be aggregated.

2. Therefore, we recommend that you use a formula variable that is replaced with the attribute Reference to Characteristic (Constant 1). Using this attribute, the reference to such a characteristic, which is not to be aggregated, can be created. The attribute Reference to Characteristic (Constant 1) is available for each characteristic.

If you use such a variable in a formula (instead of in a calculated key figure), it is replaced with a 1 but this has no effect on the aggregation behavior since formulas are always calculated after aggregation.
Выражение, что формулы ВСЕГДА расчитываются после агрегации, наталкивает на плохие мысли :) Или все таки можно решить эту проблему?

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Итоги в BEx
СообщениеДобавлено: Чт, фев 19 2009, 17:58 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, июн 21 2006, 13:11
Сообщения: 38
А почему вы храните именно процент (PROV)? Храните вместо него рассчитанное значение ZFORMULA. А процент вы вычислите всегда, его как раз и имеет смысл рассчитываеть после агрегации.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Итоги в BEx
СообщениеДобавлено: Пт, фев 20 2009, 08:01 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
Добрый день, Alessandro.
Хранить рассчитанное значение ZFORMULA не совсем хорошее решение в моей ситуации, в иных случаях я уже использовал этот подход (предварительный расчет) (Советы Кимбала очень полезны). Здесь проблема состоит в том, что отчет строится на Мульти-провайдере. Данные в инфопровайдер содержащий показатель PROV загружаются раз в месяц.
Причем часто бывают случаи, что он рассчитываются тогда, когда уже загружены показатели в другом инфопровайдере, содержащего показатель AMOUNT.
К какой ситуации это приводит, если рассчитывать ZFORMULA при загрузке? - это приведет к тому, что необходимо из-за показателя PROV перегружать данные для рассчета ZFORMULA. (Показатель AMOUNT изменяется каждый день). Перегрузка данных для клиентов во время рабочего дня недопустима.

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Последний раз редактировалось BORLAND Пт, фев 20 2009, 12:08, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Итоги в BEx
СообщениеДобавлено: Пт, фев 20 2009, 11:16 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, июн 21 2006, 13:11
Сообщения: 38
Приветствую, BORLAND.
Вероятно, может получиться решить вашу проблему следующим образом (проверить самостоятельно, к сожалению, в данный момент возможности нет):
1. Для показателя PROV настроить спец. агрегацию, отличную от Сум, скажем, Мин, со ссылочным признаком DOC_ID. При этом при обработке запроса OLAP-процессор будет обрабатывать массив данных в развертке по DOC_ID независимо от развертки в запросе.
2. Создать виртуальный показатель для расчета ZFORMULA. Соответственно, значение ZFORMULA будет рассчитано в разрезе DOC_ID.
3. При использовании в отчете данного виртуального показателя даже без развертки по DOC_ID, рассчитанные значения ZFORMULA в разрезе DOC_ID будут просуммированы, что и требуется.
Если даже этот подход сработает, то могут быть проблемы с производительностью при большом количестве DOC_ID.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Итоги в BEx
СообщениеДобавлено: Пт, фев 20 2009, 12:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
Alessandro написал(а):
Приветствую, BORLAND.
Вероятно, может получиться решить вашу проблему следующим образом (проверить самостоятельно, к сожалению, в данный момент возможности нет):
1. Для показателя PROV настроить спец. агрегацию, отличную от Сум, скажем, Мин, со ссылочным признаком DOC_ID. При этом при обработке запроса OLAP-процессор будет обрабатывать массив данных в развертке по DOC_ID независимо от развертки в запросе.
2. Создать виртуальный показатель для расчета ZFORMULA. Соответственно, значение ZFORMULA будет рассчитано в разрезе DOC_ID.
3. При использовании в отчете данного виртуального показателя даже без развертки по DOC_ID, рассчитанные значения ZFORMULA в разрезе DOC_ID будут просуммированы, что и требуется.
Если даже этот подход сработает, то могут быть проблемы с производительностью при большом количестве DOC_ID.

Спасибо за совет. Да решения посредством виртуального показателя уже аппробировались, некоторые затруднения возникли в связи с тем, что используется Мультипровайдер. Касательно производительности, вопрос актуален, поскольку есть удаленные филиалы и параметры времени и прозводительности очень важны.
Как руки дойдут, будем разбираться с поведением на мультипровайдере. Здесь на сайте есть тема: Виртуальные признаки и показатели от VPU.
Также пригодились материалы:
Using Virtual Key Figure / Characteristics in an InfoSet ;
Implementing Virtual Key Figure/ Characteristics Makes Query More Dynamic.
How to… Indentify ‘Comparable’ Results within a Query
How To... work around the ‘Single Key Date’ limitation for time dependent master data

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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