Dynamics CRM 2015-Auto Save
Auto Save,顾名思义,就是不需要明确地点击Save按钮,自动保存。这个功能在创建CRM Organization的时候,默认是开启的。
需要注意的是:
1. Auto Save适用于Main Form,而Quick Create Form或者Mobile Form都没有这个效果;
2. Auto Save针对的是recrod对象;
3. Auto Save适用于更新某个record,而创建record的情况,是没有这个效果的;
4. Auto Save触发的默认时间间隔是30s;
5. Auto Save的Turn on/off设置是Organization级别的;
6. Auto Save跟正常点击Save按钮的效果差不多,一样能触发相关的定制;
7. Auto Save Turn on的时候,record的command bar中的Save相关的按钮会隐藏
综合以上的注意事项,下面针对一些具体的需求,给出相应的配置方案。
a. 打来和关闭Auto Save
在CRM界面,Settings->Administration->System Settings
这个配置的改动,不需要重启iis,直接刷新record即可看到效果(Command bar上Save相关的按钮是否显示)
b. 30s时间间隔
有些情况下,可能对于这个30s的时间间隔,大家不是很满意,想要调高或者调低,这个需要如何操作呢?
这里操作的对象是CRM Config Database:MSCRM_CONFIG
查询操作:
SELECT ColumnName, IntColumn FROM DeploymentProperties WHERE ColumnName = 'AutoSaveInterval'
修改操作:
UPDATE DeploymentProperties SET IntColumn = 20 WHERE ColumnName = 'AutoSaveInterval'
既然操作对象是ConfigDB,那个显而易见的,这个修改的影响范围,就是所有的Organization了。
c. 阻止某些Form的Auto Save功能
具体的实现,是通过给Form的onSave事件配置自定义的funtion。
首先要了解的是,虽然save的效果都是一样的,比如Save,Save and Close,但是在后台,这些save事件所对应的value是不同的。
更多的Event Mode,大家可以参考SDK文档。
那么在知道了这个以后,就可以编写function了。
funtion preventAutoSave(eContext){ var eventArg = eContext.getEventArgs(); if(eventArg.getSaveMode() == 70){ eventArg.preventDefault(); } }
接着就是添加WebResource,在Form上配置Onsave事件,这个基础操作,这里就不多赘述了。需要提醒的是,一定要勾选"Pass execution..."