Показать сообщение отдельно
Старый 09.02.2011, 14:36   #3  
Буденый is offline
Буденый
Участник
 
70 / 15 (1) ++
Регистрация: 07.06.2010
Адрес: Донецк
Цитата:
Сообщение от a33ik Посмотреть сообщение
Добрый день.

При создании salesorder из карточки opportunity, чтобы плагин запустился его необходимо зарегистрировать в child pipeline и всё получится.
При регистрации плагина на child pipeline при обычном создании заказа вылетает стандартная ошибка(произошла ошибка обратитесь к администратору). При создании из возможной сделки вылетает ошибка:
"Only SdkMessageProcessingStep in parent pipeline and in stages outside transaction can create CrmService to prevent deadlock. ".

Дело в том что в плагине при входе в блок увеличения счетчика используется блокировка.
Код:
public class AutoNumber : IPlugin
{
      private static object _sync = new object();

      public void Execute(IPluginExecutionContext context)
      {
     ...........
           try{
              lock (_sync)
              {
                    // обработка
              }
     ...........         
       }
При регистрации шагов на child и parent те же ошибки. Как только убираю child счетчик работает, заказы создаются везде, кроме как из ВС

Параметры с которыми регистрирую:
Message: Create
PrimaryEntity: salesorder
SecondaryEntity: none
Запуск под пользователем, вызвавшим обработку плагина.
ExecutionOrder: 1
Pre Stage (Пробовал и на Post, та же ошибка)
Synhronous
Server
Child Pipeline

Может некорректно зарегистрировал шаг?