Javascript 在Dynamic 365 Online中触发OnStageChange事件时,如何判断用户是否正在移动到业务流程流的下一个或上一个阶段?
我正在编写一个JS脚本,当用户在Dynamic 365 Online中移动到业务流程流的下一个阶段时,截取并执行一些额外的验证 我将我的函数绑定到Dynamic365事件,但该事件不仅在用户移动到下一个阶段时触发,而且在用户移动回上一个阶段时也会触发Javascript 在Dynamic 365 Online中触发OnStageChange事件时,如何判断用户是否正在移动到业务流程流的下一个或上一个阶段?,javascript,dynamics-crm,Javascript,Dynamics Crm,我正在编写一个JS脚本,当用户在Dynamic 365 Online中移动到业务流程流的下一个阶段时,截取并执行一些额外的验证 我将我的函数绑定到Dynamic365事件,但该事件不仅在用户移动到下一个阶段时触发,而且在用户移动回上一个阶段时也会触发 有没有办法告诉用户是进入下一个阶段还是上一个阶段?您需要将OnStageChange的代码更新到getEventArgs,这将允许您查看getDirection是“下一个”还是“上一个” 没有看到您的代码,我无法提供具体的实现建议,但这回答了您的问
有没有办法告诉用户是进入下一个阶段还是上一个阶段?您需要将
OnStageChange
的代码更新到getEventArgs
,这将允许您查看getDirection
是“下一个”还是“上一个”
没有看到您的代码,我无法提供具体的实现建议,但这回答了您的问题
以下是进一步了解如何处理“OnStageChange”事件的链接:
多亏了@OneNeptune,我成功地解决了以下问题
const NEXT_STAGE_OPTION = "Next"
function onAccountFormLoad (context) {
context.getFormContext().data.process.addOnStageChange(checkMoveStage);
}
function checkMoveStage(context) {
var targetStageName = context.getFormContext().data.process.getActiveStage().getName();
var direction = context.getEventArgs().getDirection();
console.log("Move to " + direction + " stage:" + targetStageName);
if (direction === NEXT_STAGE_OPTION) {
// Perform necessary validation when moving to next stage.
}
}
函数onFormLoad被添加到表单的onLoad事件中,并选中了“将执行上下文作为第一个参数传递”选项。能否向我们展示您的代码?非常感谢。我确实检查过那个文档,我不敢相信我错过了关于getEventArgs的部分。@tsukumogami如果这是正确的答案,请标记它,以便将来有此问题的人能够找到解决方案。你不是第一个遇到这个问题的人,也不会是最后一个!很高兴我能帮忙!