AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2006, 14:56   #1  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Остатки на дату.
Как получить остаток по складу на опр дату, так чтобы при открытии формы не заснуть должидаясь пока она отработает.

Использую класс InventSumDateValueReportDim... очень медленно.
Старый 30.01.2006, 15:00   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
http://axapta.mazzy.ru/lib/inventsumdate/

InventSumDateValueReportDim считает очень много чего.
Какие именно остатки вам нужны?
__________________
полезное на axForum, github, vk, coub.
Старый 30.01.2006, 15:42   #3  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
нужен физ. остаток на дату по данномк складу , по данной номенклатуре.
Старый 30.01.2006, 15:45   #4  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
ОЛАП рассматриваете?
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 30.01.2006, 15:52   #5  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от Recoilme
ОЛАП рассматриваете?
если к нему можно обратится программно , то да.

Не подскажете ?
Старый 30.01.2006, 16:06   #6  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 975 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Bars
если к нему можно обратится программно , то да.

Не подскажете ?
Если у вас практикуются проводки задним числом, то остатки придется получать по проводкам. В этом случае, можно вылизать запрос вручную.
Если проводок задним числом не бывает, то можно просто сделать свою отчетную таблицу, с заранее рассчитанными остатками на все даты. Это проще, чем ОЛАП настраивать, а по сути, тоже самое.
__________________
Isn't it nice when things just work?
Старый 30.01.2006, 16:16   #7  
UNRW is offline
UNRW
Участник
 
383 / 67 (3) ++++
Регистрация: 16.09.2004
Адрес: Москва
физ остаток на дату:

select sum(Qty) from inventTrans
where
inventTrans.ItemId == "MyItem" &&
inventTrans.DatePhysical <= dateTo &&
inventTrans.StatusIssue <= StatusIssue:educted &&
inventTrans.StatusReceipt<= StatusReceipt::Receipt
join inventDim
where inventDim.InventDimId == inventTrans.InventDimId &&
inventDim.InventLocationId == "MyLocation";
За это сообщение автора поблагодарили: belugin (3).
Старый 30.01.2006, 16:19   #8  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
отчетная таблица не ваирант к сожалению.
Олап настроен, как к нему доступ получить программно понятия не имею.
По проводкам.. классы семейства InventSum работают долго, несмотря на то что стал использовать более "простой" класс InventSumDateDim
Старый 30.01.2006, 17:20   #9  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Bars
отчетная таблица не ваирант к сожалению.
Олап настроен, как к нему доступ получить программно понятия не имею.
По проводкам.. классы семейства InventSum работают долго, несмотря на то что стал использовать более "простой" класс InventSumDateDim
тогда UNRW написал

+ здесь посмотрите: остатки на дату скопом
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 30.01.2006 в 17:30.
Старый 30.01.2006, 17:34   #10  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
ааа, есть ещё всё то что я там понаписал одним запросом на эскюэле через эмуляцию функции нарастающего итога, но писал не я так что.. Как сделать нарастающий итого - на эскюэль ру в ФАК написано
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 31.01.2006, 01:03   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от UNRW
физ остаток на дату:

select sum(Qty) from inventTrans
where
inventTrans.ItemId == "MyItem" &&
inventTrans.DatePhysical <= dateTo &&
inventTrans.StatusIssue <= StatusIssue:educted &&
inventTrans.StatusReceipt<= StatusReceipt::Receipt
join inventDim
where inventDim.InventDimId == inventTrans.InventDimId &&
inventDim.InventLocationId == "MyLocation";
НЕТ! НЕТ! НЕТ!!! И еще раз НЕТ!!!
НИКОГДА так не делайте.

Этот код работат боль-мень приемлимо только на игрушечных данных малого объема!
Стоит вам только приблизиться к нормальному рабочему объему - ваша база умрет.

Здесь написано как Аксапта получает остатки на произвольную дату
http://axapta.mazzy.ru/lib/inventsumdate/
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 07:45   #12  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от mazzy
НЕТ! НЕТ! НЕТ!!! И еще раз НЕТ!!!
НИКОГДА так не делайте.

Этот код работат боль-мень приемлимо только на игрушечных данных малого объема!
Стоит вам только приблизиться к нормальному рабочему объему - ваша база умрет.

Здесь написано как Аксапта получает остатки на произвольную дату
http://axapta.mazzy.ru/lib/inventsumdate/
Прочитал, понял, спасибо).

