AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.05.2009, 20:20   #1  
Yarilo is offline
Yarilo
Участник
 
19 / 10 (1) +
Регистрация: 08.08.2008
Адрес: Харьков, Украина
Вопросы о псевдотранзакционности
Доброго времени суток всем!

Я сейчас пишу плагины под СРМ 4.0, во многих стоит как требование выполнение под одной транзакцией. Поскольку транзакционность в чистом виде, насколько я понял, невозможна при работе через веб-сервисы, то было принято решение хотя бы сделать ручной откат внесенных изменений в случае перехвата эксепшена.
Собственно первый вопрос - нормальная ли это практика, или есть более надежные способы решения вопроса транзакционности?

Но как бы там ни было, с ручным восстановлением внесенных изменений все было хорошо, пока не понадобилось откатывать удаление. Поскольку запись реально не удаляется, а меняется только флаг удаления, то новую запись с тем же ИД вставить нельзя. Я вижу тут только два варианта: либо ансаппорт и простая смена флага в таблице, либо саппорт - и создание новых записей со старыми данными одновременно с геморройной сменой ИД во всех сущностях, которые ссылаются на удаленные записи (с необходимостью дорабатывать плагин по мере появления новых ссылок).
Оба способа мне видятся одинаково плохими. Какой из них выбрать, пока не решил. Очень зол на МС за отсутствие легальной функции восстановления после удаления.
Есть ли у кого мысли на тему, какой все-таки лучше выбрать способ?

П.С. В промежутке 22.05 - 24.05 буду без инета, так что ответить на возможные вопросы смогу не раньше понедельника, но все же надеюсь услышать некоторые соображения. Заранее спасибо.
Старый 23.05.2009, 09:21   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Насколько я понял, выполнение плагинов внутри системных транзакции станет возможно в 5.0, что до 4.0, то тут с откатом изменений все, действительно, не сладко. Если выбирать из двух зол, то я бы безусловно снимал флаг на удаление. Думаю вы не встретитесь со случаем, когда сервис удаления успеет убить запись до того момента, как вы успеете снять флаг, но все же эта ситуация возможна.
Что до ансапорта, обращаю ваше внимание, что не все методы веб сервиса заявлены в SDK. На каждый метод есть еще 2 помеченных For Internal Use Only. Попробуйте провести с ними ряд экспериментов. Может все же удастся подсесть на системную транзакцию?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Yarilo (1).
Старый 25.05.2009, 11:52   #3  
Yarilo is offline
Yarilo
Участник
 
19 / 10 (1) +
Регистрация: 08.08.2008
Адрес: Харьков, Украина
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Что до ансапорта, обращаю ваше внимание, что не все методы веб сервиса заявлены в SDK. На каждый метод есть еще 2 помеченных For Internal Use Only. Попробуйте провести с ними ряд экспериментов. Может все же удастся подсесть на системную транзакцию?
Про такие методы не знал, спасибо за наводку. Попробую порыться в них.

Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Если выбирать из двух зол, то я бы безусловно снимал флаг на удаление. Думаю вы не встретитесь со случаем, когда сервис удаления успеет убить запись до того момента, как вы успеете снять флаг, но все же эта ситуация возможна.
Я вот тоже склонялся к мысли, что лучше прямые запросы, чем плодить одинаковые записи. Оставлю этот метод как резервный, если эксперименты с вышеуказанными методами не дадут результата.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопросы импорта в CRM iradaev Dynamics CRM: Функционал 6 21.01.2009 12:01
CRM 1.2 + AD интересные факты и вопросы SergeyET Dynamics CRM: Администрирование 6 24.02.2006 14:40

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:28.