2012-01-27 3 views
2

Mobile Express (ME)에서만 볼 수있는 사용자 지정 활동 엔터티를 만들었습니다. CRM Online의 모든보기에 대한 쿼리를 사용자 지정 엔터티와 동일한 유형의 엔터티를 제외하도록 적용 할 수는 있지만 지루한 작업입니다.Microsoft Dynamics CRM 2011 Mobile Express에서 필드 관련 값 선택

더 높은 수준에서 활동 개에서이 맞춤 엔터티를 제외하는 또 다른 방법이 있습니까?

답변

0

내가 제대로 질문에서 사용자 지정 activity를 제외하고 Activity보기에 다른 모든 activity의를 포함 할 수있는 유일한 방법 뷰 '은 (수동 중, fetchXml을 기본 또는 SavedQuery 엔티티 통해 반복에 의해 변경되어 이해한다면 아래 참조)보기가 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); 
    } 
} 

변경 사항을 확인하려면 게시해야합니다.

관련 문제