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