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

Lookup contacts instead of accounts on emails in MS Dynamics CRM 2013

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

但是,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!");
    }
}())

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