29.03.2010, 12:22 | #1 |
Участник
|
Plugin:изменение Ownerid и др. полей
Добрый день! Пишу плагин, который изменяет поле owner, и обновляет одно из полей. Значение поля owner то поменять получилось, а другое, кастомное поле(New_send_state типа boolean, сущность new_business_trip), почемуто нет... Не подскажете как должен выглядеть код?
|
|
29.03.2010, 12:27 | #2 |
Moderator
|
Вы лучше свой код опубликуйте, а мы посмотрим где может быть ошибка.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
29.03.2010, 14:12 | #3 |
Участник
|
У меня просто в тот момент под рукой кода не было, поэтому не опубликовал... Сейчас
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); } Без последних четырех строчек все выполняется нормально. |
|
29.03.2010, 15:30 | #4 |
Чайный пьяница
|
Измените
Код: 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 |
Участник
|
Да там-то все нормально выполняется, Ownerid изменяется, но мне нужно изменить еще одно поле, и ошибка в этих строках:
X++: entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target]; CrmBoolean CrmTrue = new CrmBoolean(true); entity.Properties["new_send_state"] = CrmTrue; KSservice.Update(entity); Цитата:
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 |
Чайный пьяница
|
Цитата:
Сообщение от Skyway
Да там-то все нормально выполняется, Ownerid изменяется, но мне нужно изменить еще одно поле, и ошибка в этих строках:
X++: entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target]; CrmBoolean CrmTrue = new CrmBoolean(true); entity.Properties["new_send_state"] = CrmTrue; KSservice.Update(entity);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
29.03.2010, 17:26 | #7 |
Участник
|
SoapException тоже не получается поставить, незнакомый тип....
|
|
29.03.2010, 17:39 | #8 |
Чайный пьяница
|
Необходимо добавить референс на System.Web.Services в проект и соответствующий неймспейс в файл классика.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
30.03.2010, 14:33 | #9 |
Участник
|
Спасибо, теперь разобрался... У меня еще есть вопрос по другой теме. Можно ли поставить представление по умолчанию разное для разной роли? Предположим роль "Сотрудник", человек с этой ролью заходит в мое расширение, и представление по умолчанию у него "Мои заявки". А человек с ролью "Системный администратор" - представление по умолчанию "Активные заявки"?...
|
|
30.03.2010, 16:26 | #10 |
Чайный пьяница
|
Цитата:
Сообщение от Skyway
Спасибо, теперь разобрался... У меня еще есть вопрос по другой теме. Можно ли поставить представление по умолчанию разное для разной роли? Предположим роль "Сотрудник", человек с этой ролью заходит в мое расширение, и представление по умолчанию у него "Мои заявки". А человек с ролью "Системный администратор" - представление по умолчанию "Активные заявки"?...
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
01.04.2010, 16:22 | #11 |
Участник
|
Спасибо! Ознокакомился, пытаюсь добавить плагин... Билд происходит нормально, а при попытке регистрации почему-то выходит ошибка:
Цитата:
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 |
Участник
|
Все, разобрался... Кажется проблема была в том, что присутстовал пробел в названии... После того как его удалил, нормально добавилось...
|
|
|
|