Dynamics CRM - 使用 JavaScript 操作 Business Process Flow

整理了一下一些与 BPF(Business Process Flow)相关的 JS 操作:

为 Stage 添加 changed 或者 selected 事件:

function fnOnLoad() {

  Xrm.Page.data.process.addOnStageChange(fnStageChanged);//change 事件,跳转到当前 Stage 时触发

  Xrm.Page.data.process.addOnStageSelected(fnStageSelected);//select事件,选中当前 Stage 时触发

}

function fnStageChanged(execContext){

  var currentStage = execContext.getEventArgs().getStage();//获取当前Stage

  //其他操作

}

 

获取当前 Stage:

var activeStage = Xrm.Page.data.process.getActiveStage();

获取当前 Stage 的名称:

var sName = activeStage.getName();

获取当前 Stage 的状态:

var oStatus = activeStage.getStatus();    //active or inactive

更多相关的 api 可以参考:

https://adisys.wordpress.com/2017/01/03/dynamics-crm-scripting-for-business-process-flows/

 获取 Stage 下的字段名(step):

//"header_process_sFiledName",可用F12查看,若存在同名step,系统会自动在后面累加数字,比如:"header_process_sFiledName_1"

对 Stage 中的字段加锁(设置只读):

Xrm.Page.getControl("header_process_sFiledName_1").setDisabled(true);

设置 BPF 的状态:

Xrm.Page.data.process.setStatus("finished");//set finished,BPF流程已经完成

获取 BPF 的状态:

var oStatus = Xrm.Page.data.process.getStatus();

oStatus == "active";   //BPF处于active状态,未finished

oStatus == "finished"; //BPF处于finished状态

oStatus == "aborted";  //BPF处于abandon状态,灰色不可编辑

abandon 一个 BPF,整个流程会变成灰色,不可操作:

Xrm.Page.data.process.abandonProcess();  //BPF处于finished状态时,不可以执行abandon操作,会报错

reactivate 一个 BPF,将已经 abandon 的 BPF 恢复到 active 状态,可编辑和操作:

Xrm.Page.data.process.reactivateProcess();

Note:利用 JavaScript 对 Business Process Flow 进行 abandon 或者 reactivate 需要在 Form 的 OnSave 事件执行完毕之后,可以利用回调函数(call back)来完成。

转载于:https://www.cnblogs.com/Sunny20181123/p/10272414.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值