Все равно медленно.
Старый 31.01.2006, 09:32   #13  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Bars
Прочитал, понял, спасибо).

Все равно медленно.
Может опишешь задачу полностью? Другими словами - на фига тебе остатки на дату в форме, да ещё и быстро ???
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 31.01.2006, 09:38   #14  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
)) нужно сформировать оборотку по товару, по данному складу...

за основу взял форму проводок. .. немного изменяю.. чтобы периоды указывать можно было и т.п. + надо добавить колонку с остатком...
Старый 31.01.2006, 09:46   #15  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Bars
если к нему можно обратится программно , то да.

Не подскажете ?
тогда ОЛАП. НАФИГА К ОБОРОТКЕ ОБРАЩАТЬСЯ ПРОГРАММНО????
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 31.01.2006, 09:52   #16  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Сообщение от mazzy
Здесь написано как Аксапта получает остатки на произвольную дату
http://axapta.mazzy.ru/lib/inventsumdate/
В этой статье рассмотрен механизм работы стандартных классов, что наверное тоже не бесполезно. Но эти классы ещё можно как-то использовать для расчета остатков на дату по одной номенклатуре. Но для 10000 позиций это уже не будет работает даже для "игрушечных" данных, созданных за несколько месяцев.
Наиболее правильным вариантом является создание отдельной OLAP-базы, в которую с ежедневной периодичностью переносятся нужные данные из axapta. По этой базе уже и строятся отчеты по остаткам на дату. При этом понятно, что будет запаздывание, поэтому текущие остатки нужно брать из Axapta.
Однако в качестве промежуточного решения я бы всё же использовал запрос "с начала времен". Его план выполнения по-крайней мере можно оптимизировать средствами СУБД (Oracle)...
За это сообщение автора поблагодарили: Recoilme (3).
Старый 31.01.2006, 11:59   #17  
UNRW is offline
UNRW
Участник
 
383 / 67 (3) ++++
Регистрация: 16.09.2004
Адрес: Москва
Mazzy, вы "шутите"...

мы строим отчеты с остатками на начало периода, на конец периода + обороты за период рассчитывем по нескольким десяткам тысяч позиций за год - обрабатывает до полумиллиона проводок... данные в отчет готовятся за 3-4 минуты + выгрузка в Excel около минуты (до 60-ти тысяч строк в отчете)...

представь что Косяпта у тебя стала работать с 01.01.2004 отработала уже 2 года...
и отчет надо построить именно на 01.01.2004
расчитывая назад от InventSum ты будешь ждать завершения раз в 10 дольше чем прямым вычилением...

Например, некоторые отчеты разработанные Коламбусом работают именно так (не от InventSum), и даже включены в dis слой какой-то нерусской косяпты... стандартные отчеты у них работали сутками... а эти минуты...

и все из-за того, что если в стандартном функционале поставить 3-4 складских аналитики, стандарный механизм будет работать как 3-4 вложенных while select

Последний раз редактировалось UNRW; 31.01.2006 в 12:43.
Старый 31.01.2006, 12:33   #18  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Не знаю, на каком наречии написан код UNRW, но после его небольшой рихтовки на не показательно большой но реальной базе за 1/2 года результат выдает весьма быстро. 120,000 InventTrans.
__________________
С уважением,
glibs®
Старый 31.01.2006, 12:42   #19  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от glibs
Не знаю, на каком наречии написан код UNRW, но после его небольшой рихтовки на не показательно большой но реальной базе за 1/2 года результат выдает весьма быстро. 120,000 InventTrans.
считается действительно быстро... сам удивился)
Старый 31.01.2006, 12:44   #20  
UNRW is offline
UNRW
Участник
 
383 / 67 (3) ++++
Регистрация: 16.09.2004
Адрес: Москва
код я брал не из нашей рабочей базы... писал на память
Теги
остатки, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Остатки на дату InventSumDatePhysical Raven Melancholic DAX: Программирование 6 10.05.2007 15:29
Остатки товара на определенную дату Lucky13 DAX: Программирование 7 27.03.2007 14:27
Скачут остатки Def DAX: Программирование 3 03.05.2006 14:27
Цена на дату создания заказа/закупки George Nordic DAX: Функционал 2 29.06.2005 15:56
Остатки dog37 DAX: Программирование 6 02.06.2005 11:25

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:12.