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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.10.2013, 15:59   #1  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
AX2012. Кеширование display method на ListPage. Как?
Добрый день, уважаемые участники форума!

Столкнулся с необходимостью вывода табличного display method на ListPage и, соответственно, его кешироанием. Получается, невозможно перекрыть/создать методы на источнике данных (чтобы вписать cacheAddMethod). Даже если попробовать через Interaction класс, или что-то вроде InteractionHelper, не получается: там нет возможности перекрыть метод active() и вывести значение в unbound control.

При этом код табличного выводимого метода выполняется на сервере для каждой записи (закономерно и для обычных форм, как я понял).

Возможность создания View с вычисляемыми полями мне не подошла.

Соответственно приходиться либо тянуть значение из связанного (связанных) источников данных, либо пользоваться временной таблицей, либо добавлять поле в выводимую таблицу.

Возможно ли, что AX сама кеширует эти методы, при работе с ListPage? Как можно это проверить?
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Старый 15.10.2013, 16:04   #2  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
856 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
попробуйте атрибут [SysClientCacheDataMethodAttribute(true)]
За это сообщение автора поблагодарили: trud (0), Кирен (0), plumbum (0).
Старый 15.10.2013, 16:38   #3  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Спасибо! А как я смогу проверить, закешировались ли значения?
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Старый 15.10.2013, 17:20   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Например, включить трассировку операторов SQL и посмотреть, сколько раз дергаются запросы из соотв. метода.
Старый 15.10.2013, 18:37   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
На свойстве контрола дисплей метода появилось соответствующее свойство (не помню как называется). Если не вру, то по умолчанию это свойство стоит в Avto и кэширует автоматом.

кстати, edit методы в 2012 аксапте теперь также поддерживают кэширование.
За это сообщение автора поблагодарили: plumbum (2).
Старый 15.10.2013, 19:50   #6  
handy-comp is offline
handy-comp
Участник
 
96 / 78 (3) ++++
Регистрация: 27.09.2012
Цитата:
Сообщение от DSPIC Посмотреть сообщение
...
кстати, edit методы в 2012 аксапте теперь также поддерживают кэширование.
в 2009 уже было
Старый 15.10.2013, 19:54   #7  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Цитата:
попробуйте атрибут [SysClientCacheDataMethodAttribute(true)]
Это то, но параметр updateOnWrite = true указывать не обязательно: в ListPage запись не обновляется.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
На свойстве контрола дисплей метода появилось соответствующее свойство (не помню как называется). Если не вру, то по умолчанию это свойство стоит в Avto и кэширует автоматом.
Это тоже то! Свойство CacheDataMethod
Прочитал хелп к этому свойству - это то что надо:
Цитата:
Specifies, whether the DataMethod is cached during the FormDataSource Init method call
Цитата:
Сообщение от DSPIC Посмотреть сообщение
кстати, edit методы в 2012 аксапте теперь также поддерживают кэширование.
Это было возможно еще в 2009

Прошу занести в FAQ
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Старый 27.03.2015, 15:24   #8  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Thumbs up
Цитата:
Сообщение от DSPIC Посмотреть сообщение
На свойстве контрола дисплей метода появилось соответствующее свойство (не помню как называется). Если не вру, то по умолчанию это свойство стоит в Avto и кэширует автоматом.

кстати, edit методы в 2012 аксапте теперь также поддерживают кэширование.

То, что нужно, благодарю!
Теги
ax2012, cacheaddmethod, display method, listpage, атрибут

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kamalblogs: Error: SSRS/EP error when the return type in display method is incorrect – Dynamics AX 2012 Blog bot DAX Blogs 0 11.10.2013 12:11
emeadaxsupport: Inventory closing differences between AX4.0 and AX2012 using weighted average costing method Blog bot DAX Blogs 0 27.12.2012 19:11
axblog4u: Display Web Image Content in Forms using Dynamics AX2012 Blog bot DAX Blogs 0 28.05.2012 19:12
Solutions Monkey: Async call to display method from the EP via a web service for delay loading Blog bot DAX Blogs 0 11.02.2012 07:16
axaptapedia: Display method Blog bot DAX Blogs 0 29.08.2007 16:30

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:46.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.