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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.05.2009, 14:38   #1  
Андрей Фоменко is offline
Андрей Фоменко
Участник
 
3 / 10 (1) +
Регистрация: 10.05.2009
Адрес: Москва
Как изменить statuscode и statecode "настраиваемого объекта" (своей сущности)
Никак не получается изменить с помощью plug-in статус объектов.
В упрощенном варианте требуется при создании объекта ( скажем созданная мной сущность "dp_bonus licence" ) все остальные объекты сделать неактивными.

Пробовал два варианта:
1.Одновременно в запросе изменять statecode на "Inactive" и statuscode на 2 (сразу ошибка "недопустимый код состояния либо недопустимый код статуса для указанного кода состояния").
2. Сначала изменить statecode ( проходит), потом statuscode (дает ошибку "недопустимый код состояния либо недопустимый код статуса для указанного кода состояния" )

Вот фрагменты

Код:
//Формирую Запрос
                QueryExpression query = new QueryExpression();
                query.EntityName = "dp_bonus_licence";
                ColumnSet cols = new ColumnSet();
                cols.Attributes.Add("statuscode");
                cols.Attributes.Add("statecode");
                query.ColumnSet = cols;

                RetrieveMultipleRequest rm = new RetrieveMultipleRequest();
                rm.Query = query;
                rm.ReturnDynamicEntities = true; 

                RetrieveMultipleResponse rmOut = (RetrieveMultipleResponse)сrmService.Execute(rm);
//запрос работает - все statecode имеют значение "Active", а statuscode значение 1(проверял)
//В неактивном состоянии объекты имеют значение "Inаctive", а statuscode значение 2(так же проверял запросом (деактивировал объекты вручную из CRM)
//Теперь пытаюсь изменить значения statuscode и statecode
//первый вариант дает ошибку сразу "недопустимый код состояния либо недопустимый код статуса для указанного кода состояния")

                BusinessEntityCollection CliObj = rmOut.BusinessEntityCollection;
                int i = CliObj.BusinessEntities.Count;
                if (i > 0)
                {
                    foreach (BusinessEntity be in CliObj.BusinessEntities)
                    {                       
                       ((DynamicEntity)be).Properties.Remove("statuscode");
                       ((DynamicEntity)be).Properties.Remove("statecode");
                       ((DynamicEntity)be).Properties.Add(new StateProperty("statecode", "Inactive"));
                       ((DynamicEntity)be).Properties.Add(new StatusProperty("statuscode", new Status(2)));
                       crmService.Update(be);//здесь ошибка лезет
                    }

//Второй вариант устанавливает statecode в Inactive,а при записи statuscode ошибка    "недопустимый код состояния либо недопустимый код статуса для указанного кода состояния".

                BusinessEntityCollection CliObj = rmOut.BusinessEntityCollection;
                int i = CliObj.BusinessEntities.Count;
                if (i > 0)
                {
                    foreach (BusinessEntity be in CliObj.BusinessEntities)
                    {                       
                       ((DynamicEntity)be).Properties.Remove("statuscode");
                       ((DynamicEntity)be).Properties.Remove("statecode");
                       ((DynamicEntity)be).Properties.Add(new StateProperty("statecode", "Inactive"));
                       crmService.Update(be);//это проходит
                    }
                    foreach (BusinessEntity be in CliObj.BusinessEntities)
                    {
                       ((DynamicEntity)be).Properties.Remove("statecode");
                        ((DynamicEntity)be).Properties.Add(new StatusProperty("statuscode",new Status(2)));
                         crmService.Update(be);//ошибка лезет
                    }
                }
Может кто подаст идею как это возможно сделать.
Инфу обыскался - нигде ничего на этот счет не нашел.
Пасиб

Последний раз редактировалось Андрей Фоменко; 10.05.2009 в 14:54.
Теги
c#, execute

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Имя объекта сущности по id sphinks Dynamics CRM: Разработка 3 05.03.2009 08:40
Контракт (отзыв) от кампании: statecode и statuscode -- суть одно и то же? Lazarus Dynamics CRM: Функционал 2 30.12.2008 10:57
Замена сущности "продукты" Juffin Dynamics CRM: Разработка 5 16.07.2008 09:27
Создание объекта сущности из другого объекта! SnSS Dynamics CRM: Разработка 5 29.05.2008 13:38
Отношение своей сущности с собой же glad Dynamics CRM: Функционал 6 10.01.2007 11:54

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

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

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