CRM 2011:仅对某些实体启用批量编辑



我目前希望在除少数实体外的所有实体上禁用批量编辑,其中之一是"Campaign Response"实体。

为了实现这一点,我做了以下工作:

  • 在全局级别隐藏OOTB编辑按钮(据我所知,您不能以这种方式编辑OOTB功能区按钮)
  • 在全局级别创建新的自定义编辑按钮(减去SelectionCountRule节点)
  • 对于我需要批量编辑的每个实体:
    • 隐藏自定义编辑功能区按钮
    • 使用SelectionCountRule节点创建一个新的自定义编辑按钮

现在,这一切都很好,直到我转到任何实体上的活动子网格。由于我处理这个问题的方式,现在活动表单上有两个编辑按钮(一个用于常规编辑按钮,一个用于活动响应的编辑按钮)。

我不知道如何解决这个问题,但我有一个想法,我需要一些帮助:

  • 删除"批量编辑"编辑按钮
  • 在全局级别,在自定义编辑按钮的选择规则中添加JavaScript
    • JavaScript将获得所选实体的逻辑名称(在所有子网格上)
    • 如果实体是市场活动响应,请在功能区中启用(或附加?)SelectionCountRule

我不确定这是否可能。我主要不确定JavaScript到ribbon的启用规则允许

无人机,

原来我所要做的就是覆盖OOTB按钮(如图所示:http://howto-mscrm.blogspot.com.au/2011/04/how-to-series-6-how-to-overrideenable.html)使用一些简单的XML:

<EnableRule Id="sample.AllGrids.AllEntities.MainTab.Management.Edit.Command.EnableRule.CustomRule">
  <CustomRule FunctionName="canBulkEdit" Library="$webresource:new_sample_generic_functions_javascript_library">
    <CrmParameter Value="SelectedControlSelectedItemCount" />
    <CrmParameter Value="SelectedEntityTypeName" />
  </CustomRule>
</EnableRule>

以及一些JavaScript:

canBulkEdit = function (oSelectedControlSelectedItemCount, oSelectedEntityTypeName) {
    var canBulkEditEntity = false;
    if (oSelectedControlSelectedItemCount < 2 || oSelectedEntityTypeName == "campaignresponse")
        canBulkEditEntity = true;
    return canBulkEditEntity;
}

还必须对ActivityPointer"实体"做一些额外的调整。结果发现activitypointer有一个不同的批量编辑按钮

最新更新