Dynamics CRM 2016 编辑字段中的查找电子邮件

Dynamics CRM 2016 edit lookup email from field

我使用的是 Microsoft Dynamics 2016,需要清理默认电子邮件表单的发件人字段中的选项。

因此,目的是限制电子邮件 "from" 字段的查找结果。默认情况下,它会显示所有公司、联系人等。但是,我们只会在 "from" 字段中使用队列和用户。

如何将查找和搜索项限制为仅使用队列和用户?这似乎是从派对列表派生的,但是,我找不到任何关于编辑派对列表输入的信息。

我认为 https://msdn.microsoft.com/en-us/library/gg334266.aspx#BKMK_addCustomFilter 可能是一个选项,但无法解决如何将队列 (2020) 和用户 (8) 的属性类型输入以形成查找。

使用 https://social.microsoft.com/Forums/en-US/3b97a306-4df7-4128-a3a9-e516c46c565d/limit-customer-lookup-in-opportunity-to-accounts-only?forum=crmdevelopment 中的一些代码,我想出了以下代码:

function setFromLookupOptions()
{
    document.getElementById("from").setAttribute("lookuptypes", "8,2020");
}

然而,这段代码只是报错,说它不能设置 Null 的属性(表示它找不到 "from" 字段,但这就是它在表单中的标记)。我也尝试过根据 https://bernado-nguyen-hoan.com/2015/10/28/correcting-available-lookup-views-when-restricting-lookup-types-via-javascript-in-crm/ 的第一个代码块顶部的注释使用 "from_i" 但是,它似乎找不到具有该名称的元素。

那我该怎么做呢?

这里还有一些事要做:https://community.dynamics.com/crm/f/117/t/186549 我为此创建的脚本是:

/*
Function to only select certain entities in a lookup

To use, just edit fieldName to be the name of the field on the form you want to edit and HideEntities as an array of entities you do not want to show up.
Note that under the advanced search, you will still see these items in the drop down list, they just wont find any results.
/*

function setFromLookupOptions()
{
  var fieldName = "from";
  var HideEntities = ["customJob", "account", "contact","entitlement", "equipment", "lead"];
  Xrm.Page.getControl(fieldName).addPreSearch(function()
  {
    EmailFilter(fieldName, HideEntities);
  });
}

// Hide all of the OOB entity records from the given PartyList field.
function EmailFilter(fieldName, HideEntities)
{
  var filter;
  var i;
  for (i = 0; i<HideEntities.length; i++)
  {
    filter =
      "<filter type='and'>" +
      "<condition attribute='" + HideEntities[i] + "id' operator='null' />" +
      "</filter>";
    Xrm.Page.getControl(fieldName).addCustomFilter(filter, HideEntities[i]);
  }
}

我希望这对某人有所帮助。

请注意,customJob 是显示的您需要删除的任何其他字段。所有其他说明都在脚本的顶部。

对于 CRM2016,您可以尝试在查找弹出窗口中仅显示潜在客户和客户实体。

var control = Xrm.Page.getControl("to");
control.getAttribute().setLookupTypes(["lead", "account"]);

对于可能发现此主题并想要更简单一些的其他人来说有些相关:

我想将查找设置为仅查找约会中 list/attendees 方的联系人和用户。此代码有效:

var lookupAttendees = Xrm.Page.getAttribute('requiredattendees').getLookupDataAttribute(); lookupAttendees.setLookupTypes(['contact', 'systemuser']);

注意:参与方列表不能包含未包含的记录(例如除联系人和系统用户之外的任何记录)。所以一定要清空Accounts/Leads/etc的队伍列表。在 运行 这段代码之前,否则它不会做任何事情。

假设这可能适用于任何类型的参与方列表,即使在电子邮件实体中也是如此。