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) код. Но вот третья проблема у меня решаться нехочет, хотя казалось бы она должна быть попроще второй... Может кто-нить из присутствующих здесь гуру прокомментировать мои потуги в написании колаутов и подсказать в какую сторону надо копать? |
|