Текущее время: Вс, дек 17 2017, 17:42

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




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

Зарегистрирован:
Пн, июн 25 2007, 23:27
Сообщения: 95
Пол: Мужской
Всем привет!
Пытаюсь разобраться в foxe. Так сложилось, что до сих пор не приводилось.
Наипримитивнейшая задача, но че-то совсем не получается.
Есть два куба. В одном - плановая сумма ZPLM_SUMN, введенная за месяц.
В другом - предварительно посчитанный прогноз по дням ZFR_SUMN.
Оба куба в мультикубе, над ним уровень агрегации. Измерения кубов совпадают.
Задача - распределить плановую сумму с месяца на дни пропорционально прогнозу. Но для начала пытаюсь хотя бы скопировать значения прогноза в план.

Сделал формулу:
Код:
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
Сообщения: 447
evm писал(а):
Есть два куба.

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


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

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

Код:
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
Сообщения: 447
evm писал(а):
Причем при выполнении в логе есть запись: "29: зап. считаны 28: зап. созданы 0: зап. изменены 0: записи удалены"
Т.е. вроде как она создала нужные 28 записей по дням февраля. А в плановом кубе ничего не появилось.


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


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

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


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

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

Код:
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
Сообщения: 447
hazysonic писал(а):
Тут в одно и тоже поле вставляют данные, у меня же при попытке вставить вместо ПФМ значение из поля БЕ появляется ошибка "Ошибка в формуле: переменная должна иметь тип 0FUNDS_CTR"

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


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

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

Код:
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
Сообщения: 447
Так а где изменение самих данных?
Вы не поменяли строку с данными.


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

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


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

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


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

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


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

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


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

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