Текущее время: Чт, май 24 2018, 12:21

Часовой пояс: 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
Сообщения: 877
Откуда: Москва
Пол: Мужской
Некуммулятивные показатели пробуйте. Не зря ведь они были придуманы и в стандарте используются


Принять этот ответ
Вернуться к началу
 Профиль Отправить 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 часа


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

Сейчас этот форум просматривают: Iarty


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

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