在开发用于" Microsoft Dynamics CRM 2015 Update 1 Online"的同步插件期间我使用function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
function scrollto(val) {
$('html,body').animate({scrollTop: $('#'+val).offset().top - $('#navi_bar').height()},700);
}
创建多个实体记录。当我在CRM中测试插件时,会出现一条异常消息,其中显示&#34; SQL Timeout已过期&#34;。
如果我将ExecuteMultipleRequest
替换为循环中调用的ExecuteMultipleRequest
,则可以正常工作。如果我将插件的类型从同步更改为异步而不替换service.Create(...)
,它也可以正常工作
有人知道同步插件中可能导致SQL超时问题的原因是什么?
谢谢。
答案 0 :(得分:2)
Dynamics CRM online限制为超时前2分钟的默认设置。这意味着单个插件操作中的较大进程容易超时。
以下是选项列表:
干杯
答案 1 :(得分:0)
我不建议在插件中使用ExecuteMultipleRequest。你当时已经在服务器上了,因此使用ExecuteMultipleRequest没有任何性能上的好处(从我自己的测试中,我没有看到性能提升,如果你有其他的数据说,会喜欢看见了)。您还遇到了请求失败的潜在问题since CRM limits the number of concurrent ExecuteMultipleRequests that are executing。