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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2009, 12:05   #1  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Да, бесконечный цикл был, да и вторая переменная оказалась лишняя, спасибо что указали. еще не набил руку.

Сделал Image на Post и событие и Зарегистрировал сборку на Update (Post)
исправленный метод Execute
X++:
public void Execute(IPluginExecutionContext context)
        {
            DynamicEntity entity = null;
           

            if (context.PostEntityImages.Properties.Contains("Image"))
            {
                entity = (DynamicEntity)context.PostEntityImages.Properties["Image"];
                if (entity.Properties.Contains("subject"))
                {
                    if (entity.Properties["subject"].ToString() == "test1")
                    {
                        return;
                    }
                }
            }
            else
            {
                throw new InvalidPluginExecutionException("Some sheet happened!");
            }

            if (context.InputParameters.Properties.Contains(ParameterName.Target) &&
               context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
            {

           
                entity = (DynamicEntity)context.InputParameters[ParameterName.Target];

            }
            else
            {
                return;
            }

            try
            {
                Key entityId = new Key();
             
                if (entity.Name == EntityName.task.ToString())
                {
                    if (entity.Properties.Contains("activityid"))
                    {


                        entityId = ((Key)entity.Properties["activityid"]);
                        //entity = (DynamicEntity)context.InputParameters[ParameterName.Target];

                        DynamicEntity task = new DynamicEntity();
                        task.Name = EntityName.task.ToString();

                        task.Properties = new PropertyCollection();


                        task.Properties.Add(new StringProperty("subject", "test1"));
                        task.Properties.Add(new KeyProperty("activityid", entityId));

                        ICrmService service = context.CreateCrmService(true);
                        service.Update(task);
                    }
                    else
                    {
                        throw new InvalidPluginExecutionException("Entity image do not contains activityid field!");
                    }
                }
            }
            catch (System.Web.Services.Protocols.SoapException ex)
            {
                throw new InvalidPluginExecutionException(
                    String.Format("An error occurred in the {0} plug-in.",
                       this.GetType().ToString()),
                    ex);
            }
        }
Старый 25.02.2009, 10:26   #2  
Казарин Александр is offline
Казарин Александр
Участник
 
58 / 10 (1) +
Регистрация: 17.10.2008
Адрес: Сыктывкар
Тоже столкнулся с какой то непонятной ошибкой при Update на плагине. Т.е. у меня написан плагин рабочий на Create, где он прекрасно работает, но когда я попробовал его переделать на Update он начал выводить ошибку "Данный ключ отсутствует в словаре", после операций с комментированием выяснилось что он ругается на начало
Цитата:
DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];

string accountName = entity["name"].ToString();
string accountId = context.OutputParameters.Properties["id"].ToString();
На обе 2 и 3 строчки. Не понимаю в чем ошибка, может на Update контекст не так передается или еще что то
Старый 25.02.2009, 10:36   #3  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Если не ошибаюсь, то на строчку
X++:
string accountId = context.OutputParameters.Properties["id"].ToString();
правильно ругается. При выполнении Update никакого Id не передается в ответку.
Старый 25.02.2009, 10:40   #4  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
А на строчку
X++:
string accountName = entity["name"].ToString();
ругается вероятно потому, что атрибут name не изменялся и соответственно не попал в контекст. Регистрируйте Image и будет вам счастье
Старый 25.02.2009, 10:58   #5  
Казарин Александр is offline
Казарин Александр
Участник
 
58 / 10 (1) +
Регистрация: 17.10.2008
Адрес: Сыктывкар
Цитата:
DynamicEntity entity = (DynamicEntity)context.PostEntityImages.Properties["Image"];
string accountName = entity.Properties["name"].ToString();

Так тоже не работает
Старый 25.02.2009, 11:10   #6  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
А Image точно зарегистрировано на Post и в нем есть атрибут name?
А не работает, что пишет, опять "Данный ключ отсутствует в словаре"?
Старый 25.02.2009, 11:30   #7  
Казарин Александр is offline
Казарин Александр
Участник
 
58 / 10 (1) +
Регистрация: 17.10.2008
Адрес: Сыктывкар
Да тоже самое пишет

Цитата:
А Image точно зарегистрировано на Post и в нем есть атрибут name?
Что имеется ввиду? А то я не совсем знаю то, чего я сейчас делаю =)
Старый 25.02.2009, 11:39   #8  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Для того чтобы использовать снимок состояния (Image), его нужно объявить в регистраторе плагинов, указав, какое состояние (Pre, Post или оба) вам собственно нужно и какие поля.
За это сообщение автора поблагодарили: Roman08 (1), Казарин Александр (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
PlugIn ImageEntity Konstantin Katsovich Dynamics CRM: Разработка 3 16.01.2009 17:35
Доступ к custom fields в Plugin Олег Михайлов Dynamics CRM: Разработка 3 10.10.2008 17:47
Получить id объекта вызвавшего PlugIn sergeyjb Dynamics CRM: Разработка 5 09.10.2008 14:17
Закрыть задачи Lida Dynamics CRM: Разработка 2 02.11.2007 15:11
Письма в "Списки ожидания" - "Мои задачи" ДмитрийCол Dynamics CRM: Функционал 0 10.01.2007 09:46
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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