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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2017, 18:42   #1  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
DictMethod.isStatic()
Добрый день.

Столкнулся со странным поведением класса DictMethod.
Странность связана с методом isStatic
Выполняю следующий код:
X++:
dictMethod = new DictMethod(UtilElementType::TableInstanceMethod, tableId, methodName);

if (dictMethod.isStatic())
{
    ...
}
Метод methodName, всю его сознательную жизнь был Static, но dictMethod.isStatic() некоторым пользователям с одинаковыми правами возвращает false, а кому-то true. После выполнения "Меню - Сервис - Обновить приложение" иногда помогает временно решить проблему, но она возвращается.

Кто-то сталкивался с такой бякой? Что и где можно пошевелить, чтобы заработало?
Старый 19.10.2017, 06:28   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Указание UtilElementType::TableInstanceMethod для статического метода не настораживает ?
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: demianimp (1).
Старый 19.10.2017, 07:56   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Интересно.
А если в том же месте сделать запрос к UtilElements / UtilIdElements с фильтром по parentId, utilLevel и Name (т.е. по имени метода), то что будет в типе записи RecordType ? Правильная информация или нет ? Если правильная то лучше всегда так и делать.

Еще как вариант можно попробовать выгрузить табличку в XPO, удалить импортнуть обратно с идентификаторами и перестроить индексы в приложении (прежде всего *.aoi).

Поскольку глюк наблюдался только для некоторых юзеров то я бы еще у них в профилях почистил *.auc файлы. Если пользуются терминальным сервером, то в профилях пользователей на терминальнике. Лучше вообще каждую ночь их чистить скриптом.

Еще, если вы практикуете копирование рабочей базы на дев и тест, то после такого копирования лучше там зачищать запись в табличке SysSQMSettings (аос при старте все равно запись заново создаст) так как значение \Data Dictionary\Tables\SysSQMSettings\Fields\GlobalGUID используется как составная часть имени клиентских кешей (auc файлов). Если этого удаления не делать то при использовании общего терминальника может смешиваться код в кеше рабочей, дева и теста, со всеми вытекающими глюками
За это сообщение автора поблагодарили: demianimp (1).
Старый 19.10.2017, 10:00   #4  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Указание UtilElementType::TableInstanceMethod для статического метода не настораживает ?
Нет Но поправил, посмотрим как себя поведет. Спасибо.

Но все равно странно, у разных пользователей разное поведение.
Старый 19.10.2017, 10:07   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от demianimp Посмотреть сообщение
Но все равно странно, у разных пользователей разное поведение.
Может права пользователей влияют ?
Тогда можно было бы вынести код на сервер и обрамить
X++:
    unchecked(Uncheck::TableSecurityPermission)
    {
        ...
    }
Старый 19.10.2017, 10:09   #6  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
Интересно.
А если в том же месте сделать запрос к UtilElements / UtilIdElements с фильтром по parentId, utilLevel и Name (т.е. по имени метода), то что будет в типе записи RecordType ? Правильная информация или нет ? Если правильная то лучше всегда так и делать.
...
RecordType = TableStaticMethod

Через UtilElements хороший вариант, но он как-то с боку
Просто нужно уметь правильно готовить DictMethod
Теги
ax2009, dictmethod, static

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как завалить AOS AX 2009 gl00mie DAX: Программирование 21 01.11.2013 17:45
AX2012: сервисы и чудеса системного метода DictMethod.parameterCnt() wojzeh DAX: Программирование 2 26.02.2013 14:58
Расширенные возможности отслеживания событий на диалогах классов-наследников RunBase ziva DAX: Программирование 10 09.02.2012 19:27
Структура таблиц axapta velk DAX: База знаний и проекты 46 27.07.2009 07:56
DictMethod.propertyHelp() Андре DAX: Программирование 7 15.03.2007 09:39
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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