内容


使用 Domino Designer 创建 Lotus Notes 应用程序来访问 DB2

Comments

简介

您是否曾经想学习如何创建一个客户端应用程序,以便用户可以使用该程序来访问和更新您 DB2 数据库中的数据呢?您是否曾被要求在难以置信的期限内开发并部署该应用程序呢?如果您的回答是 YES,那么我们将向您介绍 Domino Designer,这是一款与 IBM Lotus Notes 产品套件一同发行的优秀工具。

本文将向您展示,使用 Domino Designer 创建 IBM Lotus Notes 应用程序来访问 DB2 数据库中存储的企业数据是多么容易,以及这样做的好处。您将看到如何创建应用程序来查询、更新、删除和插入数据,还将了解如何分发该应用程序,以便一组用户能够通过 IBM Lotus Notesclient 或 Web 浏览器来使用它。

Lotus Notes 101

Lotus Notes 基础知识

Lotus Notes 是一个工作组计算环境,有助于一组人员共同工作、共享信息、协调活动以及使用 Internet 和 intranet 应用程序。其实现与平台和用户的物理位置无关。Lotus Notes 还提供一个应用程序开发环境,其中已经建立了一个设计并跨企业部署应用程序的安全模型。

Lotus Notes 的主要组件

Domino 服务器:
Domino 是一个应用程序和消息传递(messaging)服务器,支持群件(groupware)应用程序的开发和部署。它支持不同的客户机,如 Lotus Notes 客户机、邮件客户机和 Web 浏览器。Domino 还为在 Internet 上访问的 Lotus Notes 应用程序充当 Web 服务器。在本文后面部分,当通过 Web 浏览器访问应用程序时,您将看到正是这一功能在起作用。

Lotus Notes 客户机:
Lotus Notes 客户机可以是 Lotus Notes 桌面客户机、Domino Administrator 客户机以及 Domino Designer 客户机。本文中,您将重点关注 Domino Designer 客户机。Domino Designer 是一种设计客户机,用于开发 Domino 应用程序。它包括创建、部署 Notes 或基于 Web 的应用程序,以及确保其安全性所必需的所有工具和实用程序。通过 Domino Designer,应用程序开发人员可以使用 Notes Formula 语言快速组合应用程序。开发人员还可以使用类似于 Visual Basic 的、名为 Lotus Script 的脚本编制语言来编写更加复杂的应用程序。Domino Designer 还允许开发人员用 JavaScript™ 进行编码。

服务:
Lotus Notes 的服务实例包括 Domino 安全模型(Security Model),可以用它进行用户身份验证、访问控制和加密。复制(Replication)服务有助于不同位置上的信息同步。另一个实例是消息传递(Messaging)服务,这是一种客户机/服务器的消息传递服务,它允许用户调度活动,而且还支持不同的邮件客户机,如 POP3、SMTP 和 IMAP。

集成 Lotus Notes 和 DB2 的好处

Lotus Notes 提供了一个安全的分布式环境,可以在该环境中创建、部署应用程序以及在企业级别上对其进行访问。DB2 是功能极其强大的关系数据库管理系统(Relational Database Management System,RDBMS),具有存储和管理大量数据的能力。应用程序开发人员可以通过开发 Notes 应用程序,充当到 DB2 中存储数据的‘易于使用’的接口,来获取两者的好处。然后,DB2 数据可以用于各种工具以及应用 Lotus Notes 安全模型的企业应用程序中。正如前面所提到的,可以在 Web 上访问 Lotus Notes 应用程序,从而使用户能够更容易访问 DB2 数据库中存储的遗留数据。

Company Profile 应用程序概述

本文中,您将开发一个应用程序,访问名为 COMPDB的 DB2 数据库。您将使用 COMPANY表来查询、更新、删除和插入数据。

设置先决条件

您首先需要:

  • Windows® OS
  • Domino Server v6
  • Lotus Notes 客户机和 Domino Designer v6
  • DB2 v8.1

可以使用下列命令创建 DB2 数据库和表:

db2> create db compdb

db2> create table company (compno varchar(10), compname varchar(30), address varchar(30), phoneno varchar(10), contactnme varchar(20))

COMPANY表中插入三行数据。请按照下面的实例插入第一行,然后以同样的方式插入剩下的两行:

