SAPфорум.RU https://sapboard.ru/forum/ |
|
FOX: пропорциональное распределение плана на прогноз в мультикубе https://sapboard.ru/forum/viewtopic.php?f=12&t=90069 |
Страница 1 из 2 |
Автор: | evm [ Пн, мар 23 2015, 18:23 ] |
Заголовок сообщения: | FOX: пропорциональное распределение плана на прогноз в мультикубе |
Всем привет! Пытаюсь разобраться в foxe. Так сложилось, что до сих пор не приводилось. Наипримитивнейшая задача, но че-то совсем не получается. Есть два куба. В одном - плановая сумма ZPLM_SUMN, введенная за месяц. В другом - предварительно посчитанный прогноз по дням ZFR_SUMN. Оба куба в мультикубе, над ним уровень агрегации. Измерения кубов совпадают. Задача - распределить плановую сумму с месяца на дни пропорционально прогнозу. Но для начала пытаюсь хотя бы скопировать значения прогноза в план. Сделал формулу: Code: DATA CALDAY TYPE 0CALDAY. DATA L_ZFR_SUMN TYPE F. FOREACH CALDAY IN REFDATA. L_ZFR_SUMN = {ZFR_SUMN,CALDAY}. IF L_ZFR_SUMN > 0. MESSAGE I001(/SEM/003) WITH CALDAY L_ZFR_SUMN. {ZPLM_SUMN,CALDAY} = L_ZFR_SUMN. ENDIF. ENDFOR. В фильтре задан месяц, больше ничего. В сообщениях успешно выводятся даты и суммы прогноза по этим датам. Но при этом строчка "{ZPLM_SUMN,CALDAY} = L_ZFR_SUMN" не отрабатывает, данные не появляются. Опытным путем выяснил, что если добавить строку с совсем прямым присвоением типа "{ZPLM_SUMN,'20150226'} = 1159." после цикла FOREACH, то значение записывается. А если внутрь цикла - то нет. Но при этом в цикл она совершенно точно заходит, т.к. сообщения выводятся. В чем может быть трабл и чего делать? Доки и хелпы почитал. В принципе, 20 раз уже можно было это заабапить, но хочется разобраться. |
Автор: | sirin [ Вт, мар 24 2015, 09:28 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
Попробуйте инициализировать рефдату. Тупо вставить перед циклом следующее: DATA l_init type string. calday = l_init. |
Автор: | Air_demon [ Вт, мар 24 2015, 10:14 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
evm написал: Есть два куба. А почему в операнде нет инфопровайдера? |
Автор: | evm [ Вт, мар 24 2015, 10:36 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
Инфопровайдер не добавлял, т.к. каждый показатель присутствует только в одном провайдере. Думал, она сама разберется. Учел оба совета, результат не изменился. Текущий вариант: Code: DATA CALDAY TYPE 0CALDAY. DATA L_ZFR_SUMN TYPE F. *BREAK-POINT. DATA L_INIT TYPE STRING. CALDAY = L_INIT. FOREACH CALDAY IN REFDATA. L_ZFR_SUMN = {ZFR_SUMN,CALDAY,'ZFRCT_C03'}. IF L_ZFR_SUMN > 0. MESSAGE I001(/SEM/003) WITH CALDAY L_ZFR_SUMN. {ZPLM_SUMN,CALDAY,'ZPLAN_TST'} = L_ZFR_SUMN. ENDIF. ENDFOR. В поля для изменения кроме 0calday включил еще 0infoprov. В поле для условий включен 0calmonth Названия инфо-провайдеров пробовал ставить как в апострофах, так и без них. Причем при выполнении в логе есть запись: "29: зап. считаны 28: зап. созданы 0: зап. изменены 0: записи удалены" Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось. |
Автор: | Air_demon [ Вт, мар 24 2015, 10:43 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
evm написал: Причем при выполнении в логе есть запись: "29: зап. считаны 28: зап. созданы 0: зап. изменены 0: записи удалены" Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось. Можете запустить функцию в трассировке (в RSPLAN) и выложить скрин с результатом, чтобы было видно новые записи? |
Автор: | Air_demon [ Вт, мар 24 2015, 10:44 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
evm написал: Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось. Сохранить данные не забыли после прогона функции? |
Автор: | evm [ Вт, мар 24 2015, 10:51 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
Air_demon написал(а): evm написал: Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось. Сохранить данные не забыли после прогона функции? Блин. Я не то, что забыл, я просто не знал, что это нужно делать. Я полагал, что это как запуск цепочки процессов или DTP, запустил и все. Нажал после выполнения на "Сохранить буфер планирования", появились данные. Спасибо. |
Автор: | hazysonic [ Вт, мар 28 2017, 08:21 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
Добрый день! Элементарная задача, но не получается решить на фоксе, помогите пожалуйста. Есть куб. Там два показателя, сумма и количество, но это не важно. Необходимо во всех записях в кубе сделать следующее: Если поле ПФМ 0FUNDS_CTR пустое ' ', то в поле 0FUNDS_CTR поставить значение из 0COMP_CODE. Спасибо! |
Автор: | Air_demon [ Вт, мар 28 2017, 10:16 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
Смотрите ссылку: https://archive.sap.com/discussions/thread/1545579 Только в Вашем случае необходимо еще IF добавить. |
Автор: | hazysonic [ Вт, мар 28 2017, 12:44 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
Такой вариант не подходит. Code: data char_fiscper type 0fiscper. Foreach char_fiscper. {0amount,#} = {0amount,char_fiscper}. endfor. Тут в одно и тоже поле вставляют данные, у меня же при попытке вставить вместо ПФМ значение из поля БЕ появляется ошибка "Ошибка в формуле: переменная должна иметь тип 0FUNDS_CTR" Тут ещё используется название показателя, без него нельзя? Типо: {0FUNDS_CTR}={0COMP_CODE}. Можно как-то типы преобразовать, чтобы он не ругался на разные типы данных? |
Автор: | Air_demon [ Вт, мар 28 2017, 13:17 ] |
Заголовок сообщения: | Re: Вопрос по FOX |
hazysonic написал: Тут в одно и тоже поле вставляют данные, у меня же при попытке вставить вместо ПФМ значение из поля БЕ появляется ошибка "Ошибка в формуле: переменная должна иметь тип 0FUNDS_CTR" Сделайте переменную типа string и в нее значение БЕ сохраняйте, а потом переприсваивайте ПФМ. |
Автор: | hazysonic [ Вт, мар 28 2017, 14:12 ] |
Заголовок сообщения: | Re: FOX: пропорциональное распределение плана на прогноз в мультикубе |
Понятно, спасибо! Получил следующий код: Code: DATA PFMVAL TYPE 0FUNDS_CTR. DATA BEVAL TYPE 0COMP_CODE. DATA BE TYPE STRING. *FOREACH PFMVAL. IF PFMVAL='#'. BE=0COMP_CODE. PFMVAL=BE. ENDIF. *ENDFOR. Выполнилось без ошибок, считало много записей в кубе, однако 0 изменено, хотя пустые точно есть. Так же пробовал с PFMVAL='' и PFMVAL=#. Подскажите пожалуйста, синтаксис правильный? |
Автор: | Air_demon [ Вт, мар 28 2017, 16:01 ] |
Заголовок сообщения: | Re: FOX: пропорциональное распределение плана на прогноз в мультикубе |
Так а где изменение самих данных? Вы не поменяли строку с данными. |
Автор: | hazysonic [ Ср, мар 29 2017, 07:19 ] |
Заголовок сообщения: | Re: FOX: пропорциональное распределение плана на прогноз в мультикубе |
А как правильно прописать изменение данных? Code: {0FUNDS_CTR} = PFMVAL. не подходит, разные типы данных.
|
Автор: | Air_demon [ Ср, мар 29 2017, 09:44 ] |
Заголовок сообщения: | Re: FOX: пропорциональное распределение плана на прогноз в мультикубе |
Показатели у Вас где в функции? |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |