Текущее время: Пн, июн 18 2018, 02:09

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Exceptional Aggregation или модель данных
СообщениеДобавлено: Пн, янв 29 2018, 14:50 
Специалист
Специалист

Зарегистрирован:
Пн, ноя 01 2010, 09:21
Сообщения: 162
Привет всем,
Надеюсь форум скоро снова проснется, а то всего несколько сообщений за январь.
Даны следующие исходные данные по материалу:
Code:
0Material ¦ Movement            ¦ 0Fiscper ¦ Value
AAA       ¦ Beginning Inventory ¦ 03.2016  ¦ 100
AAA       ¦ Receipt             ¦ 03.2016  ¦ 200
AAA       ¦ Ending Inventory    ¦ 03.2016  ¦ 300

AAA       ¦ Beginning Inventory ¦ 04.2016  ¦ 300
AAA       ¦ Ending Inventory    ¦ 04.2016  ¦ 300

AAA       ¦ Beginning Inventory ¦ 05.2016  ¦ 300
AAA       ¦ Consumption         ¦ 05.2016  ¦ 250
AAA       ¦ Ending Inventory    ¦ 05.2016  ¦ 50

Если пользователь запрашивает период, а не конкретный месяц, то в строках Beginning/Ending Inventory должно быть значение именно на начало и конец периода (определяем через Customer-Exit), а в остальных строках сумма за период. Вроде решение простое, определить структуру с Типом движения и в ячейках ограничить показатель 0Fiscper для Beginning/Ending Inventory началом и концом периода, выглядит не плохо:
Code:
0FISCPER = 03.2016-05.2016
0Material ¦ Movement            ¦ Value
AAA       ¦ Beginning Inventory ¦ 100 / на 03.2016
AAA       ¦ Receipt             ¦ 200 / за период
AAA       ¦ Consumption         ¦ 250 / за период
AAA       ¦ Ending Inventory    ¦ 50  / на 05.2016

если изменить фильтр, то все еще ок:
Code:
0FISCPER = 01.2016-12.2016
0Material ¦ Movement            ¦ Value
AAA       ¦ Beginning Inventory ¦ 0 / на 01.2016
AAA       ¦ Receipt             ¦ 200 / за период
AAA       ¦ Consumption         ¦ 250 / за период
AAA       ¦ Ending Inventory    ¦ 0  / на 12.2016

Но все плывет, если пользователь хочет посмотреть развертку по 0FISCPER, ведь получается, что для Beginning/Ending Inventory они ограничены переменной:
Code:
0Material ¦ Movement            ¦ 0Fiscper ¦ Value
AAA       ¦ Beginning Inventory ¦ 01.2016  ¦
AAA       ¦ Beginning Inventory ¦ 02.2016  ¦
AAA       ¦ Beginning Inventory ¦ 03.2016  ¦ 100
AAA       ¦ Beginning Inventory ¦ 04.2016  ¦ 0 – Ошибка, значение существует
AAA       ¦ Beginning Inventory ¦ 05.2016  ¦ 0 – Ошибка, значение существует

Использовать exceptional aggregation (First Value для Beginning Inventory и Last Value для Ending Inventory) в таком построении не удается, потому что при фильтре 01.2016-12.2016, First/Last Value будут взяты из транзакционных данных, то есть данные за 03.2016 и 05.2016, соответственно, а не из 01 и 12, как хотелось бы.

Создал формулу и заполнил нулями если пусто, в надежде использовать для показателя, но агрегация происходит до калькуляции (раньше была такая опция, в 7.4 уже нету).
Пока как временное решение, пробую дополнительную генерацию строк в ДСО и кубе для месяцев, где нет данных, заполнить их 0, но это увеличивает нагрузку на систему и раздувает куб/дсо до четырех раз, зато отчет работает нормально :)
Code:
0Material ¦ Movement            ¦ 0Fiscper ¦ Value
AAA       ¦ Beginning Inventory ¦ 01.2016  ¦ 0 - Новое значение
AAA       ¦ Beginning Inventory ¦ 02.2016  ¦ 0 - Новое значение
AAA       ¦ Beginning Inventory ¦ 03.2016  ¦ 100
AAA       ¦ Beginning Inventory ¦ 04.2016  ¦ 0 - Новое значение
AAA       ¦ Beginning Inventory ¦ 05.2016  ¦ 0 - Новое значение
...
и так для всех типов движений

Как обхитрить систему?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Exceptional Aggregation или модель данных
СообщениеДобавлено: Вт, янв 30 2018, 18:07 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Вс, янв 11 2009, 15:41
Сообщения: 878
Откуда: Москва
Пол: Мужской
Некуммулятивные показатели пробуйте. Не зря ведь они были придуманы и в стандарте используются


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Exceptional Aggregation или модель данных
СообщениеДобавлено: Пт, фев 02 2018, 13:12 
Специалист
Специалист

Зарегистрирован:
Пн, ноя 01 2010, 09:21
Сообщения: 162
Я думал об этом,
но правильное определение дельты-показателя или вход/выход мне не ясны. Ведь получается, что показатель всегда содержит уже новое значение. Можно, конечно, создать фейковый дельта показатель.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Exceptional Aggregation или модель данных
СообщениеДобавлено: Пт, фев 09 2018, 18:57 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 11:41
Сообщения: 557
Откуда: Гондурас (округ Москвы)
Пол: Мужской
если пользователь может менять развертку, то это уже аналитический гибкий отчет.
это не очень хорошая идея давать пользователю менять развертку в первом отчете.
делайте лучше 2 отчета. имхо, потратите много времени с сомнительной перспективой.
по поводу того, что нет расчета до агрегации - это Вы придумали, всё есть.
и еще момент один - где четко задано, в каком порядке выводяться проводки в первом отчете?
где-то же есть у вас ID- проводки с автоинкрементом ?


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

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


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

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


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

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