在潜在客户资格后创建机会时,设置机会查找值不起作用
Set lookup value on opportunity not working when it's created after lead qualification
我在机会的 onload 事件中得到了以下代码:
$.ajax({
url: Xrm.Page.context.getClientUrl() + '/api/data/v8.0/pricelevels(75ec69fe-3118-e611-80b7-0050568a6c2d)?$select=name',
headers: { 'Accept': 'Application/json' }
}).done(function (data) {
if (!$.isEmptyObject(data)) {
var lookup = [];
lookup[0] = {};
lookup[0].id = data.pricelevelid;
lookup[0].name = data.name;
lookup[0].entityType = 'pricelevel';
Xrm.Page.getAttribute('pricelevelid').setValue(lookup);
}
}).fail(function (data) {
console.log('error getting default price list');
});
当我打开商机或创建新商机时,此代码运行良好。
但是,当我符合条件时,领先的 CRM 会打开新创建的机会。我可以调试 javascript 并查看它是否正常工作。检索该值并调用 setValue 行。只有 ui 未更新且字段值未设置。
注意事项:
- 我正在使用 CRM 2016
- 潜在客户资格是使用插件自定义的。
关于导致 ui 不更新的原因的任何想法?
我会尝试几件事:1) 关闭插件,同样的问题? 2) 将 setValue 调用包装在 setTimeout 中:setTimeout(function() { /*setValue*/ }, 100)
以查看是否有任何区别。
我在机会的 onload 事件中得到了以下代码:
$.ajax({
url: Xrm.Page.context.getClientUrl() + '/api/data/v8.0/pricelevels(75ec69fe-3118-e611-80b7-0050568a6c2d)?$select=name',
headers: { 'Accept': 'Application/json' }
}).done(function (data) {
if (!$.isEmptyObject(data)) {
var lookup = [];
lookup[0] = {};
lookup[0].id = data.pricelevelid;
lookup[0].name = data.name;
lookup[0].entityType = 'pricelevel';
Xrm.Page.getAttribute('pricelevelid').setValue(lookup);
}
}).fail(function (data) {
console.log('error getting default price list');
});
当我打开商机或创建新商机时,此代码运行良好。
但是,当我符合条件时,领先的 CRM 会打开新创建的机会。我可以调试 javascript 并查看它是否正常工作。检索该值并调用 setValue 行。只有 ui 未更新且字段值未设置。
注意事项:
- 我正在使用 CRM 2016
- 潜在客户资格是使用插件自定义的。
关于导致 ui 不更新的原因的任何想法?
我会尝试几件事:1) 关闭插件,同样的问题? 2) 将 setValue 调用包装在 setTimeout 中:setTimeout(function() { /*setValue*/ }, 100)
以查看是否有任何区别。