Текущее время: Пт, июл 20 2018, 08:45

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: FOX: пропорциональное распределение плана на прогноз в мультикубе
СообщениеДобавлено: Пн, мар 23 2015, 19:23 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, июн 25 2007, 23:27
Сообщения: 95
Пол: Мужской
Всем привет!
Пытаюсь разобраться в 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 раз уже можно было это заабапить, но хочется разобраться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 24 2015, 10:28 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, янв 25 2007, 10:57
Сообщения: 276
Попробуйте инициализировать рефдату.
Тупо вставить перед циклом следующее:
DATA l_init type string.
calday = l_init.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 24 2015, 11:14 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
evm написал:
Есть два куба.

А почему в операнде нет инфопровайдера?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 24 2015, 11:36 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, июн 25 2007, 23:27
Сообщения: 95
Пол: Мужской
Инфопровайдер не добавлял, т.к. каждый показатель присутствует только в одном провайдере. Думал, она сама разберется.
Учел оба совета, результат не изменился. Текущий вариант:

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 записей по дням февраля. А в плановом кубе ничего не появилось.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 24 2015, 11:43 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
evm написал:
Причем при выполнении в логе есть запись: "29: зап. считаны 28: зап. созданы 0: зап. изменены 0: записи удалены"
Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось.


Можете запустить функцию в трассировке (в RSPLAN) и выложить скрин с результатом, чтобы было видно новые записи?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 24 2015, 11:44 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
evm написал:
Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось.


Сохранить данные не забыли после прогона функции?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 24 2015, 11:51 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, июн 25 2007, 23:27
Сообщения: 95
Пол: Мужской
Air_demon написал(а):
evm написал:
Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось.


Сохранить данные не забыли после прогона функции?


Блин. Я не то, что забыл, я просто не знал, что это нужно делать. Я полагал, что это как запуск цепочки процессов или DTP, запустил и все.
Нажал после выполнения на "Сохранить буфер планирования", появились данные. Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 28 2017, 09:21 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вс, мар 11 2012, 15:33
Сообщения: 43
Откуда: Красноярск
Пол: Мужской
Добрый день!
Элементарная задача, но не получается решить на фоксе, помогите пожалуйста.

Есть куб. Там два показателя, сумма и количество, но это не важно.

Необходимо во всех записях в кубе сделать следующее:
Если поле ПФМ 0FUNDS_CTR пустое ' ', то в поле 0FUNDS_CTR поставить значение из 0COMP_CODE.

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 28 2017, 11:16 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
Смотрите ссылку: https://archive.sap.com/discussions/thread/1545579
Только в Вашем случае необходимо еще IF добавить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 28 2017, 13:44 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вс, мар 11 2012, 15:33
Сообщения: 43
Откуда: Красноярск
Пол: Мужской
Такой вариант не подходит.

Code:
data char_fiscper type 0fiscper.

Foreach char_fiscper.

{0amount,#} = {0amount,char_fiscper}.

endfor.


Тут в одно и тоже поле вставляют данные, у меня же при попытке вставить вместо ПФМ значение из поля БЕ появляется ошибка "Ошибка в формуле: переменная должна иметь тип 0FUNDS_CTR"
Тут ещё используется название показателя, без него нельзя? Типо: {0FUNDS_CTR}={0COMP_CODE}. Можно как-то типы преобразовать, что бы он не ругался на разные типы данных?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по FOX
СообщениеДобавлено: Вт, мар 28 2017, 14:17 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
hazysonic написал:
Тут в одно и тоже поле вставляют данные, у меня же при попытке вставить вместо ПФМ значение из поля БЕ появляется ошибка "Ошибка в формуле: переменная должна иметь тип 0FUNDS_CTR"

Сделайте переменную типа string и в нее значение БЕ сохраняйте, а потом переприсваивайте ПФМ.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX: пропорциональное распределение плана на прогноз в мультикубе
СообщениеДобавлено: Вт, мар 28 2017, 15:12 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вс, мар 11 2012, 15:33
Сообщения: 43
Откуда: Красноярск
Пол: Мужской
Понятно, спасибо!
Получил следующий код:

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=#.
Подскажите пожалуйста, синтаксис правильный?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: FOX: пропорциональное распределение плана на прогноз в мультикубе
СообщениеДобавлено: Вт, мар 28 2017, 17:01 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
Так а где изменение самих данных?
Вы не поменяли строку с данными.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOX: пропорциональное распределение плана на прогноз в мультикубе
СообщениеДобавлено: Ср, мар 29 2017, 08:19 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вс, мар 11 2012, 15:33
Сообщения: 43
Откуда: Красноярск
Пол: Мужской
А как правильно прописать изменение данных?
Code:
{0FUNDS_CTR} = PFMVAL.
не подходит, разные типы данных.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: FOX: пропорциональное распределение плана на прогноз в мультикубе
СообщениеДобавлено: Ср, мар 29 2017, 10:44 
Почетный гуру
Почетный гуру

Зарегистрирован:
Чт, фев 03 2005, 11:18
Сообщения: 467
Показатели у Вас где в функции?


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

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


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

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


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

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