db2> insert into company values(‘0001’,’Mouse Inc.’,’ 1 Mousey Road, DisneyLand’,’111111’,’Mickey Mouse’)

COMPNO COMPNAME

ADDRESS

PHONENO CONTACTNME
0001Mouse Inc.1 Mousey Road, Disney Land111111Mickey Mouse
0002Duck Private Eye1 Duck Road, Disney Land222222Donald Duck
0003Donkey Pte Ltd2 Swamp Street333333Donkey

开始

启动 Domino 服务器:

为了启动 Domino 服务器、Lotus Domino Designer 或 Lotus Notes 客户机,需要从 Start 菜单启动这些应用程序(请参见图 1):

图 1
图 1
图 1

当 Domino 服务器开始运行时,您将看到 Domino 服务器控制台,如图 2 所示:

图 2
图 2
图 2

开始之前,您需要启动两项任务:HTTP 任务和 Domino Enterprise Connection Services(DECS)任务。这些任务等同于 NT 服务。要启动 HTTP 任务和 DECS 任务,需要在 Domino 服务器控制台中输入下列语句:

Load http

一旦在控制台中看到消息“HTTP Server: Started”,您就知道已经加载了 HTTP 服务器。现在,请继续启动 DECS 任务。

Load decs

为了确保启动了这些任务,需要在 Domino 服务器控制台上输入下列命令。其输出应类似于图 3 所示。

Show task

图 3
图 3
图 3

创建链接以允许 Domino 服务器访问 DB2 数据库

设计应用程序之前,您需要将数据库信息提供给 Domino,特别是提供给 DECS 任务,以便让它知道如何连接 DB2 数据库。需要在 DECS Administrator Notes 数据库中输入该信息。要打开数据库,请按照下列步骤进行:

  • 从 Start 菜单中启动 Lotus Notes 客户机。
  • 在 Lotus Notes 客户机中,单击 File->Database->Open
  • 输入 Domino 服务器名称(例如 Longfy/acme),选择 DECS Administrator(decsadmin.nsf)数据库并单击 Open。请参见图 4。
图 4
图 4
图 4

一旦打开了 DECS Administrator 数据库,您将看到下列屏幕(图 5):

图 5
图 5
图 5

为了创建到 DB2 数据库的链接,请单击左方导航器面板中的 Connections,然后单击 Add Connection按钮,如图 6 所示。

图 6
图 6
图 6

选择 Connection to DB2,然后单击 OK。这将显示 Connection to DB2文档。输入图 7 中所示的值:

图 7
图 7
图 7

您可以在 Table Selection 部分中通过单击箭头旁边的 Name 来选择 COMPANY表。这将显示一个对话框(图 8),其中展示了 COMPDB数据库中的所有表:

图 8
图 8
图 8

如果您无法这样做,那么就请访问 设置先决条件小节来创新创建该表。此外,要确保已经加载了 DECS 任务,关于如何完成这项任务,请参阅 启动 Domino 服务器小节

现在,您可以单击 Save and Close以保存该连接文档。到目前为止,您已经创建了 Domino 服务器与 COMPDB DB2数据库中 COMPANY表之间的链接。

使用 Domino Designer 创建 Domino 应用程序

让我们仔细查看一下 Domino Designer 中使用的几个术语。在 Notes/Domino 领域中,应用程序存储在带有 .NSF 文件扩展名的文件中。大多数 Domino 应用程序开发人员称 NSF 文件为数据库。例如,您拥有 Mail 数据库或 Claims 数据库。然而,这里的术语数据库与 DB2 领域中使用的不同。Notes 数据库不是关系数据库,因为数据项之间不存在预定义的关系。在 Notes 中,信息存储在字段中,而且这些字段被组合在一起,组合这些字段的形式非常类似于存储 DB2 数据库的表中的关系字段的形式。与 DB2 一样,Notes 视图中也包含视图,而且 Notes 视图的功能就是显示信息。Notes 数据库可以包含许多表单,而且每个表单都有自己存储信息的字段。可以在视图中显示信息。在“DB2-speak”中,将使用表单来向 Notes 应用程序插入数据,并使用视图来显示该数据。

要创建 Company Profile 应用程序(或 NSF 文件),需要从 Start 菜单启动 Domino Designer。在 Domino Designer 中,单击 File->Database->New来创建一个新数据库,如图 9 所示。

