AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 22.12.2010, 09:46   #1  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Join Date: 08.12.2009
События Insert, Update, Delete у таблиц
Здравствуйте, уважаемые.

Есть задача отслеживать события Insert, Delete, Update у таблиц для выполнения определенных действий (скажем записи в лог) . Есть ли какой-либо системный класс, в который можно было добавить вызов метода класса записи в лог? Понимаю, что можно просто переопределить методы у нужных таблиц, и после вызова super(); совершать необходимые действия, однако, хотелось бы сделать более универсальный вариант.
Прошу не критиковать саму постановку задачи -- она "тестовая".

-------------
DAX 4.0
Old 22.12.2010, 09:51   #2  
Daiver is offline
Daiver
Участник
Самостоятельные клиенты AX
 
177 / 44 (2) +++
Join Date: 19.07.2005
Location: Москва
Функционал "Журнал базы данных" не подойдет?
Old 22.12.2010, 09:56   #3  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Join Date: 08.12.2009
Quote:
Originally Posted by Daiver View Post
Функционал "Журнал базы данных" не подойдет?
Задача "тестовая", и нужно сделать именно таким образом.
Модуль "Database Log" в системе отсутствует. Если, конечно, это имелось в виду.
Old 22.12.2010, 10:01   #4  
samolalex is offline
samolalex
Участник
samolalex's Avatar
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Join Date: 18.06.2010
Location: Москва
Т.е. у вас отсутствуют следующие пункты меню?
Администрирование -> Запросы -> Журнал базы данных
Администрирование -> Отчеты -> Журнал базы данных
Администрирование -> Настройки -> Журнал базы данных
__________________
С уважением, Александр.
Old 22.12.2010, 10:04   #5  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Join Date: 08.12.2009
Quote:
Originally Posted by samolalex View Post
Т.е. у вас отсутствуют следующие пункты меню?
Администрирование -> Запросы -> Журнал базы данных
Администрирование -> Отчеты -> Журнал базы данных
Администрирование -> Настройки -> Журнал базы данных
Подтверждаю. Нет таких пунктов меню.
Old 22.12.2010, 10:16   #6  
samolalex is offline
samolalex
Участник
samolalex's Avatar
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Join Date: 18.06.2010
Location: Москва
Скорее всего, вы уже читали эту тему: Один из подходов к анализу движения данных в AXAPTA. Но если вдруг еще нет, может здесь будет что-то полезное.

Кусок из сообщения приведенной темы:

Отследить какие таблицы модифицируются, трассировкой обращений к БД:

Использовать возможность AXAPTA меню Сервис->Параметры вкладка Разработка, поставить галочку в Мониторинг – Запросов к базе данных. После этого произвести необходимую операцию, затем отключить мониторинг. Теперь в окне сообщений есть последовательность обращений к Базе Данных (таблица.операция()). Очень полезная функция перед мониторингом – очистить окно сообщений (меню Команда->Очистить).

Теперь можно определить какие таблицы изменялись, просто выписать таблицы с командами update, delete, insert …
__________________
С уважением, Александр.
This post has been rated by: Prophetic (1).
Old 22.12.2010, 10:25   #7  
jonny is offline
jonny
Участник
jonny's Avatar
Самостоятельные клиенты AX
 
217 / 124 (5) +++++
Join Date: 10.02.2006
Location: СПб-Екб-?
Если честно, не знаю как в AX 4.0 , но вроде там есть механизм оповещений, как в AX 2009, поэтому должно быть все одинаково. Если так, то можно использовать класс Application и 4 его метода: eventDelete, eventInsert, eventRenameKey и eventUpdate.
Эти методы вызываются ядром при соответствующих действиях с таблицами.
This post has been rated by: S.Kuskov (3), Prophetic (1).
Old 22.12.2010, 10:37   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Quote:
Originally Posted by Prophetic View Post
Понимаю, что можно просто переопределить методы у нужных таблиц, и после вызова super(); совершать необходимые действия
Не забывайте, что некоторые изменения данных могут проходить в обход перекрытых тригеров на таблице, как в прочем и в обход функционала "Database Log". Я имею в виду методы doDelete/doUpdate/doDelete и skipDataMethods/skipDeleteMethod/skipDatabaseLog.
This post has been rated by: Prophetic (1).
Old 22.12.2010, 10:49   #9  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Join Date: 08.12.2009
Quote:
Originally Posted by samolalex View Post
Скорее всего, вы уже читали эту тему: Один из подходов к анализу движения данных в AXAPTA. Но если вдруг еще нет, может здесь будет что-то полезное.

