我正在使用crm dynamics 365 on-permises
我有BPF(业务流程)
我希望使用javascript前进到最后一个阶段,但它只使用此代码移动一个阶段:
display: inline-block
答案 0 :(得分:1)
moveNext()
是异步的,因此您必须为其提供回调函数来评估其结果:
Xrm.Page.data.process.moveNext(callbackFunction);
备注:操作完成时要调用的可选函数。此回调函数将传递以下字符串值之一,以指示操作是否成功。
- 成功:操作成功。
- crossEntity:下一阶段是针对不同的实体。
- end:活动阶段是活动路径的最后一个阶段。
- 无效:操作失败,因为所选阶段与活动阶段不同。
- dirtyForm:如果未保存页面中的数据,将返回此值。
答案 1 :(得分:0)
我们可以通过以下两种方式实现这一目标:
1.如果您知道最后一个阶段,请在条件检查点的JS中使用以下方法设置它
Xrm.Page.data.process.setActiveStage(stageId, callbackFunction);
2.或者使用addOnStageSelected方法添加自己的处理程序&调用以下方法调用子程序直到达到所需的阶段
Xrm.Page.data.process.addOnStageSelected(handler);
答案 2 :(得分:0)
当用户在我的BPF中做出决定时,例如拒绝请求...他们从选项集中选择“拒绝”,然后我在BPF实体上使用OOTB工作流程来设置活动阶段。
然后,工作流程通过将刷新布尔值(两个选项字段)设置为true来启动“硬刷新”表单的脚本。
该脚本包含对以下内容的调用:
Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId())
,并在重新加载表单后为用户设置活动阶段。即使您使用JavaScript来设置活动阶段,也不会显示该动作,直到刷新表单。通过这种方式,您可以自动执行刷新过程,并立即获得用户和PM想要的满足。
我实际上在1500ms setTimeout()函数上调用了openEntityForm。希望对您有所帮助,将用户重定向到所需的BPF阶段对我的需求大有好处。