图 9
图 9
图 9

New Database对话框中,输入将驻留该数据库的服务器的名称。同时还要输入数据库名称和文件名。本例中,Domino 服务器称作 LongFY/acme,应用程序的名称是 Company Profile,而文件名则是 Company.nsf。请参见图 10。您将创建一个空数据库,因此,将使用 -Blank-模板。单击 OK。现在,将在 Domino 服务器中创建一个数据库。

图 10
图 10
图 10

一旦创建了数据库,就可以看到 Domino Designer 界面,如图 11 所示。

图 11
图 11
图 11

左边的面板列出了新打开的数据库。而且还列出了所有 Notes 数据库的设计元素,例如表单和视图。右边的面板显示了所有设计元素的名称。目前,您还未创建任何表单,因此,右边面板是空的。

现在,通过单击 New Form按钮来创建一个新的表单。这就创建了一个空表单,您可以看到一个名为 Untitled (Form)的新区域。开发人员可以在该区域中输入编程代码。请参见图 12。

图 12
图 12
图 12

您可以在该表单中输入一些文本。图 13 展示了一个实例。

图 13
图 13
图 13

现在,您将创建一个字段。将光标置于 "Company no:"行的结尾,并从 Create菜单中选择 Field

图 14
图 14
图 14

正如您可以看到的(图 14),已创建了一个字段。该字段的名称为 Untitled。此外,还将显示一个新的对话框窗口。该窗口称作 属性框,展示了新 Untitled 字段的所有属性。 您可以通过在 属性框中输入 CompanyNumber 来为该字段提供一个名称。对其他字段也是如此。现在,您的表单应如图 15 所示。

图 15
图 15
图 15

通过单击 File 菜单中的 Save来保存该表单。当提示需要一个表单名称时,就将之保存为 CompanyForm。

最后,您需要为视图提供一个名称。当 Domino Designer 创建一个 NSF 数据库时,也创建了一个视图。不过,在默认情况下,该视图是没有名称的。您需要为其提供一个名称。为此,请单击左边面板上的 View。您将看到下列屏幕(图 16):

图 16
Figure 16
Figure 16

双击(未命名的) view,打开该视图的设计(图 17):

图 17
图 17
图 17

在属性框中输入“Company View”作为视图名称,如图 17 所示。单击 File ->Save来保存该视图。

到目前为止,您已经创建了一个名为 Company.nsf的新 Domino 应用程序,创建了名为 CompanyForm的表单,并在该表单中创建了保存数据的字段。您还为默认情况下没有名称的视图提供了一个名称。接下来,要将您创建的字段映射到 DB2 数据库中的字段。

将 Domino Designer 中的字段映射到 DB2 中的列

为了让 Domino 应用程序检索并更新 DB2 中的信息,必须将您创建的那些字段映射到 DB2 表中相应的列。可以通过 DECS Administrator 数据库来完成这项操作。不知您是否还记得,就是在该数据库中,您创建了到 DB2 的链接。如下图所示(图 18)。

图 18
图 18
图 18

在左边的导航器中单击 Activities,并选择 Add Activity。您将看到 Virtual Fields Activity表单,如图 19 所示。在该表单中,我们可以告诉 Domino 哪个字段是关键字段,以及如何将该字段映射到 DB2 键列。您还将告诉 Domino 哪些字段是非关键字段,以及它们所映射的 DB2 列。

图 19
图 19
图 19

正如在图 19 中可以看到的,您需要配置 5 个项。它们是表单中的第一到第五项。首先,您需要为 Activity 提供一个名称,可以将之称作 Company DB Field Mapping。该名称将被输入到 Identification部分的 Name: 字段中。 对于第一项,您需要单击箭头旁边的 Domino Application部分,而且为想要指定字段映射的文件选择 Domino 应用程序,本例中,它就是 Company.nsf 文件。您还需要输入特定的表单名称,本例中,它是 CompanyForm。 其次,您需要选择用来链接 DB2 的 Lotus Connection文档。该连接文档就是前面我们创建的文档。现在,您的 Virtual Fields Activity表单应该与图 20 中所示的表单类似。

图 20
图 20
图 20

现在,应该可以将这些字段映射到 DB2 列了。这项操作是通过单击箭头旁边的 Mapping部分来完成的。屏幕上出现如图 21 中所示的对话框。

