06.08.2021, 18:37 | #1 |
Участник
|
Генерация оповещений из пустоты (DAX2012)
Добрый день!
При попытке оптимизации функционала оповещений столкнулся непонятной ситуацией. Настройки в EventRule нет, однако оповещение о вставке в таблицу появляется. Установка точки в Application.eventInsert() ничего не дала. Система из super() insert или doInsert через xRecord попадает сразу туда. Проверка наличия скрытых записей в скуле также ничего не дала. Каким образом может создаваться оповещение? |
|
06.08.2021, 23:34 | #2 |
Участник
|
Табличка наследуемая?
Проверяйте всю иерархию. |
|
07.08.2021, 00:54 | #3 |
Участник
|
Нет, таблица обособленная.
|
|
07.08.2021, 07:29 | #4 |
Участник
|
Попробовать вставить в текст оповещения xSession::xppCallStack() ?
|
|
07.08.2021, 14:34 | #5 |
Участник
|
Это второе что было сделано.(Просьба не комментировать реализацию. Досталось по наследству )
Вот что показывает: (S)\Classes\Application\eventInsert:19 (S)\Classes\xRecord\Insert:0 (S)\Data Dictionary\Tables\PdsRebateGroupTable\Methods\Insert:3 (S)\Data Dictionary\Tables\PdsRebateGroupTable\Methods\clculateGroup:17 (S)\Classes\PdsRebateTableGroupCalculate\doCalculate:3 (S)\Classes\PdsRebateTableGroupCalculate\run:9 (S)\Classes\PdsRebateTableGroupCalculate\calculate:3 (C)\Classes\PdsRebateGroupTableListPageInteraction\initializeQuery:8 (C)\Classes\FormRun\init:0 (C)\Classes\SysSetupFormRun\init:8 |
|
07.08.2021, 16:28 | #6 |
Участник
|
В нашей версии АХ2012 таких таблицы и класса нет.
PdsRebateGroupTable PdsRebateTableGroupCalculate |
|
07.08.2021, 18:58 | #7 |
Участник
|
Да, это местная доработка, где постоянная таблица выступает в роли темповой
И при каждом открытии формы, Система пересоздает записи. И каждый раз рождается по 70к+ записей оповещений, которые никому не приходят. Зато убивают пакет по оповещениям. Очень не хочется писать костыль по этой таблице только из-за того что не могу понять как оповещения рождаются. |
|
07.08.2021, 21:19 | #8 |
Участник
|
А Trace Parcer-ом отловить пробовали?
|
|
08.08.2021, 07:42 | #9 |
Участник
|
Посмотрите наличие записей в databaselog с logtype = 4 (EventInsert), маловероятно, конечно, что там будет запись с таким типом, только если eventrule чистили скриптом каким нибудь. А вот настроек в оповещениях по этой табличке никогда не было ? У меня бывало, что оповещения переставали генерироваться в пакетных режимах на соседних АОСах только после рестарта, проблему не исследовал, возможно кеш, у вас вроде не CIL, поэтому это скорее не ваш случай.
В целом вариант со skipDatabaseLog\skipEvents вполне имеет право на жизнь в случае массовых обработок - для разовых(ручных) вставок код не меняется, а для массовых, если есть необходимость то, можно как то более оптимально реализовать.
__________________
Sergey Nefedov |
|
08.08.2021, 16:48 | #10 |
Участник
|
Ошибки в настройке оповещений и журнала БД
Может, не стоит фикс? Выше SRF написал куда смотреть в первую очередь.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: DesparioN (1). |
08.08.2021, 19:10 | #11 |
Участник
|
Да, запись действительно была в databaselog. Мануал помог. Благодарю.
|
|