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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.05.2017, 09:29   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Кстати кто что думает по поводу вот такого использования статических членов
https://docs.microsoft.com/en-us/dyn...-runbase-class
т.е. создается глобальная статическая переменная - ссылка на класс. далее создается handler на таблицу - который проверяет заполнена ли эта глобальная переменная и вызывает метод(кстати тут по моему у них опечатка - должно быть if (myrunningInstance)
X++:
if (runningInstance)
        {
            myRunningInstance.myArchiveUserLog(_sender as SysUserLog);
        }
т.е. сразу приходят куча сценариев на ум, когда SysUserLogCleanup_Post_run не выполняется(не зануляет глобальную переменную класса) к примеру в результате ошибки. получается для таблицы у нас остается висеть хендлер, который будет всегда исполняться.
причем это будет никак не поймать, ибо в новой сессии хендлера уже не будет
Старый 08.05.2017, 09:47   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,496 / 1071 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Мне показалось, что singleton работает не в пределах сессии, а в пределах thread. Я пытался с его помощью передать параметры в отчет, так вот отчеты работают в другои потоке (возможно для запуска отчета создается новая сессия) и singleton у них будет свой, чистый.
С его помощью можно много чего реализовать, только понять, что присходит в сисетеме, будет все труднее.

Пример: есть таблица и мы хотим получить, что то типа -
X++:
void update()
{
    MyTable myTableOrig = this.orig();

    super();

    if (myTableOrig.MyField != this.MyField)
    {
        do something....
    }
}
Можно в pre update положить в singleton orig и в post update сделать сравнение и do something.

P.S. Extension подход только усложняет систему и ее поддержку.

Последний раз редактировалось raz; 08.05.2017 в 09:50.
Старый 08.05.2017, 23:06   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от raz Посмотреть сообщение
Мне показалось, что singleton работает не в пределах сессии
А это разве singleton ?
Старый 09.05.2017, 10:05   #4  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,496 / 1071 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от skuull Посмотреть сообщение
А это разве singleton ?
А разве нет? За основу был взят такой код для передачи параметров в SSRS отчет, в отладчике было видно, что параметры в пределах одного thread передаются, но когда обращение было из отчета (data contract), то singleton был чист, при этом номер thread был другой.
Это легко проверить.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
i-neti: X++ in AX7: элементы с уровнями доступа private и public. Часть 4 Blog bot DAX Blogs 0 18.04.2017 13:11
i-neti: X++ в AX7: Определение типа может включать 80 знаков. Часть 3. Blog bot DAX Blogs 0 27.03.2017 11:11
i-neti: X++ в AX7: ключевые слова ”finally” и “using”. Часть 2. Blog bot DAX Blogs 0 20.03.2017 15:11
i-neti: Что нового в X++ в AX7? Часть 1: X++ в AX7: Ключевое слово "var". Blog bot DAX Blogs 5 09.03.2017 10:13
patrickmouwen: AX7 – My top 12 highlights Blog bot DAX Blogs 0 27.02.2016 13:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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