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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.01.2008, 13:53   #1  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Сравнение в разрезе складской аналитики.
Здравствуйте,

Подскажите, пожалуйста, как поступать в этом случае.

Нужно сравнить то, что есть в производственных заказах (ProdJournalProd) с тем, что есть в наличии (InventSum).

В системе используются несколько складских аналитик - А1, А2, А3. Причем А3 - это детализированные аналитики для А2. Т.е если А2 - номер большого пакета, то А3 - номер более маленького пакета в А2.

Сравнение нужно проводить в разрезе аналитики но не в полном объёме.

В ProdJournalProd - аналитки есть только А1.

В InventSum - аналитики есть А1, А2, А3.

Поэтому при сравнении должен написать запрос типа :

X++:
while select inventSum where inventSum.itemId == prodJournalProd.itemId
   if(InventDim::find(inventSum.inventDimid).(  1) == 
     InventDim::find(prodJournalProd.inventDimId).(  1))
 {
   // несколько простых суммирований.
 }
Это очень долго потому что код должен пробегать по всей таблице InventSum по конкретной номенклатуре.

Есть какой-нибудь путь для оптимизации этого кода ?

Спасибо
Старый 11.01.2008, 14:45   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Query по prodJournalProd, на каждой итерации прохода по нему отдельный Query с группировской к InventSum c при-join-енным InventDim, на который наложено условие на А1 и номенклатуры по текущему значению А1 и номенклатуры из prodJournalProd
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 11.01.2008, 15:14   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от longson Посмотреть сообщение
Сравнение нужно проводить в разрезе аналитики но не в полном объёме.

Поэтому при сравнении должен написать запрос типа :
Используйте метод InventSum::newQuery.
Пример здесь Khue Trinh: How to get Inventory On-hand number
__________________
полезное на axForum, github, vk, coub.
Старый 14.01.2008, 13:45   #4  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Пробовал, действительно работает в десятки раз быстрее. Спасибо, очень полезный метод.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Учёт остатков в разрезе фин. аналитики miklenew DAX: Программирование 11 06.11.2007 20:01
Изменение группы складской аналитики Uma Turman DAX: Функционал 27 02.07.2007 04:53
отображение складской аналитики fialka DAX: Программирование 8 19.06.2007 15:55
Отчет типа "ОСВ по счету в разрезе аналитики" kosenkov DAX: Функционал 13 02.03.2006 16:57
Наследование складской аналитики ATimTim DAX: Функционал 2 24.04.2005 11:48

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

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

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