Показать сообщение отдельно
Старый 16.09.2009, 11:41   #1  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
! Ошибки в настройке оповещений и журнала БД
Dynamics AX 4.0
Kernel 4.0.2503.560
Application 4.0.2501.347

Проблема:
Настроено оповещение на удаление записи в таблице. Через некоторое время правило оповещения удаляется за ненадобностью (или выключается). При этом всё равно формируются записи EventCud и при попытке сформировать оповещение (периодическое операцией) выдается ошибка.

Выяснилось:
1. При создании правила заполняется таблица DatabaseLog (которая используется для настройки журнала базы данных), при этом используются типы:
EventInsert 4
EventDelete 5
EventUpdate 6
EventRenameKey 7.

2. При удалении (или снятии галки "Включено") правила оповещения вышеуказанная таблица никак не меняется, т.е. настройка остается. Я так понимаю, это ошибка - создаются лишние строки в EventCUD.

3. Если после настройки оповещения создать настройку журнала базы данных на ту же таблицу (при этом в мастере таблица уже будет отмечена галкой в общем списке, а в списке настройки событий для записи все галки будут сняты), то запись от правила оповещения будет обновлена (изменен тип) на:
Insert 0
Delete 1
Update 2
RenameKey 3.
Это ошибка, т.к. после этого оповещения перестанут создаваться, будет только запись в журнале базы данных.

Как обойти проблемы:
1. Если нужны одновременно и журнал базы данных, и оповещение - создавать сначала первое, потом второе.
2. Если нужно выключить (отменить) оповещение - нужно создать настройку в журнале базы данных (если она уже есть - сначала удалить), потом удалить.

Все вышенаписанное протестировано на типе события "удаление записи", для других, возможно, будет аналогично.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: sukhanchik (4), alica_17 (1), AlGol (2), alex55 (1).