Текущее время: Чт, июн 26 2025, 16:18

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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