2012-01-27 19 views
2

モバイルアクティビティ(ME)でのみ表示できるカスタムアクティビティエンティティを作成しました。 CRM Onlineのすべてのビューに対してクエリを適用して、カスタムエンティティと等しいタイプのエンティティを除外できますが、これはちょっと面倒な作業です。Microsoft Dynamics CRM 2011 Mobile Expressのフィールドに関連する値を選択

上位のレベルでこのカスタムエンティティをすべて除外する別の方法がありますかアクティビティビュー?

答えて

0

私が正しくあなたの質問を理解していれば、からカスタムactivityを除外し、あなたのActivityビュー内の他のすべてのactivity秒を含めるための唯一の方法は、(手動またはSavedQueryエンティティをループすることで、fetchXmlの基礎となるビューを変更することです下記参照)、ビューがactivityを参照していないことを確認します。カスタムactivityが特定のactivityビューに表示されないようにするためのフラグはありません。 すべてビューに反映させる必要があります(カスタムentityactivityでない場合を除き)。

//using System.Xml.Linq; 
//your list of activity entities excluding the special custom activity 
string activityList = "<condition attribute=\"activitytypecode\" operator=\"in\"><value>4401</value><value>4204</value><value>10058</value></condition>"; 
XElement newFilter = XElement.Parse(activityList); 

var sq = from q in xsc.SavedQuerySet 
     where q.ReturnedTypeCode == ActivityPointer.EntityLogicalName 
     select new 
     { 
      fetchXml = q.FetchXml 
      , queryId = q.SavedQueryId 
      , queryName = q.Name 
     }; 

foreach (var q in sq) 
{ 
    //do your xml parsing 
    XElement xml = XElement.Parse(q.fetchXml); 

    if (!xml.Elements("entity") 
      .Elements("filter").Where(x => x.Attributes("type").Single().Value == "and").Any()) 
    { 
     xml.Elements("entity").Single().Add(XElement.Parse("<filter type=\"and\"></filter>"));  
    } 

    //some level of validation 
    if (!xml.Elements("entity") 
      .Elements("filter") 
      .Where(x => x.Attributes("type").Single().Value == "and") 
      .Single().Elements("condition") 
      .Where(x => x.Attributes("attribute") 
      .Single().Value == "activitytypecode") 
      .Where(x => x.Attributes("operator") 
      .Single().Value == "in").Any()) 
    { 
     xml.Elements("entity") 
      .Elements("filter") 
      .Where(x => x.Attributes("type") 
      .Single().Value == "and") 
      .Single().Add(newFilter); 

     SavedQuery query = new SavedQuery(); 
     query.SavedQueryId = q.queryId; 
     query.FetchXml = xml.ToString(); 
     service.Update(query); 
    } 
} 

変更を確認するには、この後に公開する必要があります。

関連する問題