防止删除 - 在CRM 2011中使用插件

时间:2015-06-30 03:22:28

标签: c# plugins dynamics-crm-2011

如何根据Microsoft Dynamics CRM 2011中的插件中的条件阻止删除?我试过了InvalidPluginExecutionException,但它没有用。

这是我的代码。

try
{
    if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
    {
        Entity entity = (Entity)context.InputParameters["Target"];
        new_testing testing = entity.ToEntity<new_testing>();
        if (testing.new_hutang.Value == true)
        {
            throw new InvalidPluginExecutionException("error delete");
        }
    }
}
catch (InvalidPluginExecutionException e)
{
    Console.WriteLine("cancel delete plugin" + e);
}

你能帮我解决一下需要做什么吗?

2 个答案:

答案 0 :(得分:1)

您需要在“new_hutang”字段的插件注册中添加PreImage。默认情况下,Target实体不会包含删除的所有字段,但如果您在注册插件时指定了PreImage实体,则PreImage实体将会包含该字段。有关详细信息,请参阅此博客文章:https://deepakexploring.wordpress.com/2011/02/04/preentityimages-and-postentityimages-in-crm-5-0-2011/

答案 1 :(得分:0)

除了@Josh Painter(这是最好的方法)之外,您还可以使用javascript指令来确保包含该字段。

Xrm.Page.getAttribute("new_hutang").setSubmitMode("always");

这一行可以在onsave函数中,你可以&#34;附加&#34;到表单的OnSave envent。这也可以确保插件中存在该字段。