1.将Retrive 方法改成 RetrieveMultiple时 如果指定的ColumnSet 没有指定主键(entiryname+id),要显示增加实体的主键.否则在调用 Retrieve方法时返回的Entity中有Id值,而RetrieveMultiple返回值中不会有Id值。
2.CRM中的实体Assign 操作会引发Update 插件,所以应该在Update插件中判断是不是由分派引发,避免误操作
if (context.Depth > 1 ) { }
3,需要在前期插件给记录填充值的时候需要注册CRM2011的验证阶段,注册到事务阶段则不会对结果有影响
4,修改插件中的参数 context.InputParameters["Target"]赋值时只能用户后期代码赋值,如果用强类型就是批的CRM里的后期代码写法赋值就会报错。
5.CRM 2011在定义工作流时的时候,插入创建或者更新记录步骤时,不能给表单上设置只读属性的字段赋值。
6.如果在自己电脑上开发CRM,用SDK连接CRM时,本地时间和服务器时间要保持一致,相差超过5分钟则不能和CRM交互(增、删、改、查)。
7.开发脚本时,使用CRM的 Xrm.Page.context.getServerUrl() 方法时,需要注意用户访问CRM的方式是不是统一使用安装CRM时产品的路径,否则就会报错,建议重写CRM的Xrm.Page.context.getServerUrl()方法,或者不用自带的方法获取路径,用下面脚本代替
window.location.protocol + "//" + window.location.host + "/" + Xrm.Page.context.getOrgUniqueName() + "/xrmservices/2011/organizationdata.svc";
8.调用SDK是一定要注意大小写,后期邦定的代码全部小写。由于早期邦定的代码编译是会有较验,大小写的错误在编译阶段就能检查出来,所以使用后期邦定的代码要注意。
9.前台JS脚本使用CRM REST时也要注意大小写,使用的CRM的Scheme 名称对大小写敏感。
10 如果是角色权限的错误,为了快速判断用户是缺少那项权限可以参考每个权限对应的设置参照下面的URl:http://msdn.microsoft.com/en-us/library/gg334308.aspx
11 调用共享权限时报错 only owner can revoke the owner access. 这个取消共享的错误.是因为如果把记录共享给记录的Owner在取消共享时会报错.
12 在开发自定义工作流的时候,由于引用的System.ServiceModel,导致加载自定义工作流失败。
13 自定义实体的Robin按纽的时候,由于实体名相近,导致改到错误的实体名上了。悲剧