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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2015, 12:03   #1  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от macklakov Посмотреть сообщение
Если я пользую DatabaseLog, то я ожидаю версионирования полноценного. А CT этого не дает.
Дает. Фиксируются все изменения, причем каждое изменение порождает новую версию в CT. Т.е. ровно те же возможности, что дает DatabaseLog. Особенность в том, что версии на SQL хранятся только ограниченное время (2 дня по умолчанию) и нужно периодически эти изменения считывать, чтобы они не потерялись.

Цитата:
Сообщение от macklakov Посмотреть сообщение
Но я ведь правильно понимаю, что это происходит не само по себе, а специально обученный скрипт должен пройтись, проставить свойства на таблицах и прописать триггеры?
В чем проблема написать специально обученный скрипт(ы) один раз и использовать его для любой таблицы (что собственно в 2012 и сделано)?
Старый 23.06.2015, 12:38   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,244 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от makbeth Посмотреть сообщение
Дает. Фиксируются все изменения, причем каждое изменение порождает новую версию в CT. Т.е. ровно те же возможности, что дает DatabaseLog. Особенность в том, что версии на SQL хранятся только ограниченное время (2 дня по умолчанию) и нужно периодически эти изменения считывать, чтобы они не потерялись.
А как посомотреть старые и новые значения поля в таблице?

Цитата:
Сообщение от makbeth Посмотреть сообщение
В чем проблема написать специально обученный скрипт(ы) один раз и использовать его для любой таблицы (что собственно в 2012 и сделано)?
Управление модификациями. Как мне перенести то, что этот скрипт нагенерил? Как откатить? Как контролировать версии?
__________________
Isn't it nice when things just work?
Старый 23.06.2015, 12:50   #3  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от macklakov Посмотреть сообщение
А как посомотреть старые и новые значения поля в таблице?
Это как раз умеет Change Data Capture. В как я уже писал, в Aif реализованы зачатки его поддержки. Видимо еще нигде не пригодился.

