| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Plugin:изменение Ownerid и др. полей
			 
			
			Добрый день! Пишу плагин, который изменяет поле owner, и обновляет одно из полей. Значение поля owner то поменять получилось, а другое, кастомное поле(New_send_state типа boolean, сущность new_business_trip), почемуто нет... Не подскажете как должен выглядеть код?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вы лучше свой код опубликуйте, а мы посмотрим где может быть ошибка.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]()   MS Certified Dirty Magic Professional
			 | 
| 
	
 | 
| 
			
			 | 
		#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); } Без последних четырех строчек все выполняется нормально.  | 
| 
	
 | 
| 
			
			 | 
		#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). | |
| 
			
			 | 
		#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
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#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  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			SoapException тоже не получается поставить, незнакомый тип....
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Чайный пьяница 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Необходимо добавить референс на System.Web.Services в проект и соответствующий неймспейс в файл классика.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо, теперь разобрался... У меня еще есть вопрос по другой теме. Можно ли поставить представление по умолчанию разное для разной роли? Предположим роль "Сотрудник", человек с этой ролью заходит в мое расширение, и представление по умолчанию у него "Мои заявки". А человек с ролью "Системный администратор" - представление по умолчанию "Активные заявки"?...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Чайный пьяница 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Skyway
			 
 
			Спасибо, теперь разобрался... У меня еще есть вопрос по другой теме. Можно ли поставить представление по умолчанию разное для разной роли? Предположим роль "Сотрудник", человек с этой ролью заходит в мое расширение, и представление по умолчанию у него "Мои заявки". А человек с ролью "Системный администратор" - представление по умолчанию "Активные заявки"?... 
		
	
				__________________ 
		
		
		
		
	Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit  | 
| 
	
 | 
| 
			
			 | 
		#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)  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Все, разобрался... Кажется проблема была в том, что присутстовал пробел в названии... После того как его удалил, нормально добавилось...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
	
	 | 
	
		
  |