|
22.06.2015, 17:11 | #1 |
Участник
|
littleax: Change Tracking
Источник: http://littleax.blogspot.com/2015/06...-tracking.html
============== SMART TALKS Dynamics AX Change Tracking в Dynamics AX 2012 Преллагаю небольшой видео блог по Change Tracking в Dynamics AX 2012. Основные принципы работы с отслеживанием изменений, возможности, рекомендации. http://smart-talks.org/event/smart-talks-2/ Источник: http://littleax.blogspot.com/2015/06...-tracking.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
23.06.2015, 08:45 | #2 |
Модератор
|
Рекомендую посмотреть тем кто уже использует AIF в AX 2012, но не знаком с change tracking
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.06.2015, 09:46 | #3 |
Модератор
|
Если кто-то решит использовать change tracking на инстансе с несколькими partitions \ legal entities, сразу надо править
\Classes\AifChangeTracking\createJoinClausesAndPredicates \Classes\AifSqlCtChangeTracking\createRootTableJoin на предмет потерянных джойнов по Partition и DataAreaId полям. Иначе гарантированы тормоза и местами некорректные результаты выборки в getChangedKeys()
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Logger (5). |
24.06.2015, 16:29 | #4 |
Участник
|
Цитата:
Из позитива - быстро, надежно, не надо думать кто и где поменял, добавил или удалил данные, т.к. CT отслаживает все. То что МС двигается (меееедленно) в сторону использования существующих технологий это очень даже хорошо. SQL должен такие дела отслеживать, а не AX. CT существует с 2008 года, почему не встроили его в AX раньше непонятно.... Насколька я знаю, на данный момент CT используется в -
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: mazzy (2), macklakov (3), Vadik (1), Logger (1). |
24.06.2015, 16:44 | #5 |
Модератор
|
Спасибо
Цитата:
CT существует с 2008 года, почему не встроили его в AX раньше непонятно...
__________________
-ТСЯ или -ТЬСЯ ? |
|
25.06.2015, 09:53 | #6 |
Участник
|
Цитата:
Очевидно, для POS реализован отдельный механизм включения CT, поэтому AIF про таблицы для POS ничего не знает и в итоге происходит такой вот сюрприз. Видимо, над AIF и POS работали разные команды, в итоге имеем то что имеем А вообще, это повод запостить багу в MS, ибо на продакшене может вылезти неприятный такой "ой"... |
|
25.06.2015, 10:03 | #7 |
NavAx
|
Хм... Так для чего же тупые датчане в AX всю логику перенесли в AOT и использовали богопротивные табличные методы вместо таких привычных триггеров?
__________________
Isn't it nice when things just work? |
|
25.06.2015, 11:46 | #8 |
Участник
|
Цитата:
Сообщение от makbeth
для POS реализован отдельный механизм включения CT, поэтому AIF про таблицы для POS ничего не знает и в итоге происходит такой вот сюрприз.
Видимо, над AIF и POS работали разные команды, в итоге имеем то что имеем А вообще, это повод запостить багу в MS, ибо на продакшене может вылезти неприятный такой "ой"... разные команды... не то слово! блин... |
|
25.06.2015, 11:44 | #9 |
Участник
|
Цитата:
пока их купили, пока встроили в аксапту, пока ужаснулись и пока таки решили что надо что-то делать... наоборот, очень быстро |
|
23.06.2015, 10:22 | #10 |
NavAx
|
Цитата:
Но очень полезно знать о ее существовании, чтобы знать где еще стоит рыть, когда SQL сервер неожиданно ляжет.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2015 в 10:31. |
|
|
За это сообщение автора поблагодарили: trud (1). |
23.06.2015, 11:19 | #11 |
Модератор
|
Цитата:
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Ivanhoe (5). |
23.06.2015, 11:40 | #12 |
NavAx
|
Цитата:
Цитата:
Сообщение от Vadik
[*]если у нас сущность многоуровневая (см. к примеру клиентов\поставщиков с их адресами и контактами), не надо везде пропихивать код для отслеживания изменений на нижних уровнях или собирать эти изменения по всем уровням. Пример: клиенту добавился номер факса в GAB, и весь клиент теперь виден как измененная сущность. Удобно, нет ?
Цитата:
Сообщение от Vadik
[*]очень удобно когда подписчиков на изменения много. Вернее, нам вообще фиолетово сколько их, этих подписчиков. Мы просто выставили наружу порт и объявляем в течение какого максимального периода в нем видны измененные данные (допусти, две недели). А подписчики уже сами решают как забирать эти изменения. Допустим, утягивать изменения за последний час каждый час или изменения за неделю каждый день. Нам - все равно. Мы не пропихиваем свои изменения каждому подписчику, мы не отслеживаем доставку каждого изменения отдельным сообщением, мы не должны заботиться о доставке каждого сообщения каждому подписчику и правильном порядке их доставки. Подключение нового подписчика происходит абсолютно прозрачно
Цитата:
Сообщение от Vadik
[*]при включении change tracking начинают работать Document filters (какая связь между ними - не спрашивайте, не знаю, скорее всего "так получилось"). Пример - отдавать внешней системе только определенные группы клиентов или отдавать курсы только определенного типа для USD. Возможности по настройке фильтров - те же что и у стандартного Query в AX.
__________________
Isn't it nice when things just work? |
|
23.06.2015, 11:55 | #13 |
Модератор
|
Цитата:
Цитата:
Но я ведь правильно понимаю, что это происходит не само по себе, а специально обученный скрипт должен пройтись, проставить свойства на таблицах и прописать триггеры?
Цитата:
А как у нас с правами, компаниями, партициями?
Цитата:
при включении change tracking начинают работать Document filters
Цитата:
Это хорошо или плохо?
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.06.2015, 12:03 | #14 |
Участник
|
Цитата:
В чем проблема написать специально обученный скрипт(ы) один раз и использовать его для любой таблицы (что собственно в 2012 и сделано)? |
|
25.06.2015, 11:40 | #15 |
Участник
|
да, идея та же. реализация намного мощнее и лучше
угу. потому что... помимо того, что Vadik сказал: каждый подписчик получает свой набор изменений предположим один подключается в изменениям раз в час, а другой подключается раз неделю. второй получит больший набор изменений как только подключится. и да... это работает ОООООЧЕНЬ быстро по сравнению с аксаптовскими штатными вещами. плюс масштабирование от SQL хорошее. |
|
23.06.2015, 10:15 | #16 |
Участник
|
А кто-нить копал уже внутрь? Работа с SQL в ядре или доступна для просмотра в X++? Например, на 2009 или 4.0 можно портировать?
__________________
Ivanhoe as is.. |
|
23.06.2015, 11:25 | #17 |
Модератор
|
Насколько я вижу - ничего ядро-специфичного не используется
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.06.2015, 11:37 | #18 |
Участник
|
Есть специфика 2012 - временная таблица TempDB используется для получения истории изменений для выбранной таблицы. Заполняется прямым запросом на SQL используя команды Change Tracking, а вот данные потом уже обрабатываются в AX.
|
|
|
За это сообщение автора поблагодарили: Vadik (1). |
23.06.2015, 10:47 | #19 |
NavAx
|
P.S. Пересмотрел, кажись понял. Т.е. из скрипта нафигачить триггеров, на все таблицы входящие в query рассматривается более кошерным подходом по сравнению со скриптом, который пройдется по той же query и пропишет строчки в insert/update методы.
Виталию спасибо за разъяснения. Хоть и считаю это бредовым нововедением, но теперь хотя бы знаю в чем оно заключается.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2015 в 10:49. |
|
23.06.2015, 11:18 | #20 |
Участник
|
Цитата:
Кстати говоря, сейчас в 2012 реализована поддержка lite-версии функционала SQL - Change Tracking, который позволяет фиксировать сам факт того, что в таблице что-то изменилось. Есть еще более продвинутый (и более тяжеловесный) Change Data Capture, который позволяет также узнать какие произошли изменения с данными в таблицах. Задел под это в 2012 в некоторых местах есть в виде throw заглушек. |
|
|
За это сообщение автора поблагодарили: Vadik (1), Ivanhoe (3). |
Теги |
aif, ax2012, change tracking, mdm |
|
|