AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2014, 15:41   #3  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Помогите с плагином.

Есть две сущности Полис и Контакт.

Плагин срабатывает на сущности полис при изменении полиса.

Суммируем все полиса по клиенту и обновляем поле сумма в Контакте.

Ошибка в поле 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.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ukcrm: Automating CRM 2011 Security Rules With Plug-Ins Blog bot Dynamics CRM: Blogs 0 08.07.2011 22:13
mscrm4ever: CRM 4.0 Concatenating Fields Plug-In Blog bot Dynamics CRM: Blogs 0 14.02.2009 14:05
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM Plug-in Template for Visual Studio Blog bot Dynamics CRM: Blogs 0 27.10.2008 23:05
Microsoft Dynamics CRM Team Blog: Storing Configuration Data for Microsoft Dynamics CRM Plug-ins Blog bot Dynamics CRM: Blogs 0 24.10.2008 22:05
Microsoft Dynamics CRM Team Blog: Accessing a SQL Database from a Microsoft Dynamics CRM Plug-in Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:19.