图 21
图 21
图 21

在(图 21 的)Box 1 中,您需要选择 Company.nsf 应用程序中的关键字段,并将之映射到 DB2 中的键列。本例中,您复选了 CompanyNumber 字段(Box 1)和 CompNo 列(Box 2)。然后,需要查询非键字段以映射其他 DB2 列。为此,您必须复选 Box 3 中的字段名以映射 Box 4 中的列。您必须对需要映射的每个字段都实现这项操作。在本教程的环境中,您要映射所有字段。Box 5 以及 Box 6 中的相应列将为您显示为了验证而映射的字段和列。一旦完成这项工作,就需要确认映射,然后单击 OK。现在,您将返回到 Virtual Field Activity表单。您已经配置了该表单中可进行配置的三项,还剩下两项。

您需要定义的第四项属于 Events 部分。在这一部分中,您需要选择 Domino 应用程序执行哪些事件时要与 DB2 数据库同步。这些事件是 —— Create、Open、Update 和 Delete。这意味着 Domino 应用程序在下列情况时将同步化信息:

  • 创建新的 Company 表单 —— 这将向数据库执行 DB2 插入(Insert)。
  • 打开现有的文档,如果修改了 DB2 中的信息,就需要刷新该数据 —— 主要用 DB2 查询(Select)来刷新数据。
  • 更新客户信息,例如修改了客户的记账地址 —— 这将对数据库执行 DB2 更新(Update)。
  • 删除文档 —— 将删除相应的 DB2 记录。

最后,在第五项中,您需要确定该活动是否由 Domino 自动启动。现在,您已经完成了应用程序中所有字段的映射,因此,您可以选择 Save and Close了。

从 DB2 导入键字段

一旦填写了这个 Virtual Field Activity文档,就可以看到 DECS Administrator 数据库中的活动(图 22)。

图 22
图 22
图 22

再次打开活动文档,并单击 Initialize Key按钮。该按钮会将所有记录从 COMPDB数据导入 Domino 应用程序中。只需执行该操作一次就能完成所有导入。您将看到下面的提示(图 23):

图 23
图 23
图 23

一旦单击了 Yes,就会从 COMPDB数据库导入所有的键字段(图 24)。

图 24
图 24
图 24

注意:Notes/Domino 只会导入关键字段 COMPNO,并将之保存到 NSF 文件中。不会从 DB2 复制其他字段,如 ADDRESS、COMPNAME、CONTACTNME 和 PHONENO。其原因在于,Domino 将实时地从 DB2 同步化其他这些字段。这就是为何要创建一个 Real Time Activity 文档的原因 —— 以便能够实时地在 DB2 中查询和更新数据。其他数据都存储在 DB2 数据库中,而非 Company.nsf中。

启动实时活动以同步数据

为了使字段实时地从 ADDRESS、COMPNAME、CONTACTNME 和 PHONENO获得数据,必须确保该活动处于启动状态。应该自动启动该活动,您可以通过查看 External Source列后面的图标来验证其状态。该图标看上去像一个广播通信塔,如图 25 所示。

图 25
图 25
图 25

如果该活动尚未启动,请高亮显示该活动,并单击 Start按钮。另外,请确保 DECS 任务正在 Domino 服务器上运行,或者该活动不会启动。关于如何启动 DECS 任务,请参阅 启动 Domino 服务器小节。现在,您可以进入 Company 应用程序,以确保已经导入那三条记录。这可以通过从 Lotus Notes 客户机双击 Company Profile 应用程序来完成(图 26)。

图 26
图 26
图 26

这将打开 Company Profile 应用程序。如图 27 所示,DB2 中的三条记录已经导入该应用程序中。

图 27
图 27
图 27

通过双击“1”打开第 1 个文档。这将显示第 1 条记录,这是一家由 Mickey Mouse 掌控的公司(图 28)。

图 28
图 28
图 28

双击文档中的任何一处以进入 Edit模式。您需要修改该文档中的一些数据。当处于 Edit 模式时,您可以看到文档字段都是可以编辑的。请参见图 29。

图 29
图 29
图 29

