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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.07.2015, 01:01   #1  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
? Sync или Async
Коллеги, приветствую.
Представим, что у нас на вход плагина подается большой (относительно) поток данных. Пусть это будет событие создания записи электронной почты (триггер). Плагин в свою очередь должен создать объект какой-то другой сущности и проставить ему уникальный порядковый номер х+1, где х, соответственно предыдущий номер. Вопрос - правильно ли я понимаю, что для подобной задачи больше подойдет асинхронный плагин? Ведь при синхронном запуске, на большом потоке данных, не исключена вероятность задублирования номеров.
Старый 10.07.2015, 08:29   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Добрый день,

Вне зависимости от типа запуска могут быть дубликаты и их наличие зависит только от того каким образом вы реализуете автоинкремент.

Если у вас лучший случай - доступны плагины без изоляции, то вам открыт более простой в реализации способ - использование локальной переменной для плагина и использование её в качестве лока. Посмотрите тут реализацию - https://crm2011autonumber.codeplex.c...ceGenerator.cs

В худшем случае - у вас недоступны плагины без изоляции. И тогда самым простым решением является реализация следующего сценария:
1. Создание базы и таблицы в Microsoft SQL (не важно где) с полем-автоинкрементом.
2. Разработка вебсервиса, который по его вызову будет вставлять новую строку в таблицу и получать новосгененрированное значение.
3. Отдавать полученное значение вызвавшей стороне.
4. Вызов этого вебсервиса из плагина с использованием полученного результата.

PS если у кого есть альтернативные идеи - не стесняемся, делимся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: magicandy (1).
Старый 10.07.2015, 11:05   #3  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
На большом потоке данных, у меня и на асинке были дубликаты
причем что все делалось стандартными бизнеспроцессами.
Но у меня поток был 5-7 записей в секуду.
__________________
Все что вам нужно - это мозК
Еда - топливо... Одежда - необходимость...
Старый 14.07.2015, 10:53   #4  
Артем 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
Асинхронные операции меньше влияют на производительность, так как не задерживают очередь событий, но, насколько я помню, время и последовательность их выполнения не гарантируется. В вашем случае, скажите мне что важнее: последовательность, или уникальность? Если уникальность, тогда проще всего добавить к порядковому номеру случайную последовательность. Например, так сделано в системе с нумерацией Кампаний, Обращений, Заказов, Счетов и Предложений. В начале идет Префикс, затем порядковый номер определенной разрядности, а потом постфикс генерированный случайным образом. Данное решение и быстрое и простое. Вероятность повторения номера стремится к нулю.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 14.07.2015, 14:07   #5  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Коллеги, спасибо все за ответы.
На самом деле уже с успехом применяю crm2011autonumber. Но хотелось всё же понять некоторые механизмы. Правда, я думал, что асинк-плагины работают несколько иначе, чем асинк-БП - выстраиваются в некоторую последовательную очередь отработки. То есть, пока один не отработает, второй не запустится.
Решение, подобное встроенному autonumber не подходит, так как номер должен быть читабельный и легко передаваемый устно.
Старый 14.07.2015, 18:34   #6  
Артем 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
Асинхронные плагины и БП выполняются одной и той же службой, поэтому имеют много общих черт. В SDK достаточно подробно об этом написано, не буду повторяться.

Насчет "нечитаемости" возражу - мы это решение применяли с успехом. По номеру удобно сортировать, постфикс, чаще всего, говорить не приходится, так как номер не повторяется.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gustafwesterlund: Server side Sync Trouble shooting Blog bot Dynamics CRM: Blogs 0 22.04.2014 18:11
crminthefield: UR12/Polaris Changes to Dynamics CRM 2011 Async Maintenance Jobs Blog bot Dynamics CRM: Blogs 0 25.03.2013 18:11
East Ocean - Technical: How to control what CRM records sync into Microsoft Office Outlook Blog bot Dynamics CRM: Blogs 0 03.12.2012 17:11
crminthefield: Cleaning up CRM Sync Entry tables Blog bot Dynamics CRM: Blogs 0 05.10.2012 23:12
crminthefield: Workflow and Async records in Microsoft Dynamics CRM Blog bot Dynamics CRM: Blogs 0 05.05.2011 15:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:11.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.