使用 Oracle Metadata Services 构建可定制应用程
序
用实例介绍针对个性化和定制的 Oracle ADF 服务
作者:John Stegeman
2010 年 5 月发布 下载:
? ? ? Oracle JDeveloper Studio 版 示例应用程序(需要安装 HR 模式) Oracle Database XE(如果需要)
如今,应用程序用户希望他们经常使用的应用程序能够记住他们喜欢的工作方式,从而无需每次登录时都重新设置应用程序。例如,用户希望他们常用的搜索和屏幕布局日复一日地保持不变,以便他们更加轻松直观地使用应用程序。利用 Oracle Metadata Services 提供的基础,Oracle Application Development Framework (ADF) 应用程序可以提供这样的持久个性化。本文介绍如何配置您的 Oracle ADF 应用程序以允许最终用户进行定制。
桌面应用程序用户习惯于能够设置并保存他们的个人应用程序首选项。例如,Oracle JDeveloper 11 g 用户可以重排应用程序窗口并设置其他首选项,并且认为当他们退出 Oracle JDeveloper 11 g 并在第二天返回时,他们的首选布局和其他选项不会发生变化,和退出之前一样。通过以这种方式保存个人首选项,用户能够以所需的工作方式来定制应用程序,从而提高工作效率。如今,许多应用程序是通过 Web 浏览器提供的,将有越来越多的用户希望能够对基于 Web 的应用程序进行同样的定制。在新的应用程序中建立这样的可定制性可能需要花费大量开发时间;开发人员需要构建一个框架将个性化设置保存到一个数据存储中并在运行时对特定用户应用这些个性化设置。对于复杂的企业应用程序(如 Oracle E-Business Suite),为构建这样的框架而付出努力很可能是值得的;但对于较小的应用程序,这种努力常常是不值得的。 幸运的是,对于使用 Oracle ADF 的开发人员来说,Oracle 已为个性化和定制创建了服务并且已在 Oracle ADF 中集成了这些服务,这些服务称为 Oracle Metadata Services (MDS)。Oracle E-Business Suite 版本 11i 和 12 使用了 Oracle MDS 的前身以允许用户对自己的自助服务应用程序进行个性化设置,并允许应用程序管理员针对特定用户群定制应用程序的各个方面。在 Oracle JDeveloper 11 g 中,开发人员可以利用这些功能为 Oracle ADF Web 应用程序提供同样的功能。
本文撰写时使用的是 Oracle JDeveloper 11 g (11.1.1.2)。如果您使用所提供的示例应用程序,您将需要更改 Application Navigator 中 Application Resources 面板中定义的 HR 连接的连接信息。另请注意,要运行示例应用程序,您应遵循本文所述任何所需配置步骤。
一、 Metadata Services 概念
Oracle MDS 将定制和个性化信息存储在一个信息库中。该信息库可以存储在数据库中,也可以存储在基于文件的存储中;由于可伸缩性和可靠性以及其他方面的原因,我强烈建议使用数据库存储 MDS 信息库(本系列的下一篇文章将介绍如何配置该信息库)。对于开发/测试/调试周期,与 Oracle JDeveloper 11 g 集成的 Oracle WebLogic Server 提供了一个本地 MDS 信息库,这样您就不需要为进行开发而单独建立一个信息库了。
这个 MDS 信息库可以存储各种类型的定制数据及其他元数据,包括:
? 用户在运行时更改过的 Oracle ADF Faces 组件的特定属性(例如,表中各列的顺序)
? ?
用户保存的搜索条目(用af:query组件创建的)
在设计时针对包括 Oracle ADF Faces、Oracle ADF 业务组件和 Oracle ADF 控制器(页面流)在内的各种 Oracle ADF 内容开发的自定义设置
? ? ?
对资源包的定制
其他 Oracle 产品(如 Oracle B2B)的元数据 Oracle WebCenter应用程序的元数据
本文将介绍如何配置 Oracle ADF 应用程序以允许最终用户在运行时进行定制,以及如何在开发环境下运行和测试可定制应用程序。本系列中的下一篇文章将介绍如何创建设计时定制,以及如何配置基于数据库的 MDS 信息库。
二、 最终用户定制需求
为了让一个 Oracle ADF Faces 应用程序允许最终用户在运行时定制应用程序,您须执行以下几个步骤:
? ?
配置 Oracle JDeveloper 11 g 项目以允许最终用户定制。
配置默认的自定义类。Oracle JDeveloper 11 g 文档未明确是否需要执行此步骤;但在实际中,我发现如果省略了此步骤则更改不会持久,并且我还在日志中观察到如下错误:
图 1 如果未指定自定义类,日志中会出现警告
? ? ?
针对要启用定制的 Oracle ADF Faces 组件配置 Oracle ADF 应用程序描述文件。
为了在af:query组件中保存用户查询,要配置一个元数据命名空间(如 Oracle JDeveloper 11 g 版本说明中所述 — 如果您使用的是 Oracle JDeveloper 11 g 11.1.1.3 版,则不必如此)。
为了进行部署,您必须创建并注册一个 Oracle MDS 信息库(随后的一篇文章将描述这一步骤)。 另外,您的应用程序还必须符合以下要求:
? 您的 Oracle ADF Faces 页面必须以 XML 格式 (.jspx) 保存,并且必须为页面中的每个用户可定制组件指定一个 ID。之所以有这些要求,是因为 Oracle MDS 记录用户所进行的定制时使用的方式。
? 您的应用程序必须启用安全性。这一要求是为了让 Oracle MDS 有一个身份,凭借这个身份来保存用户定制。
实际上,您首次创建 Oracle ADF 应用程序时,执行所有要求的步骤是最容易的,因为 Oracle JDeveloper 11 g 会替您配置一些设置项(如自动以 XML 格式创建您的 Oracle ADF Faces 页面)。
1. 第 1 步:创建示例应用程序模型层
为了演示如何配置和测试最终用户定制,我将使用一个简单的应用程序。为了开发和运行该示例应用程序,您需要访问一个安装了 HR 示例模式的 Oracle 数据库。(您可以从这里下载 Oracle Database 快捷版 (XE),这是 Oracle Database 的一个免费版本。)首先,您将创建该应用程序并创建一些默认的 Oracle ADF 业务组件。然后,在您创建任何 Oracle ADF Faces 页面之前,您将配置该应用程序使其支持定制。最后,您将创建和测试一些可定制的页面。您可以执行下面总结的步骤来创建该应用程序,也可以下载示例应用程序。如果您愿意亲自创建该应用程序,请执行下面的步骤(我相信您已具备 Oracle JDeveloper 11 g 的一些基本经验,因此这里提供的是简要的步骤):
1. 创建一个新的 Fusion Web Application (ADF),具体做法是从 Oracle JDeveloper 11 g 的
File 菜单中选择 New,然后从 New Gallery 中选择相应的选项:
图 2 创建一个新的 Fusion Web Application
为该应用程序指定一个名称并接受所有默认设置,完成该应用程序的创建。
2. 右键单击 Model 项目,然后选择 New,这将启动 Business Components from Tables 向导。创建一个
到 HR 示例模式的数据库连接并创建以下 Oracle ADF 业务组件: a. EMPLOYEES 表的一个实体对象
b. 一个基于 EMPLOYEES 实体对象的可更新的视图对象 c. 没有只读视图对象(在向导的这一步只需单击 Next)
d. 一个默认的应用程序模块(一旦到达向导这一步,您就可以单击 Finish 了)
如果您愿意,可以通过右键单击该应用程序模块并选择 Run 来测试您创建的 Oracle ADF 业务组件。您应该能够双击 EmployeesView1 视图对象实例并滚动浏览数据库中的员工。
2. 第 2 步:配置应用程序使其支持用户定制
如本文前面所述,理想情况下,您应在开始创建任何 Oracle ADF Faces 页面之前配置应用程序以使其支持最终用户定制。要配置该应用程序,执行以下步骤:
1. 在 Application Navigator 中双击ViewController项目以显示项目属性。选择 ADF View 节点,通过选择对
应的选项在会话上启用用户定制,然后单击 OK:
图 3 在ViewController项目中启用用户定制
2. 使用 Application Navigator,展开 Application Resources 部分,双击 adf-config.xml 文件(该文件位
于 Descriptors 文件夹的 ADF META-INF 子文件夹下):
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新IT计算机使用 Oracle Metadata Services 构建可定制应用程序 全文阅读和word下载服务。
相关推荐: