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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.05.2011, 19:03   #6  
Omalinka is offline
Omalinka
Участник
 
16 / 10 (1) +
Регистрация: 25.02.2011
Адрес: Russia
Исходя из статьи http://dmcrm.blogspot.com/2008/08/st...on-method.html переписала код с использованием OpportunityClose.
Код:
 public class OpportunityFact : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService tracer = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

            if (tracer == null)
                throw new InvalidPluginExecutionException("Failed to retrieve the tracing service.");

            try
            {
                Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext)
                    serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));

                if (context.InputParameters.Contains("OpportunityClose") &&
                    context.InputParameters["OpportunityClose"] is Entity)
                {
                    IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                    IOrganizationService service = factory.CreateOrganizationService(context.UserId);

                    Entity entity = (Entity)context.InputParameters["OpportunityClose"];
            
                    if (entity.LogicalName == "opportunityclose")
                    {
                        
                        throw new Exception("win!");                        
                    }
                }
            }
            catch (Exception e)
            {
                tracer.Trace("Received exception: {0}", e);
                throw new InvalidPluginExecutionException(e.Message);
            }
        }
    }
Плагин заработал, но, как видно из запуска исключения (throw new Exception("win!"); ), он срабатывает уже после того, как закрыто окно, в котором вводится фактическая сумма сделки. А мне бы хотелось, чтобы при открытии формы OpportunityClose уже была заполнена правильная сумма в поле "Прибыль".

Это возможно сделать?

Плагин зарегестирован на событиях Won и Lose на PreStage.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при закрытии возможной сделки с длинным названием Why not? Dynamics CRM: Администрирование 12 02.06.2011 19:58
Расчет суммы kosten Dynamics CRM: Разработка 5 12.11.2010 16:47
Скрытие суммы сделки от пользователей другого подразделения, и показ суммы сделки для пользователей одного и того же подразделения с владельцем сделки Dicora Dynamics CRM: Разработка 10 13.09.2010 21:05
Конкурент при закрытии ВС Elka Dynamics CRM: Разработка 1 11.02.2010 08:44
Как достать фактический доход от сделки? Dekan Dynamics CRM: Функционал 4 21.10.2009 14:47

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

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

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