Показать сообщение отдельно
Старый 03.09.2009, 14:06   #20  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Столкнулся с такой же проблемой. Выяснилось следующее.
1. В EventCUD попадают все-таки события без разделения по пользователям. Т.е. если настроено 2 одинаковых оповещения (на одно событие) двум пользователям, то в табличке создастся одна запись (поле UserId - пусто). В общем-то это логично - но тем не менее это проверил.
2. В зависимости от того, на что настроены правила - записи в EventCUD попадают часто. Ну т.е. если к примеру настроить оповещение по зарезервированным позициям (на InventTrans) (морально-этические нормы насилования InventTrans и последующей производительности оставим в стороне) - то 400 записей в минуту очень даже может быть.
3. Периодическая операция \Основное\Периодические операции\Оповещения\Изменение основных оповещений трет после обработки записи из EventCUD. При этом сама выполняется некоторое время. Очевидно, что пока она трет записи - создаются новые - т.е. она физически может не успевать удалять записи.
4. Т.к. она выполняется на пакетнике - то ее можно запускать не чаще 1 раза в минуту - т.е. за минуту должно происходить столько событий (появляться записей в EventCUD), сколько эта периодическая операция сможет обработать не больше чем за эту же минуту. Либо придется всех останавливать, запускать одну эту операцию, ждать пока она разгребет EventCUD, после чего снова всем входить.
5. Эта же операция генерит внутренние оповещения в Аксапте. Но без нее все равно не будут работать оповещения по почте, т.к. только она разгребает EventCUD.
6. Т.к. на пакетнике помимо оповещений могут исполняться и другие процедуры, то для гарантии того, что периодическая операция обработки EventCUD будет запускаться как можно чаще (по кр мере не реже 1 раза в минуту) - для оповещений нужно организовывать отдельный пакетник, где будет крутиться только эта периодическая операция.
7. Есть такой метод \Data Dictionary\Tables\EventRule\Methods\A4AInvalidTables, в котором перечислены таблицы, на которые нельзя навешивать оповещения. Метод почти пустой - там находятся Event*-таблички, но кроме них там находится еще и InventSum. В общем-то понятно - что там делает InventSum, но тем не менее это должно навести на мысль тех, кто планирует вешать оповещения на InventTrans - что система оповещений может не справиться .
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 03.09.2009 в 14:17.
За это сообщение автора поблагодарили: Deusik (1), Ivanhoe (2), wojzeh (2), Sergey Petrov (1), player (1), ilyuha (1).