Цитата:
Сообщение от macklakov Посмотреть сообщение
Управление модификациями. Как мне перенести то, что этот скрипт нагенерил? Как откатить? Как контролировать версии?
Зачем переносить то, что нагенерил скрипт? Правильнее перенести скрипт в новую среду и дать ему нагенерить то что нужно.
Откат делается парным скриптом. По моему, это очевидно, когда функционал позволяет включать/отключать свои возможности для определенных объектов системы.
Старый 23.06.2015, 14:36   #4  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,244 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от makbeth Посмотреть сообщение
Это как раз умеет Change Data Capture. В как я уже писал, в Aif реализованы зачатки его поддержки. Видимо еще нигде не пригодился.
Интересно бы было эту штуку вместо DatabaseLog использовать. Т.к. DatabaseLog читать неудобно и медленно.
Цитата:
Сообщение от makbeth Посмотреть сообщение
Откат делается парным скриптом. По моему, это очевидно, когда функционал позволяет включать/отключать свои возможности для определенных объектов системы.
Я специально приводил сценарий двух query c одинаковой таблицей. Парный скрипт сброса параметров вытрет слишком много, т.к. не знает о существовании другого скрипта.
Т.е. нужен список нужных скриптов и один скрипт, который стирает вообще все.
__________________
Isn't it nice when things just work?
Старый 23.06.2015, 15:42   #5  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от macklakov Посмотреть сообщение
Я специально приводил сценарий двух query c одинаковой таблицей. Парный скрипт сброса параметров вытрет слишком много, т.к. не знает о существовании другого скрипта.
Эта проблема в Aif решается введением параметра scope, который для разных query разный. Что в итоге приведет к созданию для одной и той же таблицы двух записей в списке таблиц с включенным CT с разным scope. При отключении query от CT одного из query будет удалена только одна запись из списка, и это не приведет к вытиранию триггеров и отключению CT для таблицы в БД при обработке списка таблиц скриптом. Соответственно, при отключении другого query запись из списка будет удалена, и скрипт, не обнаружив таблицу в списке, отключит для нее CT и удалит все изменения, которые были добавлены при включении.
За это сообщение автора поблагодарили: macklakov (3).
Старый 23.06.2015, 13:11   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от macklakov Посмотреть сообщение
А как посомотреть старые и новые значения поля в таблице?
Ну зачем в сценариях интеграции передавать "старое значение поля" ? А что внешняя система будет делать с моим "старым" значением из AX если ее (системы) "старое" (текущее) отличается ? А какое именно "старое" значение поля передавать (и откуда его брать) в случае если у меня внешних систем несколько - отслеживать еще и версию для каждой внешней системы отдельно в AX ? Нет, я понимаю, это круто, но - ЗАЧЕМ ?
Цитата:
Управление модификациями. Как мне перенести то, что этот скрипт нагенерил? Как откатить?
Эти модификации не нужно переносить потому что это не модификации как таковые а вспомогательные объекты \ настройки которые AIF сам создаст при разворачивании \ настройке сервиса в новой среде
Цитата:
Как контролировать версии?
У этих вспомогательных объектов сгенерированных автоматически версионность как таковая отсутствует, потому что генерятся они одинаковыми
Из того, что реально не хватает - это хоть какой-то инструментарий в виде пары-тройки форм для управления \ просмотра того что уже настроено (хотя репозитарий со списком таблиц со всключенным Change tracking и созданных триггеров присутствует)
__________________
-ТСЯ или -ТЬСЯ ?
Старый 23.06.2015, 13:23   #7  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от Vadik Посмотреть сообщение
Из того, что реально не хватает - это хоть какой-то инструментарий в виде пары-тройки форм для управления \ просмотра того что уже настроено (хотя репозитарий со списком таблиц со всключенным Change tracking и созданных триггеров присутствует)
Так там, собственно, кроме указанных табличек создается только одна хп, которая при вызове включает CT для указанных в репозитарии табличек, и отключает для тех, которых в списке нет. И... все. Остальное делается прямыми запросами, формируемыми в коде классов AifChangeTracking*.
Старый 23.06.2015, 13:34   #8  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,244 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Vadik Посмотреть сообщение
Ну зачем в сценариях интеграции передавать "старое значение поля" ? А что внешняя система будет делать с моим "старым" значением из AX если его "старое" (текущее) отличается ? А какое именно "старое" значение поля передавать (и откуда его брать) в случае если у меня внешних систем несколько - отслеживать еще и версию для каждой внешней системы отдельно в AX ? Нет, я понимаю, это круто, но - ЗАЧЕМ ?
Еще раз, я хочу понять применимость этой штуки. Если это лишь самые прямолинийные сценарии интеграции, ну что ж, с microsoft спорить сложно. Но может оно еще хоть на что-то годится?
Цитата:
Сообщение от Vadik Посмотреть сообщение
Эти модификации не нужно переносить потому что это не модификации как таковые а вспомогательные объекты \ настройки которые AIF сам создаст при разворачивании \ настройке сервиса в новой среде
Эти настройки обратимы? Мы сперва накатили, а потом поняли что вот конкретно этот сервис мы больше не будем пользовать. Есть более-менее простой сопособ откатить результаты работы этого скрипта?
__________________
Isn't it nice when things just work?
Теги
aif, ax2012, change tracking, mdm

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: How to perform a data center change (change of the physical location) where a SQL server 2008 R 2 cluster installation and MS Dynamics AX 4.0 is involved? Blog bot DAX Blogs 0 21.06.2014 19:19
emeadaxsupport: Purchase order inventory transactions and active change management Blog bot DAX Blogs 0 15.04.2014 20:12
doens.be: Change the language at runtime Blog bot DAX Blogs 0 30.11.2011 10:11
Khue Trinh: AX 2009 Quality Management - Quality Control Blog bot DAX Blogs 1 04.07.2008 16:01

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

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

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