Тема: Workflow
Показать сообщение отдельно
Старый 15.05.2006, 16:16   #13  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от blokva
Да напрямую нет такой возможности, но на сколько я помню, в 3-ке любое изменение БД обрамляется парой, ttsBegin-ttsCommit, что автоматом вызывает методы:
application.ttsNotifyBegin()
и
application.ttsNotifyCommit()
вставляем соответствующую обработки и-и-и, чем не система событий?
Верно. Только как определить из какой таблицы и из какой записи пришло событие? Проблема в том, что Axapta не позволяет перекрывать глобально xRecord\Update(). Есть \Classes\ClassFactory\createRecord(), но он срабатывает только при вставке, когда автоматически или принудительно был вызван метод initValue(), но не при обновлении.

На самом деле, довольно интересно, как незаметный архитектурный недостаток ядра системы затрудняет построение важных блоков приложения.
Цитата:
Как я понимаю, это механизм alert-ов? Кстати, не знаешь, как они влияют на производительность?
Да, я о нем. Не знаю, как оно на производительность влияет. Меня больше интересовало бы, не пошли ли разработчики по пути наименьшего сопротивления и не сынтегрировали ли alerts с протоколом БД, как это я в своем решении сделал (в качестве hook используются методы \Classes\Application\logUpdate, logInsert). Такое решение работает, но забивает базу бессмысленными логами.

Последний раз редактировалось EVGL; 15.05.2006 в 16:21.