限制业务流程中的向后移动(CRM 2015)!

时间:2015-10-05 06:38:28

标签: crm dynamics-crm-2013 dynamics-crm-2015

我们在CRM 2015中有一定的要求,我们需要限制非S / S管理员用户的业务流程中的向后移动。我迭代了Client API(包括升级1的脚本),但我没有找到任何API来实现使用任何公开的方法。所以,最后我通过劫持业务流程的向后移动并提示用户这是非S / S管理员用户的限制移动来为此编写自定义代码。但是,这是一个不受支持的更改,我发现只要DOM ID相同,这就不会成为问题了(因为我发现2013年,2015年和2015年BPF的Rollup1的DOM ID相同)。

function restrictBPFPreviousMove() {

    var originalPreviousStageHandler = $("#stageBackActionContainer").data("events")["click"][0].handler;

    $("#stageBackActionContainer").unbind("click");

    $("#stageBackActionContainer").click(function (e) {

        alert("Restricted Back Move!");

    });

}

但是,我想知道这种方法是否有任何替代方案(支持)?

2 个答案:

答案 0 :(得分:4)

CRM 2015 has events for stage selection and change that can be handled.

  

业务流程控制事件

     

Microsoft Dynamics CRM 2015和   Microsoft Dynamics CRM Online 2015 Update为用户提供了两个事件   与业务流程流控制的交互。 OnStageChange   在舞台更改时发生。更多信息:OnStageChange事件。   OnStageSelected在选择阶段时发生。更多信息:   OnStageSelected事件。没有用于为这些注册脚本的UI   事件。在表单中注册的函数中使用以下方法   OnLoad事件,用于注册这些事件的函数。

     

Xrm.Page.data.process.addOnStageChange

     

Xrm.Page.data.process.addOnStageSelected

     

Xrm.Page.data.process.removeOnStageChange

     

Xrm.Page.data.process.removeOnStageSelected

您仍然需要手动检查用户的角色(检索systemuser,检索role,混合和匹配)

答案 1 :(得分:0)

首先使用guid获取所有阶段Xrm.Page.data.process.getActiveProcess().getStages()并将其存储为{p> 1

var

接下来,使用var stage1= "efe2a761-9f5c-492c-9843-54decc2ab76a"; var stage2= "dddddd34-9f5c-492c-9843-54decc2ab76a"; var stage3= "abcdef12-9f5c-492c-9843-54decc2ab76a"; 添加一个Event Handler来检查活动阶段Xrm.Page.data.process.addOnStageChange()

guid

然后您尝试使用以下任一方法移动舞台

var currentStageId = Xrm.Page.data.process.getActiveStage().getId();