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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2010, 13:48   #1  
zkk is offline
zkk
Участник
 
14 / 10 (1) +
Регистрация: 16.02.2010
? Как получить значения кастомных сущностей
Подскажите пожалуйста

делаю плагин, который будет сохранять значения кастомных сущностей контрагента(account) при его смене в форме контрактов. То есть при выборке в лукапе нового контрагента его реквизиты подставляются автоматически в поля реквизитов контракта (bank, bik, inn и т.д.)

при сохранении стандартных сущностей все проходит отлично, а вот как вытащить кастомные я не могу разобраться. Использую DynamicEntity, В SDK читал про это, но не могу все равно добиться получения значения кастомных сущностей
вот код

public void Execute(IPluginExecutionContext context)
{
DynamicEntity entity = null;

if (context.InputParameters.Properties.Contains(ParameterName.Target) &&
context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
{
entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];

if (context.MessageName != MessageName.Update.ToString()
&& context.MessageName != MessageName.Create.ToString())
{
throw new InvalidPluginExecutionException("error");
}
}
else
{
return;
}
try
{
ICrmService crmService = context.CreateCrmService(false);

if (entity.Properties.Contains("epg_accountid"))
{
String new_attrib = "";
String epg_description = "";
ColumnSet cs = new ColumnSet();
Lookup epg_account = (Lookup)entity.Properties["epg_accountid"];

// проверяю, что в лукапе выбран Контрагент
if (epg_account.type == EntityName.account.ToString())
{
cs.Attributes.Add("name");
DynamicEntity DEntity = (DynamicEntity)crmService.Retrieve("epg_person", epg_account.Value, cs);
account _account = (account)crmService.Retrieve(EntityName.account.ToString(), epg_account.Value, cs);
if (_account == null || _account.name == null)
{
return;
}

else
{
new_attrib = _account.name.ToString();
epg_description = DEntity.ToString();
}
}
// обновляю поля реквизитов
entity.Properties.Add(new StringProperty("epg_bank", new_attrib));
entity.Properties.Add(new StringProperty("epg_description", epg_description));
}
}
catch (System.Web.Services.Protocols.SoapException ex)
{
throw new InvalidPluginExecutionException(
String.Format("Ошибка в плагине {0}.",
this.GetType().ToString()),
ex);
}
}

в строке
DynamicEntity DEntity = (DynamicEntity)crmService.Retrieve("epg_person", epg_account.Value, cs);
указываю кастомную сущность, из которой надо брать значение
но при выполнении плагина ошибка что такая сущность не найдена

Помогите разобраться
Старый 16.02.2010, 14:41   #2  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Предлагаю вам ознакомиться с этим веб-кастом http://crmmagic.blogspot.com/2010/02/techdays.html
Хуже не будет 100%
За это сообщение автора поблагодарили: zkk (1).
Старый 16.02.2010, 15:11   #3  
zkk is offline
zkk
Участник
 
14 / 10 (1) +
Регистрация: 16.02.2010
Похоже это то что нужно, да еще в таком шикарном примере!
Спасибо большое за ссылку!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Получить список записей, к которым есть доступ Bondonello Dynamics CRM: Разработка 10 16.01.2010 00:55
В какой таблице SQL хранятся значения PickList? Grigoriy Dynamics CRM: Разработка 1 29.09.2009 21:13
О динамических отображаемых именах сущностей igla Dynamics CRM: Разработка 8 23.10.2008 15:01
пустые значения при перегонки данных через migration Manager valk Dynamics CRM: Функционал 2 02.09.2008 19:52

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

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

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