针对窗体或组织禁用自动保存
此主题适用于 Dynamics 365 Customer Engagement (on-premises)。 有关此主题的 Power Apps 版本,请参阅: 在模型驱动应用中禁用自动保存
自动保存可帮助用户关注其工作,而不必管理窗体中的保存数据操作。 大多数人都喜欢不必在每次更新记录时都要显式保存数据,但有些组织可能会有在设计上就要求显式保存的自定义项。 对于这些组织,可以使用选项来管理自动保存的应用方式。
自动保存如何工作
默认情况下,更新后的实体和经典实体的所有的主窗体都将启用自动保存。 在创建(初始保存)了记录之后,对窗体所做的任何都会在完成更改后 30 秒自动保存。 如果窗体中没有更改,则在打开窗体时不会发生自动保存。 在完成更改后,会重新计算自动保存开始前的 30 秒期间。 当前有人正在编辑的字段不会包括在自动保存中。 如果另外有人在您编辑记录的过程中更新了同一个记录,则在发生自动保存时,将会在窗体中检索和显示这些更改。
启用自动保存后,将仅为初次保存记录显示“保存”按钮。 创建记录之后,命令栏中的“保存”按钮不会显示,但在没有任何未保存的更改时会显示的右下角中,可以看到 按钮。 此控件在自动保存禁用时也会显示。
可以单击此按钮以保存记录,然后立即刷新窗体中的数据。 当自动保存启用时,记录将被保存,只要您离开记录或关闭显示记录的单独窗口,都会保存记录。 对于未更新的窗体,不需要在窗体中显示保存并关闭按钮。
重要提示
在统一接口中,如果自动保存期间出现错误,页面的自动保存间隔将增加。 此外,如果更改了属性值或成功保存,间隔将重置为 30 秒。
是否应禁用自动保存?
如果您有在保存记录时执行的插件、工作流或窗体脚本,它们将在每次自动保存发生时运行。 如果这些扩展未设计成与自动保存一起工作,则可能导致不适宜的行为。 不管您是否启用自动保存,插件、工作流和窗体脚本都应设计成查找特定的更改,不应对每个保存事件都无差别地执行。
如果您为窗体配置了审核,则将每次保存视为单独的更新。 如果有人在有未保存的更改的窗体上逗留超过 30 秒,则当他们在执行自动保存后添加的其他数据,则将看到一条额外的输入。 如果您有依赖于审核数据的报告,并将每次保存视为单独的“触及”记录,则可能会看到触及的频率增加。 如果使用此方法,则应该考虑单个用户行为使其成为一个不可靠的指标,而与是否启用自动保存无关。
为组织禁用自动保存
如果您确定自动保存将导致您使用的任何扩展出现总是,则可为组织将其禁用。 没有用于为单个实体或窗体禁用自动保存的设置。
转到设置>管理。
选择系统设置。
对于为所有窗体启用自动保存选项,请选择否。
为窗体禁用自动保存
如果要为特定实体窗体禁用自动保存,则可向实体中的 OnSave
添加代码。
备注
窗体的自动保存将被禁用,但用户每次单击右下角的 按钮时,仍将保存数据。 如果用户尝试离开或者关闭数据被更改了的窗体时,则会弹出是否需要保存更改的提示,以阻止用户离开或者关闭该窗体。
在导航栏上,选择 Microsoft Dynamics 365>设置。
设置将显示在导航栏上。
转到设置>自定义。
选择自定义系统。
在组件下,展开实体,然后找到窗体的实体。
展开该实体节点并选择窗体。
打开要编辑的窗体。
创建 JavaScript Web 资源并将其添加到窗体:
在窗体编辑器中的窗体 组下,选择窗体属性。
在事件选项卡上的窗体库下,选择添加。
在查找记录对话框中,选择新建。
在 Web 资源窗体中,输入以下信息:
价值 Name preventAutoSave 显示名称 阻止自动保存 类型 脚本(JScript) 在类型字段旁边,选择文本编辑器。
在来源字段中,粘贴以下代码:
function preventAutoSave(econtext) { var eventArgs = econtext.getEventArgs(); if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) { eventArgs.preventDefault(); } }
选择确定关闭文本编辑器。
选择保存以保存 Web 资源,然后关闭“Web 资源”窗口。
在查找记录 对话框中,您创建的新 Web 资源将处于选中状态。 选择添加关闭该对话框。
配置 OnSave 事件:
在窗体属性窗口中的事件处理程序 分区,将事件 设置为OnSave 。
单击添加。
在处理程序属性窗口中,将库设置为在上一步中添加的 Web 资源。
在函数字段中键入
preventAutoSave
。 区分大小写。 不要包含引号。确保选中已启用。
选中将执行上下文作为第一个参数传递。
重要提示
如果您不这么做,脚本将无法运行。
处理程序属性对话框应如下所示。 自定义前缀“new_”可能会由于为组织的默认发布商设置的自定义前缀而有差异。
单击确定以关闭处理程序属性 对话框。
如果有
OnSave
的任何其他事件的事件处理程序,请使用绿色箭头将此处理程序移到顶部。
单击确定以关闭窗体属性 对话框。
单击保存并关闭以关闭窗体。
在解决方案资源管理器中,单击发布所有自定义项。
在将此脚本应用于
OnSave
事件之后,当用户使用此窗体编辑记录时,将在窗体右下角出现未保存的更改消息,就像未禁用自动保存时那样。 但在用户单击此消息旁边的按钮之前,此消息不会消失。