2016-08-31 3 views
0

Я извлекаю данные из CRM. Я хочу получить несколько полей от quotedetail. Одним из них является поле intad_discountpercent.Проверьте, не получены ли данные - CRM

Это поле не обязательно имеет значение.

Мне нужно проверить, есть ли какое-то значение, полученное из этого поля, и дать ему значение по умолчанию 0, если нет значения.

Вот мой код:

 string fetch1 = @" 
        <fetch count='50' > 
         <entity name='quotedetail' > 
         <attribute name='manualdiscountamount' /> 
         <attribute name='priceperunit' /> 
         <attribute name='ad_discountpercent' /> 
         <attribute name='quantity' /> 
         <attribute name='extendedamount' /> 
         </entity> 
        </fetch>"; 

     EntityCollection result = service.RetrieveMultiple(new FetchExpression(fetch1)); 

     foreach (var c in result.Entities) 
     { 
      if(...) 
     } 

Что я должен поставить вместо (...), чтобы увидеть есть ли данные получены и дать значение по умолчанию? Было бы полезно, если бы вы знали и об этих двух вещах.

Сообщите мне, если вам нужна дополнительная информация.

ответ

2

Для доступа к значению поля можно использовать GetAttributeValue<T>(string attribute logical name)

В вашем случае:

c.GetAttributeValue<Entity>("ad_discountpercent"); 
+0

Каков тип результата? –

+1

Это зависит от того, что у вас есть в скобках <>. Я думаю, вы хотите 'c.GetAttributeValue (« ad_discountpercent »)' :) – Nick

1

Это не ясно, если вы хотите обновить Entity объект (то есть, чтобы сохранить его обратно в CRM) или просто требуется значение для обработки.

if (!c.Attributes.Contains("ad_discountpercent")) 
{ 
    var newEntity = new Entity(c.LogicalName, c.Id) 
    newEntity["ad_discountpercent"] = 0; //replace 0 with your default value. 
} 
+0

Мне нужно сохранить его обратно в CRM, спасибо! –

+1

Обновлен код, чтобы лучше соответствовать вашему требованию. Если вы хотите использовать «ExecuteMultiple» для производительности в обновлении, см. Мой ответ на другой вопрос для базовой реализации: http://stackoverflow.com/questions/36500614/crm-dynamics-2013-sdk-update-current-accounts- с-2-значения/36506904 # 36506904 – Nicknow

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