2
我创建了应该只能在Mobile Express(ME)中查看的自定义活动实体。我可以调整CRM Online中所有视图的查询,以排除与我的自定义实体类型相同的实体,但这是一项乏味的工作。为Microsoft Dynamics CRM 2011移动快车中的字段选择值
是否有另一种方法可以在更高级别上设置排除该自定义实体的全部内容活动 views?
我创建了应该只能在Mobile Express(ME)中查看的自定义活动实体。我可以调整CRM Online中所有视图的查询,以排除与我的自定义实体类型相同的实体,但这是一项乏味的工作。为Microsoft Dynamics CRM 2011移动快车中的字段选择值
是否有另一种方法可以在更高级别上设置排除该自定义实体的全部内容活动 views?
如果我理解正确的话你的问题,要排除自定义activity
,包括您在Activity
视图的所有其他activity
解决的唯一途径是改变观点基本fetchXml
,手动或通过SavedQuery
实体循环(见下文),以确保视图不参考activity
。没有任何标志可以阻止您的自定义activity
显示在任何特定的activity
视图中;你需要修改所有的意见,以反映(除非,当然,您的自定义entity
根本不是activity
)。
//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);
}
}
您需要在此之后发布以查看您的更改条。