我在Dynamics CRM 2015 Online中工作,需要在首次根据潜在客户资格创建商机时将一些条件规则应用于商机。在某些情况下,我们需要自动将业务流程流程阶段推进到流程中的第二个阶段。我已经尝试过使用Opportunity Create上的一个插件的变体来设置阶段id,但似乎当Opportunity是从Lead创建时,我在那里分配的任何值都会被忽略。现在,我正在尝试在Opportunity Form OnLoad事件期间触发一个javascript函数。这里的一个陷阱是,我还在处理一个业务必需的字段,但当机会是从销售线索创建时没有填写,所以我不能在脚本中执行简单的Xrm.Page.data.process.moveNext()。相反,我使用CRM脚本中的JQuery SDK函数updateRecord更新Opportunity。以下是代码的重要部分:
opp = {
OpportunityId: oppId,
StageId: newProcessStageId
}
SDK.JQuery.updateRecord(
oppId,
opp,
"Opportunity",
function () {
// success, refresh the form
Xrm.Page.data.refresh();
},
function (error) {
alert("An error occurred while updating the opportunity: " + error.description);
}
);这确实可以更改阶段,但是问题出在表单上业务流程流仍然将第一个阶段显示为选定的阶段,即使它移动了指示活动阶段是阶段2的标志,如此屏幕截图所示:

在更新之后,我刷新了表单数据,但是我看不到任何方法来设置“选定”阶段来匹配新的活动阶段。我已经搜索了SDK文档,到处都找不到任何能做到这一点的东西。任何帮助都是非常感谢的!
发布于 2016-04-29 18:11:48
若要更改阶段,请取消加载时的必填字段。然后尝试进入下一阶段。
发布于 2016-05-10 04:54:50
如果用Xrm.Utility.openEntityForm()调用而不是data.refresh调用呢?(顺便说一句,我也一直在试图找到一种在JS中设置选定舞台的方法,但也没有找到任何东西。我确实认为,如果您完全重新加载表单,而不仅仅是数据,它应该将选定项设置为活动的。)
https://stackoverflow.com/questions/36923952
复制相似问题