我创建了一个插件,用于在另一条记录上更改字段时创建新记录。我把它全部设置好但是当我运行它时没有创建记录而CRM返回SQL Timeout错误。我的代码如下:
Entity contactSecurityRole = new Entity("sb_contactsecurityrole");
contactSecurityRole["sb_contactid"] = linkedContact;
contactSecurityRole["sb_contactportalsettingid"] = linkedContactPortalSetting;
contactSecurityRole["sb_portalsettingid"] = linkedPortalSetting;
contactSecurityRole["sb_portalsecurityroleid"] = linkedSecurityRole;
Service.Create(contactSecurityRole);
名称以“链接”开头的所有变量都是对其他实体的实体引用,因为记录由查找字段组成。我做了一些检查,停止的地方是实际的Service.Create()
部分。
有人可以给我一些关于检查内容的提示,这样我就能找到为什么会发生这种情况吗?
我发现了这个问题,Greg是对的,这是我上面发布的代码之外的问题。问题是我如何设置我的一个“链接”变量,我试图使用获取请求来检索我需要链接到的记录的Guid,我从中设置了一个实体参考。
我犯的错误是认为fetch返回了Guid,而实际上它返回了一个实体引用本身。因此,一旦我修复了代码几乎立即运行。我的猜测是,因为我设置错了,当创建实体时,CRM / SQL Server可以输入值,以便返回错误。
感谢大家对此的帮助
答案 0 :(得分:2)
This将为您提供更多清晰度和解决方案
答案 1 :(得分:0)
当我在我的一个CRM实例中注册Sandbox中的插件时,我遇到了这个问题,你应该这样做,这是一个很好的做法。但是尝试在非沙盒模式下注册插件,而不是尝试创建记录,它可能会解决您的问题。
答案 2 :(得分:0)
有意义的是,Service.Create(...
部分会出现任何异常,因为这是代码尝试访问CRM(以及底层SQL表)的时间点。
是否有可能在此过程中注册了其他可能被触发的插件?您是在本地还是在线运行?
答案 3 :(得分:0)
我发现了这个问题,Greg是对的,这是我上面发布的代码之外的问题。问题是我如何设置我的一个“链接”变量,我试图使用获取请求来检索我需要链接到的记录的Guid,我从中设置了一个实体参考。
我犯的错误是认为fetch返回了Guid,而实际上它返回了一个实体引用本身。因此,一旦我修复了代码几乎立即运行。我的猜测是,因为我设置错了,当创建实体时,CRM / SQL Server可以输入值,以便返回错误。
感谢大家对此的帮助