2015-11-19 6 views
0

im new в CRM. Я создал два объекта: Заказ и Продукт. На объекте заказа есть поле поиска, которое срабатывает для объекта продукта. Я пытаюсь получить productquantity из продукта через поле поиска и вставить его в поле внутри объекта заказа. Вот код, который я пробовал:Плагин Microsoft Dynamics CRM: получить атрибут от Look Up Field

if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) 
     { 
      Entity entity = (Entity)context.InputParameters["Target"]; 



      if (entity.Attributes.Contains("new_productname")) 
      { 
       Entity productreference = service.Retrieve("new_callistyproduct", ((EntityReference)entity["new_productname"]).Id, new ColumnSet(true)); 

       if (productreference.Attributes.Contains("new_productquantity")) 
       { 
        if (entity.Attributes.Contains("new_numberofproduct")) 


         entity["new_numberofproduct"] = productreference.GetAttributeValue<Decimal>("new_productquantity"); 

        else 

        entity.Attributes.Add("new_numberofproduct", productreference.GetAttributeValue<Decimal>("new_productquantity")); 



       } 

      } 



     } 

Я хочу, чтобы этот плагин работал всякий раз, когда я создавал новую запись. Поэтому я регистрирую этот плагин как событие Pre-create. Но, когда я пытаюсь создать запись. Этот плагин не извлекал значение из поля productquantity. Итак, я попытался запустить этот плагин как событие Pre-Update. В записи, которую я создал ранее, я изменяю значение поиска из продукта А в продукт В. И его работа, плагин возвращает значение количества продукта из продукта B.

Вопрос в том, что делать, если i хотите, чтобы этот плагин работал и для предварительного создания события.

Благодаря

+0

Это поиск 'new_productname' заполняется, когда плагин запускается на этапе создания pre-operation? –

ответ

0

Если вы хотите обновить целевой объект, и есть CRM выполнить обновление для вас, вы должны зарегистрировать свой плагин на Pre-Create или Pre-Update. Если вы хотите выполнить действие в событии Post, вам нужно вызвать Update с помощью службы IOrganizationService, просто обновление Target не будет работать. Вы также захотите убедиться, что вы не создаете бесконечный цикл, где обновление запускает плагин, который выполняет другое обновление, которое запускает тот же плагин, который выполняет другое обновление ... и т. Д. И т. Д.

Смежные вопросы