|
![]() |
#1 |
Участник
|
![]()
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.. |
|
|
За это сообщение автора поблагодарили: AlGol (2), sukhanchik (4), alica_17 (1). |
![]() |
#2 |
Administrator
|
Есть такая фишка, подтверждаю. Сам не ковырял - но симптомы знакомые - отключаешь оповещения, а они не отключаются. Причем не на удалении, а на изменении записи.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#3 |
Гость
|
В 2009 все нормально работает
|
|
![]() |
#4 |
Участник
|
Дополнение:
В указанной версии системы (см. первый пост) при удалении правила оповещения делается попытка удалить запись в DatabaseLog, но при этом используется таблица доменов (из настройки прав доступа). У нас домены не используются (из-за отключенного лицензией ключа SysDomain) - запись поэтому и не удаляется. При этом кода анализа на выключение правила нет - т.е. если б домены и были, то выключение правила привело к той же ошибке.
__________________
Ivanhoe as is.. |
|
![]() |
#5 |
Участник
|
Дополнение 2 про DAX 2009:
Внешне изменений по сравнению с 4.0 не видно, при отключении правила ничего не делается. При отстутствии лицензии на домены, запись в DatabaseLog также не будет удалена. Вывод: как минимум ошибка номер один есть и в Dynamics AX 2009 SP1 EE Roll-up 2.
__________________
Ivanhoe as is.. |
|
![]() |
#6 |
Участник
|
AX 2012 R2. Похожее поведение при настройке логирования данных и оповещений - если настроить лог, то оповещение затирается. Домены не используются.
Решение опять же - сначала лог, потом - оповещение.
__________________
Ivanhoe as is.. |
|
![]() |
#7 |
Участник
|
Есть фикс: 2928472
__________________
Ivanhoe as is.. |
|