热点推荐
ZOL首页 > 网络设备 > 产业 > Lotus Notes/Domino的AutoSave应用

Lotus Notes/Domino的AutoSave应用


CNET中国·ZOL 作者:中关村在线 张齐 【原创】 2007年09月14日 09:57 评论

    当经过了数小时的输入、格式排版、校对检查,正在对即将提交给经理的报告做最后的修改时,突然,您的计算机死机了或者发生其他意外事件,导致所有的工作全部丢失,那该怎么办?这时,您可能才想起来“噢,天啊,我忘记保存文档了!”然后,您会问自己(这时是凌晨两点,您一定是独自一人在工作,否则还可以与他人交谈!),“我是从头开始写报告呢,还是应该开始重新找工作?”如果类似这样的事情发生在您身上,您可能会希望有一个保护天使,能随时保存您的工作,这样当发生意外事故时,还可以找到该工作文档。

    AutoSave就是那个保护天使!它是 Notes 中所引入的众多非常棒的功能之一。启用 AutoSave 后,Notes 文档会被保存(按照用户设置的计时器事件进行保存)到本地数据库中。这样,如果 Notes 或计算机由于某种原因崩溃了,会为您最近的工作保留一个副本,以便恢复。

    在客户机上启用 AutoSave

    默认情况下,AutoSave 未被启用。未启用的原因是因为用户可能不知道当他们第一次看到 AutoSave 处于运行状态时会出现什么情况。而且,有些用户使用的机器可能速度比较慢,在这样的机器上,“自动保存”大型文档可能需要占用很长时间。因此,如果想激活 AutoSave,必须通过 User Preferences 对话框中的一个新选项来启用它:

    我们添加了一个复选框以启用/禁用 AutoSave,以及一个用于设置时间间隔的字段。时间间隔可以是 1 分钟到 999 分钟之间的任何值。这些 AutoSave 用户惯用选项与客户机的 Notes.ini 文件中的三个变量相对应。下表显示了这些选项所对应的 Notes.ini 变量。

    正如前面所提到的,无提示保存不会引发任何事件。使用无提示保存进行 AutoSave 的原因是想确保 AutoSave 是一个“无缝”操作 —— 启用它之后,忘记有关它的一切操作,直到发生意外情况,然后它开始起作用,告诉您有一个或多个可以恢复的文档。如果文档未完成,引发这样的事件会产生错误(在某些情况下通常这样)。这些事件还会发送电子邮件,并且会导致意想不到的结果。因此,自动保存文档时,不引发这些事件。这时,您可能要问,如果表单要依靠这些事件,该怎么办?答案很简单,它不会起作用的!

    要解决这个问题,我们添加了一个新的 Form Properties ,用于确定表单能否被自动保存。这样就可以允许模板开发人员或应用程序设计人员对他们的应用程序进行测试并查看它能否被安全地自动保存和恢复。如果可以安全地自动保存和恢复,他们可以打开 Form Properties 信息框,转到第一个附签,选择 Allow AutoSave 复选框:

    只有由表单创建的且选中了 Allow AutoSave 的文档能被自动保存。这是确保文档被自动保存后能被恢复的惟一方法。很多 Notes/Domino 应用程序在它们的 Save 和 Post Save 事件中都有代码,这些事件会创建字段,或执行在加载时检查的验证。因为在自动保存文档时无法执行这些事件,所以这些事件都不会发生,并且自动保存后的文档也将会处于“坏的”状态。这将导致恢复后无法加载文档。

    如果应用程序没有在保存事件上写入任何字段,并且它要依靠这些字段,那么可能需要在 Query Open 事件中添加代码,将那些字段设为默认值。甚至可以通过查找一个名为 \$AutoSaveRecovered 的字段仅对恢复后的文档做一些特殊处理。该字段将仅可用于恢复后的文档,直到 Post Open 事件在那之后被删除。

    通过编程对单个文档禁用 AutoSave 的另一种方法是添加字段 \$DontAutosave。该字段会防止对文档进行自动保存。如果删除了 \$DontAutosave,则文档可以重新被自动保存。

查看本文作者 张齐 的其他文章>>
给文章打分 5分为满分(共0人参与) 查看排行>>
频道热词:工作站  云计算  服务器  
视觉焦点
企业网络产业热点
排行 文章标题
TOP10周热门无线上网卡排行榜
  • 热门
  • 新品
查看完整榜单>>