案例实体添加个人视图时候不能显示起源列怎么办?这么干!

 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复266或者20171105可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me 。

案例实体(逻辑名称incident)是Dynamics 365服务模块最重要的实体,没有之一。当我们在定制案例实体的时候,发现添加视图的时候无法将起源列(逻辑名称caseorigincode)添加显示,截图为证。

但是如果你添加的是公共视图,是可以添加到起源列的,如图:

这是神马情况?为什么这个列不让我添加进显示呢?我也不知道,向微软技术支持中心求助,找到了解决办法。

添加个人视图的时候有些东西是有了的,比如默认显示的列,应该是以实体中querytype等于1且isdefault等于true的那个公共视图为模板来生成的,我用Web API来查看:https://demo.luoyong.me/api/data/v8.2/savedqueries?$filter=returnedtypecode eq 'incident' and isdefault eq true and querytype eq 1。默认返回的格式不好看,如下:

使用Chrome浏览器按F12出来开发者工具,点击Network这个Tabpage,点击这个请求,看Preview这个TabPage,能看到返回Json数据的元素及其值。

 

可以看到这个视图的layoutxml字段的值是:<grid name=\"resultset\" object=\"112\" jump=\"title\" select=\"1\" icon=\"1\" preview=\"1\"><row name=\"result\" id=\"incidentid\"><cell name=\"title\" width=\"300\" /><cell name=\"ticketnumber\" width=\"150\" /><cell name=\"createdon\" width=\"150\" /><cell name=\"caseorigincode\" width=\"100\" ishidden=\"1\" /></row></grid> 。

可以看到这个XML中name为caseorigincode的cell多了一个ishidden属性,且其值为1,也就是隐藏的意思。那如果把我这个属性值设置为false呢。因为这个是系统原生视图,在不同的环境中其savedqueryid都是一样的,都是00000000-0000-0000-00AA-000000666200,那我用如下的代码来更新下,当然更新后还需要发布案例这个实体才行。

ClientCredentials cc = new ClientCredentials();
cc.UserName.UserName = @"crmadmin@luoyong.me";
cc.UserName.Password = "*********";
using (OrganizationServiceProxy orgSvc = new OrganizationServiceProxy(new Uri("https://demo.luoyong.me/XRMServices/2011/Organization.svc"), null, cc, null))
{
  var savedQuery = orgSvc.Retrieve("savedquery", Guid.Parse("00000000-0000-0000-00AA-000000666200"), new ColumnSet("layoutxml"));
  savedQuery["layoutxml"] = savedQuery.GetAttributeValue<string>("layoutxml").Replace("ishidden=\"1\"", "ishidden=\"0\"");
  orgSvc.Update(savedQuery);
}

这个时候再次创建个人视图,发现起源列已经显示了,如图:

 

显示的效果如下:

 

 

 当然,除了本办法,还有就是根据现有显示起源列的公共视图来创建视图,也可以显示起源列,哪些公共视图显示了起源列呢,我用Web API来查看:https://demo.luoyong.me/api/data/v8.2/savedqueries?$filter=contains(fetchxml,'caseorigincode') and not contains(layoutxml,'ishidden') 。可以看到 我的可用案例 等13个公共视图是显示这个列的。

posted @ 2017-11-05 08:33  微软MVP(15-18)罗勇  阅读(622)  评论(0编辑  收藏  举报