| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Plug-In Debugging
			 
			
			Добрый день! 
		
		
		
		
		
		
		
	Пишу первый плагин, пытаюсь отладить код. Следую таким шагам: 1) Построил решение 2) Добавил PDB файл в C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly 3) Рестаранул IIS 3) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\SandboxDebugPlugins установлена в 1 4) Присоединяюсь к процессу Microsoft.Crm.Sandbox.WorkerProcess.exe 5)Ставлю точку остановки 6) Изменяю запись 7) Использую Developer Toolkit 8) VS в режиме Debug Но ничего не происходит Цитата: 
	
		
			Там где точка остановки надпись: " В настоящий момент попадание в точку останова не произойдет. Нет загруженных символов для этого документа".
		
	 
Срабатывает на событие Update  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Все ок, не к тому процессу коннектился
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Помогите с плагином.  
		
		
		
		
		
		
		
		
			Есть две сущности Полис и Контакт. Плагин срабатывает на сущности полис при изменении полиса. Суммируем все полиса по клиенту и обновляем поле сумма в Контакте. Ошибка в поле new_contact (lookup на Контакт). Цитата: 
	
		
			var Quantity = (EntityReference)QuantityCust.Attributes["new_contact"];
		
	 
Цитата: 
	
		
			Сообщение от Ion
			 
 
			using System; 
		
	using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Query; namespace CrmPackageSalamandra.CountChildSum { public class CalculateTotalSum : IPlugin { public void Execute(IServiceProvider ServiceProvider) { IPluginExecutionContext Context = (IPluginExecutionContext)ServiceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory ServiceFactory = (IOrganizationServiceFactory)ServiceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService Service = ServiceFactory.CreateOrganizationService(Context.UserId); if (Context.PostEntityImages.Contains("PostImage") && Context.PostEntityImages["PostImage"] is Entity) { Цитата: 
	//Из контекста получаю сущность полис Entity QuantityCust = (Entity)Context.InputParameters["Target"]; var Quantity = (EntityReference)QuantityCust.Attributes["new_contact"]; decimal Total = FetchResult(Quantity.Id, Service); // Updating Parent Entity Entity customer = new Entity("contact"); customer.Id = Quantity.Id; customer["erpc_total"] = Total; Service.Update(customer); } } private static decimal FetchResult(Guid quantity, IOrganizationService service) { string value_sum = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' aggregate='true'> <entity name='new_insurance_policy'> <attribute name='new_payment' alias='totalamount_sum' aggregate='sum'/> <filter type='and'> <condition attribute='new_contact' operator='eq' value='{0}' /> </filter> </entity> </fetch>"; decimal TotalValue = 0; value_sum = string.Format(value_sum, quantity); EntityCollection value_sum_result = (EntityCollection)service.RetrieveMultiple(new FetchExpression(value_sum)); foreach (var c in value_sum_result.Entities) { decimal aggregate2 = ((Decimal)((AliasedValue)c.Attributes["totalamount_sum"]).Value); TotalValue = aggregate2; } return TotalValue; } } } Последний раз редактировалось Ion; 12.02.2014 в 15:44.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Чайный пьяница 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Получайте этот идентификатор из Таргета только при создании. При обновлении используйте Image.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Ion (1). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Entity customer = new Entity("contact"); customer.Id = contactlookup.Id; customer["erpc_total"] = Total; Цитата: 
	
		
			                Service.Update(customer); 
Access Denied. Reference number for administrators or support: #334D537D Не обработано пользовательским кодом.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Чайный пьяница 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Какого типа поле erpc_total?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
	
	 | 
	
		
  |