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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.04.2014, 17:30   #1  
maksii is offline
maksii
Участник
 
15 / 16 (1) ++
Регистрация: 02.04.2014
Адрес: Харьков
хехе, не, это у меня тупняк.

Ошибка не тут случайно падает?
Код:
Entity record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));
У тебя на Пре-степе еще нет этой записи, вот ты и не можешь ее вытянуть.
Да и смысла тянуть ее нет, так как в таргете у тебя уже есть эти данные.

Попробуй так;
Инициализируй Entity record дальше
Код:
if (executionContext.MessageName == MessageName.Update)
            {
                record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));
            }
            else
            {
            record = TargetEntity;
            }

Мой кусок кода у тебя лишний будут, его можно удалить впринципе, либо удали свой и проверь работает ли мой.
За это сообщение автора поблагодарили: a33ik (2), Lavdislav (1).
Старый 03.04.2014, 17:45   #2  
Lavdislav is offline
Lavdislav
Участник
 
34 / 10 (1) +
Регистрация: 28.02.2014
Цитата:
Сообщение от maksii Посмотреть сообщение
хехе, не, это у меня тупняк.

Ошибка не тут случайно падает?
Код:
Entity record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));
У тебя на Пре-степе еще нет этой записи, вот ты и не можешь ее вытянуть.
Да и смысла тянуть ее нет, так как в таргете у тебя уже есть эти данные.

Попробуй так;
Инициализируй Entity record дальше
Код:
if (executionContext.MessageName == MessageName.Update)
            {
                record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));
            }
            else
            {
            record = TargetEntity;
            }

Мой кусок кода у тебя лишний будут, его можно удалить впринципе, либо удали свой и проверь работает ли мой.
На сегодня рабочий день закончился, так что завтра всё проверю, спасибо что помогаешь.
Старый 04.04.2014, 09:34   #3  
Lavdislav is offline
Lavdislav
Участник
 
34 / 10 (1) +
Регистрация: 28.02.2014
Цитата:
Сообщение от Lavdislav Посмотреть сообщение
На сегодня рабочий день закончился, так что завтра всё проверю, спасибо что помогаешь.
Думаю да, ошибка именно в том месте падает. Хмм, получилось так:
Код:
public override void Execute()
        {
            Entity record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));

            if (TargetEntity.Contains("regardingobjectid"))
            {
                string uniq = "";

                int uniqLength = 1024;

                if (executionContext.MessageName == MessageName.Update)
                    {
                        record = crmService.Retrieve(TargetEntity.LogicalName, TargetEntity.Id, new ColumnSet("subject", "regardingobjectid"));
                    }
                    else
                    {
                        record = TargetEntity;
                    }

                if (record.Contains("regardingobjectid"))
                {
                    uniq = record.GetAttributeValue<EntityReference>("regardingobjectid").Name;

                    RetrieveEntityRequest rerq = new RetrieveEntityRequest
                    {
                        LogicalName = record.GetAttributeValue<EntityReference>("regardingobjectid").LogicalName,
                        RetrieveAsIfPublished = true
                    };

                    RetrieveEntityResponse rers = (RetrieveEntityResponse)crmService.Execute(rerq);

                    uniq = rers.EntityMetadata.DisplayName.UserLocalizedLabel.Label + " " + "[" + uniq + "]";
                }

                if (!record.Contains("subject") || record["subject"].ToString() != uniq)
                {
                    uniq = string.Format("{0}", uniq.Length > uniqLength ? (uniq.Substring(0, uniqLength - 3) + "...") : uniq);
                    record["subject"] = uniq;
                    if (executionContext.MessageName == MessageName.Update)
                    {
                        crmService.Update(record);
                    }
                }
            }
        }
Но опять же ругается на Create of bf_evaluatingobject на то что нету с таким Id
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM 2011. Проблема при создании отчетов SergeyP Dynamics CRM: Разработка 22 04.12.2013 10:28
Как подтянуть поле при создании записи, если отношения 1:N? DOlga Dynamics CRM: Разработка 2 05.05.2012 15:53
Ошибки авторизации (помогите найти корень зла) Aza123 Dynamics CRM: Функционал 1 27.01.2012 12:37
Плагин на создании Заказа Krom Dynamics CRM: Разработка 4 04.08.2010 14:48
Проблема при создании отчета в CRM 4.0 Kizickii Dynamics CRM: Администрирование 0 24.06.2009 16:34
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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