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..."

    

 

posted @ 2017-02-08 14:32  YOBYRON  阅读(524)  评论(3编辑  收藏  举报