简介: 公司的用户对 Lotus®iNotes 邮件地址本有着各式各样的定制需求,例如为用户添加多重的组织结构和角色;在地址选择时将用户按照不同的方式排序折叠等等。还有一些公司希望在缺省的地址本之外,使用自己的第三方地址本,因为其中包含丰富的企业组织信息。本文介绍了 iNotes 用户几个典型的地址本定制需求和解决方案,并且基于 Lotus iNotes 的产品框架,介绍了地址本定制的相关知识和开发细节。(声明:本文中使用的数据均是实验数据,并不来自于任何 Lotus iNotes 用户的真实数据。)
Lotus iNotes 是 Web 邮件客户端,通过它可以访问 Domino 和第三方邮件服务器。iNotes 和 Notes 客户端有几乎一致的外观和用户体验,但因为它是 Web 应用,用户通过浏览器就可以访问,所以更为方便和高效。
邮件地址本是用户在发送电子邮件时,选择收件人的工具。邮件地址本可以帮助用户管理和查找联系人,使得用户可以方便地根据名字等相关信息查找到联系人。企业的地址本一般位于企业的邮件服务器上,其中保存了整个企业邮件用户的联系信息,可以提供企业内部共享,是重要和机密的数据资源。通过定制邮件地址本和 iNotes 客户端,能够将企业员工按照公司层次等组织结构有效地管理起来,方便用户查找和发送邮件。
iNotes 同 Notes 一样,用户既可以向个人地址本(存储在用户邮箱中)的联系人发送邮件,同时,也可以向服务器地址本(存储在 Domino 服务器的 Names.nsf 数据库中)的人员发送邮件。对于企业级应用来说,服务器地址本可以存储整个企业的人员信息,便于共享和管理,因此在企业内的工作通信中,应用得更加广泛。
Domino 服务器的所有用户信息都存储在名字数据库中(Names.nsf),该数据库位于服务器上的 <domino data> 子目录中。iNotes 用户通过地址选择对话框可以方便地查询和搜索服务器上的联系人信息。图 1(b)的 iNotes 地址选择对话框显示了“按名称列表”查找联系人。除此之外,iNotes 还提供了其它 3 种查看方式:“按 Notes 名称层次”、“按公司层次”、“按语言分类”。
如果不经过定制,在 Names.nsf 数据库中添加用户的公司层次信息,“按公司层次”的查看方式是不能起到预定效果的。通过定制 Names.nsf 数据库和 iNotes 的模板数据库(Form85.nsf),可以添加用户的公司层次信息,可以改变地址选择时的缺省查看和搜索方式,还可以使用第三方 Notes 视图作为地址本数据来源。
iNotes 引用单独的数据库 Forms85.nsf,该数据库包含 iNotes 设计元素。iNotes 使用的所有表单、子表单和大多数图形都位于这个数据库中,该数据库位于服务器上的 <domino data>\iNotes\ 子目录中。iNotes 直接向 Forms85.nsf 数据库发出 URL 来检索许多共享页面和元素。访问某台服务器上的邮件文件的所有 Web 浏览器都使用这组设计元素,这些元素还被缓存在服务器上,以便获得更好的性能。在将用户的邮件文件设置为使用 Mail85.ntf 模板时,它会继承这个模板中的所有设计元素,同时还继承对共享 Forms85.nsf 数据库的引用。这两种源(模板和 Forms 文件)提供了构建单独 iNotes 页面的资源。
通过定制 iNotes 的模板数据库 Forms85.nsf,修改其中的属性文件、css 和 JavaScript,可以实现对 iNotes 从皮肤到功能的全方位定制。对 iNotes 邮件地址本的定制,也需要修改 Forms85.nsf 来实现。对 Names.nsf 的定制是编辑邮件地址本的数据来源;对 Forms85.nsf 的定制则是编辑数据在 iNotes 中的展现方式。
公司的用户对 iNotes 邮件地址本有着各式各样的定制需求。本文中,我们将以一个实例介绍 3 种典型的用户需求。通过本例,读者可以了解 Names.nsf 和 Forms85.nsf 中与地址本相关的定制方法。
某公司有 500+ 的员工,其中的部分人员层次结构如图 3 所示。
缺省的 Names.nsf 和 iNotes 设置,没有公司层次信息。用户发送邮件时所看到的地址选择对话框就像图 1(b),对于拥有许多员工的公司来说,在这样的视图下查找联系人如同大海捞针。为了方便查询和操作。该公司对邮件地址本提出了如下 3 个定制需求 :
(1).为用户添加公司层次信息,实现 iNotes 中“按公司层次”查看的功能。在这种查看方式下,将整个公司的人员信息显示成与公司组织层次对应的树形结构。这样,就可以根据人员的组织信息自上而下地查找到某个或某几个相关的联系人。例如:通过依次展开“中国总公司”、“北京分公司”、“销售部”,就可以方便地找到王晓光和赵建铭。
(2).在 iNotes 的地址选择对话框中,将“按公司层次”设置为缺省的查看方式。
(3).用户已经为每个分公司和部门创建了“邮件组”,由于 Names.nsf 数据库中没有视图可以将“邮件组”显示成公司所属关系的树形结构,用户就在 Names.nsf 中自己创建了一个 Notes 视图 GroupByOrg,显示邮件组的所属关系。用户要求可以以这个第三方的 Notes 视图作为 iNotes 地址选择的一个查看视图。
缺省的 Names.nsf 和 iNotes 设置,用户无法从 iNotes 地址选择对话框的“按公司层次”选项查看和选择联系人。需要在 Names.nsf 中为用户添加必要的组织结构信息。
iNotes 中 “按公司层次”的查看方式实际上引用了 Names.nsf 数据库的视图 ($PeopleGroupsCorpHier),这是一个隐藏视图,需要通过 Domino Designer 打开和预览。以图 3 为例,预览视图 ($PeopleGroupsCorpHier) 的结果如图 4 所示,没有公司层次信息。要想添加这些信息,需要编辑 Names.nsf 中的用户注册文档,添加相关信息。
下面,对每个公司用户添加相关的公司层次信息。具体的操作是:从 Domino Administrator 中打开 Names.nsf 数据库,在"Peoples and Groups"页面中顺次展开“Domino Directory”、“ibm ’ s Directory”(ibm 是组织名称,根据 Domino 注册时使用的名称不同而异 )、“People”、“By Organization”,即可看到所有的注册用户。然后通过双击用户打开用户文档,在“Work/Home”页面的“Corporate Hierarchy Information”子页面中添加相关的层次信息。在此,我们以图 3 中用户“张三”和“钱峰”为例,为他们添加的公司信息如图 5。
为图 3 中的所有用户添加公司信息后,($PeopleGroupsCorpHier) 视图如图 6。图中公司层次已经以树形结构展现出来。
再看此时 iNotes 的地址选择对话框,已经可以“按公司层次“查找联系人了。
“按公司层次“查找并不是 iNotes 的缺省查看方式,对初级用户来说还是不方便的。为了方便用户使用,通过定制 iNotes 的模板数据库 Forms85.nsf,把“按公司层次”设定为缺省的查找视图。
有过 iNotes 定制经验的开发人员都知道,iNotes 由于其结构的特殊性,定制起来是比较困难的。对于初次学习 iNotes 定制的读者来说,可以参考本文后的相关文章,了解 iNotes 定制的基本知识。在这里,为了简化文章,方便对地址本定制有专门需求的读者,我们省去相关原理不提,只介绍与地址本定制相关的操作。
用 Domino Designer 打开 Forms85.nsf 数据库,找到 Sub Form 下的文件 s_CoreNamePickerViewList,该文件中定义了 iNotes 地址选择对话框中的相关视图属性。JavaScript 数组 NamePick.BTM 包含了所有视图的定义,修改其中视图定义的有关属性,可以改变视图的显示;修改它们的相对位置,就可以改变缺省视图。
NamePick.BTM=[ {sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>, DcS : '($PeopleGroupsFlat)', sViewInfo : '$39;MAMailAddress;NPName;Form;AltFullName', nViewType : 2, aDBPaths : []}, {sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>, DcS : '($PeopleGroupsFlat)', sViewInfo : '$39;MAMailAddress;NPName;$40;AltFullName', nViewType : 3, aDBPaths : ['*']}, {sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>, DcS : '', sViewInfo : 'SummaryName;MailAddress;FullName;Type;AltFullName; AltFullNameLanguage;PreferredMailFormat', nViewType : 4}, {sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>, DcS : '($PeopleGroupsFlat)', sViewInfo : '$39;MAMailAddress;NPName;Type;AltFullName', nViewType : 1, aDBPaths : ['*']}, {sViewTitle : <dwa:string id="L_NPW_TITLE_HIERVIEW"/>, DcS : '($PeopleGroupsHier)', sViewInfo : '$11;MAMailAddress;$24;Type;AltFullName;$8', nViewType : 1, aDBPaths : ['*']}, {sViewTitle : <dwa:string id="L_NPW_TITLE_CORPHIERVIEW"/>, DcS : '($PeopleGroupsCorpHier)', sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$55', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*']}, {sViewTitle : <dwa:string id="L_NPW_TITLE_LANGVIEW"/>, DcS : '($PeopleGroupsByLang)', sViewInfo : '$11;MAMailAddress;NPName;Type;AltFullName;$8', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*']} ]; |
图 8 中粗体部分定义的 4 个视图就是在 iNotes 的地址选择对话框中可以选择的查看方式,它们的 nViewType 值为 1。
改变这些视图定义在数组中的位置,就可以改变 iNotes 地址选择对话框中缺省的查看方式。数组中第一个 nViewType 值为 1 的视图就是缺省的查看视图。
所以,要实现用户需求,以公司层次作为缺省的地址选择查看方式,只需要将数组 NamePick.BTM 中该视图的定义移动到第 1 位(nViewType 为 1 的所有视图中第一个即可)。
在上例的基础上,我们知道用户的第 3 个需求实际上需要将一个第三方的 Notes 视图添加到 NamePick.BTM 数组定义中。这样,用户可以从 iNotes 的地址选择器中通过该视图找到相应的部门名称,因为用户已经为每一个部门定义了相同名称的“邮件组”,就可以实现方便的查找并群发邮件。
根据用户自定义的公司层次“邮件组”视图 GroupByOrg 相关属性,将视图定义添加到 NamePick.BTM 数组定义中。
{sViewTitle : <dwa:string id="Groups by Hierarchy"/>, DcS : 'GroupByOrg', sViewInfo : 'ListName;MAMailAddress;NPName;Type;AltFullName;$55', nViewType : 1, aDefaultColumnWidths : [3], aDBPaths : ['*']}, |
在 iNotes 地址选择对话框中,新添加的查看方式“Groups by Hierarchy”已经可以选择,选择列表的组织方式与用户的第三方 Notes 视图 GroupByOrg 是一致的,如图 9。通过该列表,用户可以方便的选择一个“邮件组”,群发邮件。
本文以实际项目经验中遇到的 iNotes 邮件地址本定制需求为参考,介绍了 3 种典型的用户需求和解决方案。希望对读者有所启示。
学习
讨论
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |