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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2010, 12:22   #1  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Plugin:изменение Ownerid и др. полей
Добрый день! Пишу плагин, который изменяет поле owner, и обновляет одно из полей. Значение поля owner то поменять получилось, а другое, кастомное поле(New_send_state типа boolean, сущность new_business_trip), почемуто нет... Не подскажете как должен выглядеть код?
Старый 29.03.2010, 12:27   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Вы лучше свой код опубликуйте, а мы посмотрим где может быть ошибка.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 29.03.2010, 14:12   #3  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
У меня просто в тот момент под рукой кода не было, поэтому не опубликовал... Сейчас
X++:
   if (((DemandStatus == "1. Черновик") || ((DemandStatus == "3. Не согласованно") && (((Key)currLetter.Properties["ownerid"]).Value == ((Key)currLetter.Properties["new_person"]).Value))) && (SendState.Value == true))
                {

                    SecurityPrincipal assignee = new SecurityPrincipal();
                    assignee.Type = SecurityPrincipalType.User;


                    // PrincipalId is some known Guid belonging to the user or team that will own this record.
                    assignee.PrincipalId = new Guid("923D790F-512B-DE11-A2A2-000E0C4BF7BF");

                    TargetOwnedDynamic dyn = new TargetOwnedDynamic();
                    dyn.EntityName = "new_business_trip";
                    dyn.EntityId = ((Key)(entity.Properties["new_business_tripid"])).Value; 

                    // Create the request object.
                    AssignRequest assign = new AssignRequest();

                    // Set the properties of the request object.
                    assign.Assignee = assignee;
                    assign.Target = dyn;

                    // Execute the request.
                    ICrmService KSservice = context.CreateCrmService(true);
                    try
                    {
                        AssignResponse assignResponse = (AssignResponse)KSservice.Execute(assign);
                    }
                    catch (Exception ex)
                    {
                        //TODO: Exceptionhandling
                    }
                    entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
                    
                    CrmBoolean CrmTrue = new CrmBoolean(true);
                    entity.Properties["new_send_state"] = CrmTrue;
                    KSservice.Update(entity);

                }
Ошибка: Server was unable to process request.
Без последних четырех строчек все выполняется нормально.
Старый 29.03.2010, 15:30   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Измените

Код:
                    try
                    {
                        AssignResponse assignResponse = (AssignResponse)KSservice.Execute(assign);
                    }
                    catch (Exception ex)
                    {
                        //TODO: Exceptionhandling
                    }
на
Код:
                    try
                    {
                        AssignResponse assignResponse = (AssignResponse)KSservice.Execute(assign);
                    }
                    catch (SoapException ex)
                    {
throw new Exception(ex.Detail.InnerText);
                    }
Это даст детали по ошибке.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Skyway (1).
Старый 29.03.2010, 15:45   #5  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Да там-то все нормально выполняется, Ownerid изменяется, но мне нужно изменить еще одно поле, и ошибка в этих строках:
X++:
 entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
                    
                    CrmBoolean CrmTrue = new CrmBoolean(true);
                    entity.Properties["new_send_state"] = CrmTrue;
                    KSservice.Update(entity);
Попытался поменять, компилятор ругается на Detail,
Цитата:
Error 2 'System.Exception' does not contain a definition for 'Detail' and no extension method 'Detail' accepting a first argument of type 'System.Exception' could be found (are you missing a using directive or an assembly reference?) D:\SVN\Trip_no_delete\Not_delete.cs 139 48 Trip_circulation
Старый 29.03.2010, 17:03   #6  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Skyway Посмотреть сообщение
Да там-то все нормально выполняется, Ownerid изменяется, но мне нужно изменить еще одно поле, и ошибка в этих строках:
X++:
 entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
                    
                    CrmBoolean CrmTrue = new CrmBoolean(true);
                    entity.Properties["new_send_state"] = CrmTrue;
                    KSservice.Update(entity);
Попытался поменять, компилятор ругается на Detail,
Судя по сообщению компилятора - Exception на SoapException Вы не поменяли. Проверьте, пожалуйста.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.03.2010, 17:26   #7  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
SoapException тоже не получается поставить, незнакомый тип....
Старый 29.03.2010, 17:39   #8  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Skyway Посмотреть сообщение
SoapException тоже не получается поставить, незнакомый тип....
Необходимо добавить референс на System.Web.Services в проект и соответствующий неймспейс в файл классика.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 30.03.2010, 14:33   #9  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Спасибо, теперь разобрался... У меня еще есть вопрос по другой теме. Можно ли поставить представление по умолчанию разное для разной роли? Предположим роль "Сотрудник", человек с этой ролью заходит в мое расширение, и представление по умолчанию у него "Мои заявки". А человек с ролью "Системный администратор" - представление по умолчанию "Активные заявки"?...
Старый 30.03.2010, 16:26   #10  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Skyway Посмотреть сообщение
Спасибо, теперь разобрался... У меня еще есть вопрос по другой теме. Можно ли поставить представление по умолчанию разное для разной роли? Предположим роль "Сотрудник", человек с этой ролью заходит в мое расширение, и представление по умолчанию у него "Мои заявки". А человек с ролью "Системный администратор" - представление по умолчанию "Активные заявки"?...
Возможно, но только при помощи плагинов. Ознакомьтесь.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 01.04.2010, 16:22   #11  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Спасибо! Ознокакомился, пытаюсь добавить плагин... Билд происходит нормально, а при попытке регистрации почему-то выходит ошибка:
Цитата:
Unhandled Exception: System.IO.InvalidDataException: Assembly name Default View, Version=1.0.0.0, Culture=neutral, PublicKeyToken=df25923bcce11ea9 cannot be parsed.
в PluginRegistrationTool.AssemblyReader.RetrieveAssemblyProperties(Assembly assembly, String path)
в PluginRegistrationTool.AssemblyReader.RetrievePluginsFromAssembly(String path)
в PluginRegistrationTool.AssemblyReader.RetrievePluginsFromAssembly(String path)
в PluginRegistrationTool.RegistrationHelper.RetrievePluginsFromAssembly(String pathToAssembly)
в PluginRegistrationTool.PluginRegistrationForm.btnLoadAssembly_Click(Object sender, EventArgs e)
Старый 01.04.2010, 16:47   #12  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Все, разобрался... Кажется проблема была в том, что присутстовал пробел в названии... После того как его удалил, нормально добавилось...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Muhammad Ali Khan: Close Service Activity On Create Message In PlugIn Blog bot Dynamics CRM: Blogs 0 19.02.2010 23:05
Изменение ownerid Skyway Dynamics CRM: Разработка 12 05.02.2010 18:04
CRM DE LA CREME! Three Top Tips for CRM 4.0 Plugin Development Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
haditeo: Is it possible to register different event handlers in only one assembly to be registered in Dynamics CRM Plugin ? Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
Изменение полей типа State или Status Артем Enot Грунин Dynamics CRM: Разработка 3 10.06.2008 06:30
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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