MS-CRM 2013阻止用户进入下一个阶段

本文关键字:下一个 用户 2013 MS-CRM | 更新日期: 2023-09-27 18:12:17

我正在研究业务流程流。我已经按照要求创建了流程联系-机会-报价-订单-发票。实体机会具有属性预算金额,如果预算金额小于30万,用户不应进入下一阶段。我的问题是如何阻止用户进入下一个阶段。

MS-CRM 2013阻止用户进入下一个阶段

你应该

  1. 将插件注册到preupdate Operation of Opportunity.
  2. 检查stageid字段:

    if (!context.InputParameters.Contains("Target") && 
        context.InputParameters["Target"] is Entity)
    {
       Entity target = (Entity)context.InputParameters["Target"];
       if (target .Attributes.Contains("stageid") && 
           target ["stageid"] != null
       {
           // check stage value match your next stage
           // check Budget Amount
           // if Budget Amount < 300000 throw an exception
       }
    }
    
  3. 检查下一阶段值,有两种方法检查阶段

    -通过您的阶段名称检索下一个阶段id,并比较它们是否匹配,然后继续下一步,否则返回。或者,

    -创建一个名为stagename的新字段来存储阶段名称,并在stageid字段更改时触发一个CRM工作流,以使用Process stage name更新该字段。细节。然后,您就有了一个可用的艺名,而无需检索它。比较新字段中的值是否与下一个阶段名称匹配,然后继续下一步,否则返回

  4. 检索并检查预算金额值。或者,如果您不想检索,您可以使用预映像和/或target['budgetamount']来获取该值。

  5. 如果预算金额<300000,那么

    throw new InvalidPluginExecutionException("Budget Amount must be greater than 300,000 to move to the next stage");
    

希望有帮助!

以编程方式编辑业务流程流:

https://community.dynamics.com/crm/b/develop1/archive/2013/09/20/how-to-change-process-and-stage-programmatically.aspx