Текущее время: Ср, июн 25 2025, 18:24

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: FOX (Formula Extension)
СообщениеДобавлено: Пн, фев 09 2009, 15:10 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Всем привет. На настоящий момент у меня неожиданно возникла суровая необходимость изучит язык FOX (Formula Extension) для IP BI.

По нему есть курс 470. Там тема описана весьма куцо (два примера, всё).

Есть ли какой-нибудь отдельный мануал, в котором и примеров было бы поболее, и разобраны они как-то по подробнее? Если даёте ссылки на help.sap.com, то, пожалйста, давайте полные ссылки (там сейчас не работает поиск).

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Пн, фев 09 2009, 15:13 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 30 2007, 17:10
Сообщения: 488
Tips and tricks for FOX formulas in BW-BPS

_________________
Карма - это суперпозиция граблей, на которые мы уже успели наступить, но которые еще не долетели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Пн, фев 09 2009, 15:44 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Прочёл, спасибо, хороший документ.

У меня есть еще пара вопросов. Во-первых, есть ли в этом языке программирования некий аналог массивов из переменных.
Во-вторых, в цикле FOREACH есть ли гарантия, что данные будут обрабатываться в порядке возрастания признака?

В кратце, для в связи с чем такая необходимость. Нужно реализовать свёртку:

Code:
kf2[year]=kf1[year-2]*a1+kf1[year-1]*a2+kf1[year]*a3+kf1[year+1]*a4+kf1[year+2]*a5


где year пробегает значения по кубу, а a1 ... a5 - константы. При этом, если для "год минус два" или "год плюс два" не определены данные, это должно обрабатываться особо.

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Пн, фев 09 2009, 15:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
Yanvladimirovich написал(а):
Прочёл, спасибо, хороший документ.

У меня есть еще пара вопросов. Во-первых, есть ли в этом языке программирования некий аналог массивов из переменных.

нет
Цитата:
Во-вторых, в цикле FOREACH есть ли гарантия, что данные будут обрабатываться в порядке возрастания признака?

нет

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Вт, фев 10 2009, 11:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 30 2007, 17:10
Сообщения: 488
BW - ник написал:
Цитата:
Во-вторых, в цикле FOREACH есть ли гарантия, что данные будут обрабатываться в порядке возрастания признака?

нет

Ну это вы поспешили так заявить :) Он все-таки сортирует набор значений признака (которые находятся в полях для изменения) и в FOREACH он пробегает доступные значения все-таки по порядку, согласно типу данных инфо-объекта (аналогично действию ABAP оператору SORT).

Но касательно реализации свертки: если у вас подразумевается год, как стандартный объект 0CALYEAR, то вам следует использовать оператор TMVL, который делает операцию сдвига времени.

_________________
Карма - это суперпозиция граблей, на которые мы уже успели наступить, но которые еще не долетели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Вт, фев 10 2009, 11:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
Soulsurfer написал(а):
Ну это вы поспешили так заявить :) Он все-таки сортирует набор значений признака (которые находятся в полях для изменения) и в FOREACH он пробегает доступные значения все-таки по порядку, согласно типу данных инфо-объекта (аналогично действию ABAP оператору SORT).


гарантии нет. Вопрос был - есть ли гарантия. Все на свой страх и риск. Закладываться на это не стоит

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Вт, фев 10 2009, 12:34 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, фев 16 2006, 15:46
Сообщения: 451
Откуда: Россия
Цитата:
Но касательно реализации свертки: если у вас подразумевается год, как стандартный объект 0CALYEAR, то вам следует использовать оператор TMVL, который делает операцию сдвига времени.


То есть, единственно доступный вариант - это железно прописать расчёт каждого показателя "вручную" с константами?

_________________
Ян Владимирович,
http://www.vladimirovich.net


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX (Formula Extension)
СообщениеДобавлено: Вт, июл 16 2013, 16:21 
Начинающий
Начинающий

