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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2016, 13:09   #18  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
Задача:
внешняя система читает проводки по клиентам. Причем внешняя система для каждой проводки ожидает получить в выборке счет ГК из профиля разноски. Как оптимально написать T-SQL запрос для такой выборки?
Основная проблема - в настроечной таблице для одной проводки может быть несколько разных подходящих настроек для одной исходной мастер-записи.
Какая-то нетипичная задача, как мне кажется, и потому она требует нетипичного (с т.з. Аксапты) подхода к решению.
Цитата:
Сообщение от mazzy Посмотреть сообщение
как, на ваш взгляд должны быть устроены подобные настроечные таблицы, чтобы и без Аксаптовского кэширования можно было бы удобно работать с такими настроечными таблицами на уровне SQL?
Тут, по-моему, может быть несколько вариантов:
    • понятная пользователю настроечная таблица
    • не требует дополнительных затрат для ее поддержки
    • не очень удобно работать с настройками из TSQL;
    • понятная пользователю настроечная таблица
    • дополнительные затраты для поддержки SQL-friendly представления данных
    • удобно работать с настройками из TSQL;
    • непонятная пользователю настроечная таблица с SQL-friendly представленем данных
    • не требует дополнительных затрат для ее поддержки
    • удобно работать с настройками из TSQL;
В стандартной Аксапте выбрали 1-й вариант, потому что совсем нечасто стоит задача обработать большую выборку данных и на лету подобрать для каждой записи выборки некий параметр из настроечной таблицы со связями Table/Group/All. Намного чаще обработка идет по одной записи, и по ее полям нужно быстро получить настроечный параметр. При таком раскладе таблица должна быть как можно более понятна для пользователя, который делает настройки, максимум, что от нее требуется, - это обеспечивать нужную сортировку записей. Всё остальное решается кэшированием таблиц в ядре Аксапты и кэшированием результатов выборки в каком-нить SysGlobalobjectCache, как часто делается в 12-ке.
Но возьмем для примера иерархию категорий из AX 2012. С одной стороны, есть понятная пользователю настроечная таблица, хранящая узлы иерархии (категории), а с другой, для той или иной категории есть потребность быстро определять в запросах связанные подкатегории выше по иерархии, на которые могут ссылаться другие настройки, скажем, те же скидки за комплект и т.п. Тут уже разработчики стандарта пошли по второму пути из приведенных выше и реализовали таблицу RetailCategoryContainmentLookup, содержащую SQL-friendly представление иерархии категорий.
Так вот, мне кажется, в следующем сценарии:
  • внешняя система читает проводки по клиентам
  • для каждой проводки ожидает получить в выборке счет ГК из профиля разноски
  • в настроечной таблице для одной проводки может быть несколько разных подходящих записей
  • записи настроечной таблицы должны выбираться с учетом определенного приоритета
имеет смысл реализовать 2-й вариант хранения настроек и сделать их SQL-friendly представление, которое уже использовать при чтении проводок. Такое представление, в зависимости от дополнительных условий и ограничений, может как храниться и поддерживаться на постоянной основе, так и строиться ad-hoc перед началом чтения данных внешней системой. Если же затраты на поддержку такого SQL-friendly представления настроек кажутся чрезмерными, то, вероятно, и "трудозатраты" СУБД при выполнении подзапросов не должны особо смущать.
За это сообщение автора поблагодарили: mazzy (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Произвольный SQL-запрос listener DAX: База знаний и проекты 26 26.07.2016 09:31
Пользовательские настройки. Выборки формы r2d2 DAX: Функционал 1 13.11.2014 11:37
Автоматический выбор профиля разноски при создании заказа ada DAX: Функционал 15 30.06.2005 14:46
Настройка профиля разноски модуля Основные средства mnu DAX: Функционал 24 23.06.2004 09:45
Собственный SQL запрос в FormDataSource Alexey DAX: База знаний и проекты 0 20.12.2001 00:35

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

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

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