|  26.12.2007, 08:14 | #1 | 
| Участник | Аудит данных 
			
			Вот такой есть пример (DataAudit.rar) в книжке Working With CRM Снайдера и Стеггера. Предназначен для сохранения лога изменений записей контактов. Я слегка поправил пример для сохранения лога изменений обращений. Но столкнулся с тремя моментами.  1) в качестве значений picklist`ов сохраняются коды, а не значения; 2) не сохраняется информация о назначении обращения другому сотруднику и изменении статуса обращения; 3) не сохраняется информация об изменении состояния обращения. Первая проблема решилась изменением кода при обработке типа PicklistProperty в функции GetValueFromProperty на следующий: Код: 	
else if (propType == typeof(PicklistProperty))
{
MetadataService servicemeta = new MetadataService();
servicemeta.Credentials = System.Net.CredentialCache.DefaultCredentials;
servicemeta.Url = "http://crm-server:5555/MSCRMServices/2006/metadataservice.asmx";
	AttributeMetadata attMetaData = servicemeta.RetrieveAttributeMetadata("incident", InputProperty.Name);
	PicklistAttributeMetadata picklist = (PicklistAttributeMetadata)attMetaData;
	int propIdValue = ((PicklistProperty)InputProperty).Value.Value;
	foreach(Option o in picklist.Options)
	{
		if (o.OptionValue == propIdValue) 
		{
			propValue = o.Description;
		}
	}
}В итоге получился вот такой (AltecDataAudit.rar) код. Но вот третья проблема у меня решаться нехочет, хотя казалось бы она должна быть попроще второй... Может кто-нить из присутствующих здесь гуру прокомментировать мои потуги в написании колаутов и подсказать в какую сторону надо копать? | 
|  |