在MS Dynamics CRM 2013中查找联系人,而不是电子邮件中的帐户



I计划更改email实体上to属性的默认视图,因此建议用户在contacts中选择收件人,而不是account实体。

然而,MS Dynamics CRM中的此功能似乎已损坏。或者我错过了什么?

这是代码:

(function () {
    var ctrl = Xrm.Page.getControl("to");
    if (ctrl) {
        ctrl.setDefaultView('{13C1A58B-9AEF-4164-80E5-1D946D5BC8B3}');
        console.log("Default view is set!");
    }
}())

Guid指向contact实体上的有效视图。代码被执行,控制台有调试消息默认视图被设置,并且在使用to时,查找系统在默认情况下仍然使用account

有人找到解决这个问题的方法了吗?当然是以支持的方式。

我很幸运地找到了支持,但如何在不攻击CRM核心的情况下实现所需的结果仍然有点棘手。

基本思想是将任何自定义视图添加到所选控件,而不是将setDefaultView添加到对实体有效的任何所需视图

因此,问题中的代码可以重写为:

(function () {
    var ctrl = Xrm.Page.getControl("to");
    if (ctrl) {
        // Add custom view based 
        ctrl.addCustomView('{71C254C1-1F55-43B7-94DE-C461DB617A77}', 'contact', 'View Name', '<xml> valid FetchXML statement </xml>', '<xml> valid LayoutXML statement </xml>', true);
        ctrl.setDefaultView('{13C1A58B-9AEF-4164-80E5-1D946D5BC8B3}');
        console.log("Default view is set!");
    }
}())

实际上,在设置了新的自定义视图之后,任何有效的视图都可以设置为默认视图。这可以是自定义视图,也可以是系统视图。

最新更新