Кусок из сообщения приведенной темы:

Отследить какие таблицы модифицируются, трассировкой обращений к БД:

Использовать возможность AXAPTA меню Сервис->Параметры вкладка Разработка, поставить галочку в Мониторинг – Запросов к базе данных. После этого произвести необходимую операцию, затем отключить мониторинг. Теперь в окне сообщений есть последовательность обращений к Базе Данных (таблица.операция()). Очень полезная функция перед мониторингом – очистить окно сообщений (меню Команда->Очистить).

Теперь можно определить какие таблицы изменялись, просто выписать таблицы с командами update, delete, insert …
Да, читал, благодарю. Это один из вариантов решения.
Old 22.12.2010, 11:18   #10  
Ivanhoe is offline
Ivanhoe
Участник
Ivanhoe's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Join Date: 29.09.2005
Location: Санкт-Петербург
Quote:
Originally Posted by Prophetic View Post
Подтверждаю. Нет таких пунктов меню.
А у вас случайно не лицензии по переходу с 3.0? Если да, то может попробовать его получить (кстати, при этом и Оповещений может не быть) от MS?

В новой 4.0 эта функциональность доступна бесплатно.
__________________
Ivanhoe as is..
This post has been rated by: Prophetic (1).
Old 22.12.2010, 11:18   #11  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Join Date: 08.12.2009
Quote:
Originally Posted by jonny View Post
Если честно, не знаю как в AX 4.0 , но вроде там есть механизм оповещений, как в AX 2009, поэтому должно быть все одинаково. Если так, то можно использовать класс Application и 4 его метода: eventDelete, eventInsert, eventRenameKey и eventUpdate.
Эти методы вызываются ядром при соответствующих действиях с таблицами.
Благодарю, именно это мне и нужно было.
Добавлю от себя, что далее в этих методах вызывается createEventCUD(), который как раз делает необходимые мне действия.
Old 22.12.2010, 11:20   #12  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Join Date: 08.12.2009
Quote:
Originally Posted by Ivanhoe View Post
А у вас случайно не лицензии по переходу с 3.0? Если да, то может попробовать его получить (кстати, при этом и Оповещений может не быть) от MS?

В новой 4.0 эта функциональность доступна бесплатно.
Совершенно верно, был переход с 3.0. Делал не я, происходило достаточно давно, с поддержки компания ушла. Даже не знаю, насколько возможно это сделать.
Old 22.12.2010, 11:26   #13  
Ivanhoe is offline
Ivanhoe
Участник
Ivanhoe's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Join Date: 29.09.2005
Location: Санкт-Петербург
Без поддержки - никак Если есть оповещения - используйте их. Они работают на том же алгоритме, что и журнал БД.
__________________
Ivanhoe as is..
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
В AX2009 не вызываются методы insert/update/delete временной таблицы S.Kuskov DAX: Программирование 14 24.06.2011 19:24
fatihdemirci: Axapta’dan direk SQL Insert, Update ve Delete işlemleri Blog bot DAX Blogs 0 17.09.2010 20:05
AIF: проблема с update() и delete() Delfins DAX: Программирование 3 13.11.2009 02:41
gatesasbait: Table caching and record delete()/update()/next Blog bot DAX Blogs 3 24.04.2008 22:55
Отображение связных таблиц. Сплиттер. Автоувеличение индекса. Delete Action. sguryev DAX: База знаний и проекты 0 14.12.2001 06:15

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 04:33.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.