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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.09.2010, 12:03   #1  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Tarasov E Посмотреть сообщение
Добрый день! Есть вот какая задача: есть дву сущности A и B. В сущности а есть поле new_barcode в которое вводится GUID записи из сущности B. Так вот нужно, чтобы при вводе данных в это поле в записи сущности B с соответствующим GUID изменялось значение поля new_status типа bit с 0 на 1. Я так понимаю, что это задача больше подходит для написания плагина, нежели БП. В таком случае с чего начать? Как получить значение поля new_barcode? Далее я так понимаю после получения значения работать с сущностью B через Querry Expression?
Поле в сущности а я так понимаю строковое. Тогла в коде плагина используете примерно такой код:

Код:
DynamicEntity target = (DynamicEntity)context.InputParameters["Target"];
if (!target.Properties.Contains("new_barcode"))
return;

string barcode = (string)target["new_barcode"];
А дальше уже можно получать сущности при помощи запросов. В этом конкретном случае - думаю, что можно и без этого обойтись. Примерно такой код:

Код:
ICrmService crmservice = context.CreateCrmService(true);

try
{
Guid barcodeid = new Guid(barcode);
DynamicEntity barcodeentity = new DynamicEntity("<название схему сущности Б>");
barcodeentity["<название схему сущности Б>id"] = new Key(barcodeid);
barcodeentity["new_status"] = new CrmBoolean(true);
crmservice.Update(barcodeentity);
}
catch{}
Обработку исключений конечно тоже надо доделать.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Tarasov E (1).
Старый 06.09.2010, 14:29   #2  
Tarasov E is offline
Tarasov E
Участник
Аватар для Tarasov E
 
100 / 11 (1) +
Регистрация: 01.09.2009
Имею вот такой вот рабочий код:
Код:
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];
                           }
            else
            {
                return;
            }

            try
            {
                ICrmService crmService = context.CreateCrmService(true);
               
 if (entity.Properties.Contains("new_barcode"))
                {
                    Guid id = new Guid(entity["new_barcode"].ToString());
                    UpdateRequest updateRequest = new UpdateRequest();
                    TargetUpdateDynamic targetUpdateDynamic = new TargetUpdateDynamic();
                    DynamicEntity reglament = new DynamicEntity("new_reglament");
                    reglament["new_reglamentid"] = new Key(id);
                    reglament["new_status"] = new CrmBoolean(true);
                    targetUpdateDynamic.Entity = reglament;
                    updateRequest.Target = targetUpdateDynamic;
                    crmService.Execute(updateRequest);
                }
            }
Хотелось бы как-нибудь уведомлять пользователя о том, что плагин отработал успешно, но как послать сообщение от плагина - не знаю. До этого пользовался alert'ами. Не подскажете как сделать сообщение скажем, если введеный GUID не найден и если сущность B обновлена успешно?

Последний раз редактировалось Tarasov E; 06.09.2010 в 14:33.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Создание одной записи на основании другой ZooY Dynamics CRM: Разработка 1 26.07.2010 08:14
Как удалить время при вставке динамического значения поля datetime в поле другой сущьности при настройке бизнес процесса? guenberg Dynamics CRM: Разработка 4 17.06.2010 21:58
haditeo: Is it possible to register different event handlers in only one assembly to be registered in Dynamics CRM Plugin ? Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
Импорт данных из одной организации в другую vital.mih Dynamics CRM: Администрирование 14 13.06.2009 12:44
Обновление данных после выхода в Online Gennadi Dynamics CRM: Администрирование 4 20.05.2009 19:48

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

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

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