2016-08-31 5 views
0

CRMからデータを取得しています。私はquotedetailからいくつかのフィールドを取得したいです。そのうちの1つはintフィールドad_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)

を使用することができ、フィールドの値にアクセスするには

答えて

2

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

結果の種類は? –

+1

<>カッコ内の内容によって異なります。私は 'c.GetAttributeValue (" ad_discountpercent ")' :) – Nick

1

あなたが(バックCRMにそれを保存するために、すなわち、)Entityオブジェクトを更新したい場合には、はっきりしていないか、単に処理のための値が必要です。

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

関連する問題