|
26.02.2014, 14:52 | #1 |
Участник
|
CRM Money to Decimal C#
Добрый день!
Подскажите как в СРМ привести Money to Decimal. Не работает! Цитата:
decimal aggregate2 = Convert.ToDecimal(((AliasedValue)c.Attributes["totalamount_sum"]).Value);
или decimal aggregate2 = (decimal)Convert.ToDecimal(((AliasedValue)c.Attributes["totalamount_sum"]).Value); |
|
26.02.2014, 15:00 | #2 |
Участник
|
totalamount_sum
это правильное название поля без префикса? или totalamount это он и есть? c.Attributes["totalamount_sum"] возвращает объект? |
|
26.02.2014, 15:12 | #3 |
Участник
|
Цитата:
Вот метод, который должен возвращать Цитата:
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='erpc_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)Convert.ToDecimal(((AliasedValue)c.Attributes["totalamount_sum"]).Value); TotalValue = aggregate2; } return TotalValue; } |
|
26.02.2014, 15:15 | #4 |
Участник
|
У меня еще проблема, не могу присоединиться к процессу, то есть плагин не получается отдебажить.
Следую таким шагам 1) Построил решение 3) Скопировал .pdb в C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly 2) Restart IIS 3) Запустил откладку Debbuging 5) Connect to the Microsoft.Crm.Sandbox.HostService.exe. И ничего не происходит( НЕ знаю в чем может быть проблема |
|
26.02.2014, 15:24 | #5 |
Участник
|
Вот ошибка
Цитата:
PackageSalamandraCrm.CountChildSum.CalculateTotalSum: System.InvalidCastException: Не удалось привести тип объекта "Microsoft.Xrm.Sdk.Money" к типу "System.IConvertible".</Message> |
|
26.02.2014, 15:29 | #6 |
Участник
|
decimal aggregate2 = (decimal)Convert.ToDecimal(((AliasedValue)c.Attributes["totalamount_sum"]).Value);
1 нет проверки, что там значение есть 2 не пробовал использовать алиас для такой работы. что то мне кажется, что не будет он так работать. может ошибаюсь. (AliasedValue) это Money? Ваш плагин в Sandbox зарегистрирован? если нет, то w3wp Вам нужен Последний раз редактировалось g.Naukovych; 26.02.2014 в 15:34. |
|
26.02.2014, 15:32 | #7 |
Участник
|
|
|
26.02.2014, 15:58 | #8 |
Чайный пьяница
|
Если у вас аггрегация по полю типа Money, то и результат будет Money. Примерно так:
Код: decimal aggregate2 = ((Money)c.GetAttributeValue<AliasedValue>("totalamount_sum").Value).Value;
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Ion (1). |
26.02.2014, 16:14 | #9 |
Участник
|
Цитата:
Сообщение от a33ik
Если у вас аггрегация по полю типа Money, то и результат будет Money. Примерно так:
Код: decimal aggregate2 = ((Money)c.GetAttributeValue<AliasedValue>("totalamount_sum").Value).Value; Относительно откладки - не понимаю почему VS никак не реагирует на процесс Microsoft.Crm.Sandbox.HostService.exe. Копирую в парку Assambley file pdb, потом рестуртую ИИС, и запускаю откладку, при этом присоединяюсь к процессу Microsoft.Crm.Sandbox.HostService.exe. Сейчас СРМ никак не реагирует, раньше работало(( |
|
26.02.2014, 16:32 | #10 |
Чайный пьяница
|
Цитата:
Сообщение от Ion
Относительно откладки - не понимаю почему VS никак не реагирует на процесс Microsoft.Crm.Sandbox.HostService.exe.
Копирую в парку Assambley file pdb, потом рестуртую ИИС, и запускаю откладку, при этом присоединяюсь к процессу Microsoft.Crm.Sandbox.HostService.exe. Сейчас СРМ никак не реагирует, раньше работало((
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
27.02.2014, 14:50 | #11 |
Участник
|
Спасибо! Все починили
|
|
04.03.2014, 22:38 | #12 |
Moderator
|
Во первых, рекомендую почитать раздел по отладке плагинов в SDK. Sandbox сервис будет безжалостно валить "зависшие" в отладчике процессы, если вы не запретите ему это делать. Так же рекомендую подход, который сам активно использую: http://www.axforum.info/forums/blog.php?b=329
Что касается самого кода по работе с агрегатами, рекомендую не писать такие вот портянки преобразований. Если в результате агрегации получится NULL, система не вернет и сам AliasedValue: http://www.axforum.info/forums/blog.php?b=417
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
|