CRM2011:创建一个可以删除发票产品但不能删除发票的角色

CRM2011: create a role that is able to delete invoice products, but not able to delete the invoice

是否可以定义一个不能删除任何发票但能够删除任何发票的发票产品的安全角色?

环境未自定义,定义(Tab:Mscrm.Form.invoicedetail.MainTab-->Group:Mscrm.Form.invoicedetail.MainTab.Groups-->Group:Mscrm.Form.invoicedetail.MainTab.Save-->Controls:Mscrm.Form.invoicedetail.MainTab.Save.Controls) 功能区按钮是

<Button Id="Mscrm.Form.invoicedetail.Delete" ToolTipTitle="$Resources:Mscrm_Form_Other_MainTab_Management_Delete_ToolTipTitle" ToolTipDescription="$Resources(EntityDisplayName):Ribbon.Form.Tooltip.Delete" Command="Mscrm.DeletePrimaryRecord" Sequence="70" LabelText="$Resources:Ribbon.HomepageGrid.MainTab.Management.Delete" Alt="$Resources:Ribbon.HomepageGrid.MainTab.Management.Delete" Image16by16="/_imgs/ribbon/Delete_16.png" Image32by32="/_imgs/Workplace/remove_32.png" TemplateAlias="o2" ModernImage="Remove" />

对应的命令定义为

  <CommandDefinition Id="Mscrm.DeletePrimaryRecord">
    <EnableRules>
      <EnableRule Id="Mscrm.FormStateNotNew" />
      <EnableRule Id="Mscrm.EntityFormIsEnabled" />
      <EnableRule Id="Mscrm.CanDeletePrimary" />
    </EnableRules>
    <DisplayRules>
      <DisplayRule Id="Mscrm.DeletePrimaryEntityPermission" />
    </DisplayRules>
    <Actions>
      <JavaScriptFunction FunctionName="onActionMenuClick" Library="/_static/_forms/form.js">
        <StringParameter Value="delete" />
        <CrmParameter Value="PrimaryEntityTypeCode" />
      </JavaScriptFunction>
    </Actions>
  </CommandDefinition>

好像不能创建这样一个符合要求的角色。 因为 1、在'displayrule'段,需要'Mscrm.DeletePrimaryEntityPermission'权限。 2.在'enablerule'部分,需要'CanDeletePrimary'权限。

提前致谢

我认为使用 OOB 函数是不可能的。我建议开发插件来处理 invoiceproduct 的 Delete 消息并在用户没有所需角色时抛出异常。