将 Contact Person 的名称从 Mickey Mouse 修改为 Mickey M. Mouse。您可以通过单击 File->Save保存文档。保存完文档之后,请按下 ESC 关闭该文档。 实质上,您对该记录执行了一次 DB2 Update。为了验证更新成功,需要启动 DB2 命令行窗口,并发出 SELECT 语句。如图 30 所示,Company no 0001 的 Contact Person 列已经被更新。

图 30
图 30
图 30

为了向 COMPDB数据库插入一条记录,您需要在 Lotus Notes 中创建一个新的公司文档。为此,请单击 Company Profile 应用程序 Create菜单中的 CompanyForm(查看图 27 可以找到 Create 菜单)。这将打开一个空的 Company Profile文档。按照图 31 所示填写新的公司信息。

图 31
图 31
图 31

通过单击 File–>Save,并按下 ESC 来关闭它。 现在,您将在 Company Profile 应用程序中看到一条新的记录(图 32)。

图 32
图 32
图 32

验证该记录是否已插入 DB2。请参见图 33。

图 33
图 33
图 33

到目前为止,您已经创建了一个连接文档,告诉 Domino 服务器如何连接 DB2,并使用 Domino Designer 开发了一个 Company Profile 示例应用程序,而且还创建了一个 Activity 文档,您在其中设计了 Domino 中的关键字段,并将 Notes 字段映射到 DB2 中的列。然后,您将数据从 DB2 导入应用程序中,通过修改记录中的信息来操作这些数据,并确保对 DB2 中的同一信息也进行了修改。您还向 DB2 插入了一条新记录。为了删除记录,需要高亮显示 Notes 中的文档,并按下键盘上的 Delete键。该记录将被标以 X 的标记(图 34)。

图 34
图 34
图 34

按下 F9 刷新应用程序,将从 Notes 应用程序和 DB2 中删除该文档。同样,可以通过在 DB2 命令行窗口中发出 SELECT 语句来对此进行验证。

增强该应用程序

您可以通过创建动作按钮,允许用户创建新的公司文档(而非使用 Create菜单),从而增强该 Company Profile 应用程序。您还可以创建一个按钮来保存文档并自动退出,以代替使用 File->Save菜单选项,然后按下 ESC退出文档。此外,您可以用不同的字体和颜色来设计表单,以获得更好的外观。所有这些本文都没有进行介绍。不过,您可以通过参阅 Domino Designer Help 数据库中的大量信息,找到如何完成以上工作。通过按下 F1,可以在 Domino Designer 中启动该数据库。

将应用程序发布给 Lotus Notes 用户

为了让其他人能够使用该应用程序,您需要按照下列步骤进行:

  • 右击 Company 应用程序的图标,该图标如图 26 中所示。
  • 选择 context 菜单中的 Database Copy ->Link
  • 使用热键 Ctrl+V将链接粘贴到新备忘录(memo)主体上。
  • 将 email 发送给用户。一旦收到邮件,所有的用户只需要双击邮件附带的链接,就可以打开应用程序,而且可以在以后继续使用它。

使用 Web 浏览器访问该应用程序

打开 Web 浏览器,并输入下列格式的 URL。 URL http://server/Company.nsf 例如,http://longfy.dts.com/Company.nsf 输入您的 Notes 用户 ID 和口令,您将看到类似于图 35 所示的页面。

图 35
图 35
图 35

单击 Company View链接,然后单击某一文档(图 36 和 37),您可以看到 Internet 浏览器中所示的 DB2 数据。

图 36
图 36
图 36
图 37
图 37
图 37

注意:作为应用程序开发人员,您可以进一步定制 Company Profile 应用程序,以便用户能够通过 Internet 浏览器编辑和更新数据。文本没有对此进行介绍。有关的更多信息,请参阅 Domino Designer help 数据库。

结束语

您已经看到了 Lotus Notes 的简要介绍,并了解了集成 Notes 和 DB2 为何有益于开发人员和用户。而且还仔细查看了关于如何快速开发 Notes 应用程序,以访问并操作 DB2 数据库中存储的数据库的步骤,以及如何用 Web 浏览器访问该应用程序的步骤。希望这个简单的实例能够正确引导您,使您可以开发 Notes 应用程序,从而帮助用户组共享并操作 DB2 数据。


相关主题

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=20205
ArticleTitle=使用 Domino Designer 创建 Lotus Notes 应用程序来访问 DB2
publish-date=10012004