|
07.10.2008, 08:49 | #1 |
Участник
|
Механизм отслеживания событий в Work Flow
Как Work Flow узнает о наступлении событий с объектом? На каком уровне он это событие перехватывает?
Я считал что триггер на вьюшке или таблице в SQL Server оповещает, но по реакции Work Flow видимо где то на уровне самой СRM? Ситуация следующая: есть Work Flow, в нем на одном из этапов создается задача, далее ждется ее переход в состоянии Завершена или Отменена и после этого продолжается дальше. Так вот, если задачу закрыть через стандартный механизм из окна задачи с любым статусом (Завершено/Отменено) то Work Flow начинает отрабатывать дальше как и положено, отловив событие. А если как у нас - по пользовательской кнопке на форме с задачей (добавлена через ISV) и отрабатыванием sql команды (update task set statecode=...,statuscode=...,actualend=... where activityid=...) на asp странице веб узла IIS (обращение напрямую к вьюшке объекта, правда нефильтрованной, на sql server), то Work Flow так и остается в ожидании завершения задачи, хотя та уже давно стала "Завершена". Может кто знает подробнее механизм срабатывания Work Flow и как его в моей ситуации заставить увидеть событие наступившее в базе?
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
07.10.2008, 09:05 | #2 |
Участник
|
Точно, на уровне SQL Server никаких триггеров нет для отслеживания изменений в объекте. Ни на таблицах ни на вьюшках.
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
07.10.2008, 09:46 | #3 |
MCTS
|
Я так думаю что проблемма заключается в том, что при завершении задачи через интерфейс системы ее присваивается один statecode, а при завершении задачи Вашим способом другой. Создайте однаковые задачи например звонок и завершите их двумя способами и сравните statuscode ы SQL базе, должно помочь.
__________________
|
|
07.10.2008, 10:45 | #4 |
Участник
|
Вон значит в чем дело...
Так как статусы апдейтит одинаково... Писал не я, у меня просят чтоб заработало и по кнопкам тоже Я думал что апдейт через фильтрованную вьюшку это не криминал... Значит буду разбираться в веб-сервисах, пока только в теории знаю что это такое...
__________________
Сергей Осипов, MCTS:SQL Server 2005, ООО "Программные технологии", Самара |
|
07.10.2008, 10:35 | #5 |
Moderator
|
О чем вы говорите!!! Сколько раз повторять - НЕЛЬЗЯ писать прямые апдейты в базу! Используйте веб-сервисы! Вот от них Workflow и узнает что произошло событие смены состояния!!!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: sergeyjb (1). |
07.10.2008, 11:47 | #6 |
Moderator
|
Прошу прощения за срыв эмоций. Читать из них можно, но лучше только в отчетах. Все прочие запросы к базе надо делать через веб-сервисы. Это рекомендуемое требование, так как майкрософт оставляет за собой право менять структуру базы по собственному усмотрению и не будет нести ответственность за те беды, коорые это нанесет работоспособности вашей системы.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|