Зарегистрирован:
Пт, авг 21 2009, 12:56
Сообщения: 7
Уважаемые гуру нужна Ваша помощь, помогите пожалуйста, есть задача посчитать средневзвешенную ставку в %, есть данные по счету 1 и счету 2
считается следующим образом: по счету1 по всем компаниям, кроме компании А % займа*на сумму займа.
аналогично по счете 2, только без ограничений по компании А, т.е. для нее так же релевантно.
цикл по компаниям везде где выполняются условия ниже, затем должно в итоге получится: сумма займа компании 1*% займа компании 1+ сумма займа компании 2 * %займа компании 2 и т.д. для всех компаний кроме А, к тому что получилось прибавляем по счету 2 сумму займа по всем компаниям без ограничения * % займа всех компаний, то что получилось делим на сумму займа всех 2 счетов.
Например: на счете 1 сумма у контрагента 1 = 500, % 11
на счете 2 у контрагента 2 сумма = 1000, % 15
на счете 2 у контрагента 2 сумма = 100, % 12
должно получится 14%
а у меня получается по первому блоку 11 и по второму блоку 27.
* РАСШИРЕНИЕ ФИЛЬТРА
IF NOT L_PLEVEL IS INITIAL.
L_PLEVEL = VARV(SVAR_0CS_PLEVEL_I10).
L_PER = VARV(SVAR_0FISCPER3_I2).
ENDIF.

L_KZS = OBJV().

FOREACH L_PER, L_PLEVEL, L_CURR, L_DOC, L_CRATE, L_COMP IN REFDATA.
IF L_PER <= L_TEC_PER AND L_PLEVEL = '00'.
L_SUM1 = L_SUM1 + {0CS_TRN_QTY, L_PLEVEL, L_PER, 'компанияА', 'FIX', '1', 'USD', #}.
ENDIF.
IF L_PLEVEL <= '01'.
L_RATETYPE = ATRV(SCRATE, L_KZS).
L_CURRKZS = ATRV(SCURRENCY, L_KZS).

IF NOT (L_COMP = 'компанияА' AND L_CURR = 'RUB').
L_VAL_A = L_VAL_A + {0CS_TRN_QTY, L_PLEVEL, L_PER, L_COMP, 'FIX', '1', L_CURR, L_DOC}.
L_VAL_B = L_VAL_B + {0CS_TRN_GC, L_PLEVEL, L_PER, L_COMP, 'FIX', '1', L_CURR, L_DOC}.

ENDIF.

IF NOT L_CURRKZS = 'RUB' AND L_CURR = # AND L_CRATE = # AND L_RATETYPE = 'FIX'.
L_VAL_C = L_VAL_C + {0CS_TRN_QTY, L_PLEVEL, L_PER, L_COMP, #, '2', #, L_DOC}.
L_VAL_D = L_VAL_D + {0CS_TRN_GC, L_PLEVEL, L_PER, L_COMP, #, '2', #, L_DOC}.
ENDIF.
IF NOT L_CURR = 'RUB' AND L_CRATE = 'FIX'.
L_VAL_E = L_VAL_E + {0CS_TRN_GC, L_PLEVEL, L_PER, L_COMP, 'FIX', '1', L_CURR, L_DOC}.
ENDIF.

* ДОСТАЕМ ЗНАЧЕНИЕ АТРИБУТА ИЗ ПЕРЕМЕННЫХ.
L_RATETYPE = ATRV(SCRATE, L_KZS).
L_CURRKZS = ATRV(SCURRENCY, L_KZS).

IF L_RATETYPE = 'FIX' AND NOT L_CURRKZS = 'RUB' AND L_CRATE = # AND L_CURR = #.
L_VAL_F = L_VAL_F + {0CS_TRN_GC, L_PLEVEL, L_PER, L_COMP, #, '2', #, L_DOC}.
ENDIF.
ENDIF.
ENDFOR.
{0CS_TRN_QTY, 00, L_PER, 'компанияА', 'FIX', '1', 'USD', L_DOC} = (L_VAL_A * L_VAL_B + L_VAL_C * L_VAL_D) / (L_VAL_E + L_VAL_F ).


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

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


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

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


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

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