20.11.2012, 12:49 | #1 |
Участник
|
CRM 2011 ошибка при RetrieveMultiple
Код: IOrganizationService s = serviceFactory.CreateOrganizationService(context.UserId); QueryExpression qe = new QueryExpression("alv_reflegalinfoaccount"); qe.ColumnSet = new ColumnSet("alv_product", "alv_payment", "alv_service", "alv_reflegalupdate", "alv_typereflegal"); qe.Criteria.AddCondition(new ConditionExpression("alv_account", ConditionOperator.Equal, accountId)); var list = s.RetrieveMultiple(qe).Entities; if (list.Count == 0) return false; foreach (Entity ent in list) блаблабла { но он я думаю живет вобще своей жизнью потому что падает в ПЛАГИНЕ (а иногда не падает) с текстом ошибки An unexpected error occurred что вот ему надо... вытаскиваю обычные поля... ну они могут быть и не заполнены, но это я думаю не критично, фильтр обычный |
|
20.11.2012, 13:37 | #2 |
Чайный пьяница
|
Здравствуйте,
Советую посмотреть трейс. Думаю там будет ответ на ваш вопрос.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
20.11.2012, 16:02 | #3 |
Заноза в заднице
|
А на какой строке хоть падает - можно определить?
А вообще, если пользоваться SDK (имеется в виду toolkit для Visual Studio) - там вообще никакой мороки нет с созданием и отладкой плагинов. Про SDK у Артема Енота в блоге есть статья.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! Последний раз редактировалось Likefire; 20.11.2012 в 16:05. |
|
20.11.2012, 16:10 | #4 |
Moderator
|
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
26.12.2012, 08:52 | #5 |
Участник
|
После долгого перерыва вновь вернулся к этой проблеме.
SQL Generic Error. Вот эта ошибка лезет и лезет Причем лезет она из разных мест, в основном когда делаю выборку Multiplie Уже во всех плагинах (которые писал по незнанию) прооптимизировал что мог в основном new ColumnSet(true) менял на те поля которые нужны, все стало даже значительно быстрей работать. Но ошибка эта всеравно остается. И при повторении действия пропадает. Юзеров это мучает. Далее, включил я трассировку, несколько дней изучал эти метры логов И пришел к выводу. Происходит дэдлок. Транзакция (идентификатор процесса 96) вызвала взаимоблокировку ресурсов блокировка | буфер связи с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. ну и что с этим делать не понятно... былоб хотя б в одном плагине. А то плагинов много, и в практически каждом из них иногда происходит эта ошибка. Иногда, но в каждом, дает в скупе МНОГО.... Кто сталкивался? |
|
26.12.2012, 09:21 | #6 |
Участник
|
нашел забавный код
http://www.broes.nl/2011/09/fighting...tom-workflows/ типа если блокировка, то подождать секундочку и еще раз ))) ну это бред чесслово)) |
|
26.12.2012, 10:11 | #7 |
Участник
|
Блокировка возможна. если Ваш плагин работает на событие сущности
alv_reflegalinfoaccount ЧТобы ее не было необходимо. qe.NoLock = true; Но это даст "грязные данные" Также возможно перевести Ваш плагин в асинхронный режим. Или если он зарегистрирован на шаге 20, перевести его на шаг 10. |
|
|
За это сообщение автора поблагодарили: kh_heckfy (1). |
26.12.2012, 11:29 | #8 |
Участник
|
А можно подробнее про "грязные данные"
что это значит? |
|
26.12.2012, 12:48 | #9 |
Участник
|
Возможно не актуальные.
Что происходит при блокировке. Есть запись, которую сейчас к примеру обновляют. Когда Вы используете NoLock неясно, какие данные из этой записи Вы получите. Старые, новые или половину старых и половину новых. Это есть рассматривать with (nolock) из SQL. Здесь я думаю аналогично. |
|
26.12.2012, 12:48 | #10 |
Чайный пьяница
|
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
26.12.2012, 13:40 | #11 |
Участник
|
да прочитал уже... понял...
блин и как же поступить... плагины все стоят с ORDER по умолчанию Может проставить им всем надо порядок... типа 1й выполнился, потом второй |
|
26.12.2012, 13:52 | #12 |
Чайный пьяница
|
Вы может свой сценарий расскажете - может архитектурно это можно решить?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
27.12.2012, 07:19 | #13 |
Участник
|
да очень сложная логика call центра
дозвоны-недозвоны-отказы определение класса клиента, определение полноты сбора информации манагерами определение дат следующих контактов для разных специалистов и т.д. и т.п. очень много всего уже сделано и т.п. (мне кажется проще было написать свою црм иногда))))) Возможно можно попробовать объединить еще некоторые плагины... что уменьшит количество шагов... но как это можно решить архитектурно... вы предложите, может, как должно это быть может я плагины вообще не так пишу... |
|
27.12.2012, 10:25 | #14 |
Участник
|
У Вас там, для одной сущности несколько плагинов на том же Event/Stage?
__________________
Читайте SDK!!! |
|
29.12.2012, 04:58 | #15 |
Участник
|
мм.. получается что да...
|
|
09.01.2013, 09:10 | #16 |
Участник
|
Проставил я всем шагам плагинов EXECUTION ORDER
Пока что пользователи не жалуются, 2-3 дня тест и все ошибки будут мне скидывать, посмотрим помогло ли это. |
|
|
|