Oracle 技术网

将 Oracle Forms 应用程序转换为 Oracle Application Express 3.2

 

<不要删除此文本,因为它是在浏览器中运行时生成的“主要”标题列表的占位符>

目的

本教程将向您介绍如何将 Oracle Forms 应用程序(包括菜单和报表)转换为 Oracle Application Express 3.2。

所需时间

大约 60 分钟

概述

Oracle Application Express 3.2 中提供了一个新的实用程序,用于将 Oracle 表单、菜单、报表、PL/SQL 库和对象库转换为 Oracle Application Express 应用程序。下图概述了 Oracle Forms 应用程序的转换过程:

为了转换您的 Oracle Forms 应用程序,需要执行以下步骤:

.

将 Oracle Forms 转换为 XML:运行 Forms 到 XML 的转换工具 Forms2XML,转换应用程序中的 Forms FormModule。此外,该工具还将转换 OLB(对象库)和 MMB(菜单)。这将创建 XML 输出文件。

. 将 PLL 转换为 PLD 文本:在 Forms Builder 中运行转换实用程序,将 PLL 转换为 PLD 文本格式。
. 将报表转换为 XML:在 Reports Builder 中运行转换实用程序,将报表转换为 XML 格式。
. 创建 Oracle Application Express 工作区: 运行 Oracle Application Express 并创建一个工作区。将该工作区与 Oracle Forms 应用程序模式相关联。
. 创建转换项目: 登录到第 2 步中创建的工作区,并从 Migrations Tasks 区域转到 Application Migrations 区域。创建一个转换项目并加载第 1 步生成的应用程序元数据。
. 分析 Oracle Forms 应用程序: 在 Application Migration Workshop 中验证并调整 Forms 应用程序元数据。细化转换范围。
. 生成 Oracle Application Express 应用程序: 基于选定的 Forms 对象创建应用程序。

.

自定义 Oracle Application Express 应用程序: 在 Application Express 的 Application Builder 部分中打开应用程序,对已转换的应用程序进行自定义。可以修改应用程序属性或向应用程序添加新页面。

前提条件

开始本教程之前,您应该:

创建文件并将其上载到转换项目中

在本部分中,您创建并更新转换项目。执行以下步骤:

.

输入以下 URL,登录到 Oracle Application Express。

http://<主机名>:8080/apex

 

.

要登录 Oracle Application Express,请输入以下详细信息,然后单击 Login

Workspace:<您的工作区名称>
Username:<您的用户名>
Password:<您的口令>

 

.

在工作区 Home 页面的 Migrations 区域下面,单击 Application Migrations

 

.

单击 Create Project

 

.

为您的项目输入一个名称。您将要从 Oracle Forms 转换一个应用程序。默认类型为 FORMS。注意,如果您想转换 Microsoft Access 应用程序,请选择另一个类型 Access。您需要已经加载了(在“前提条件”部分)FORMS 模式,单击 Browse... 查找 Forms 模块 XML 文件。

 

.

apex 目录中选择 customers_fmb.xml,然后单击 Open

 

.

单击 Next。确保您创建表单数据库对象和加载数据的模式存在。

 

.

customers_fmb.xml 文件上载成功。还需要再上载几个文件。单击 Upload Another File

 

.

确保为 File Type 选择了 Forms Module (_fmb.XML),然后单击 Browse...

 

.

apex 目录中选择 orders_fmb.xml,然后单击 Open

 

.

单击 Upload

 

.

orders_fmb.xml 文件上载成功。需要再上载一个文件。单击 Upload Another File

 

.

确保为 File Type 选择了 PL/SQL Library (.PLD),然后单击 Browse...

 

.

apex 目录中选择 wizard.pld,然后单击 Open

单击 Upload

 

.

wizard.pld 文件上载成功。现在您可以开始创建项目了,单击 Finish

 

.

已经上载了所有文件。尽管该项目页面中显示了所有文件,但只有交互式报表的大部分列与 _fmb.xml 文件有关。例如,除 _fmb.xml 文件外,所有其他文件 Blocks、DB Blocks 列的值将始终为 0。在本教程的稍后部分中,您将看到多个文件的部分对象。

注意该报表中每行的最后一列 Percent Complete。这个百分比由两个因素决定:适用性和完成状态。如果某项的 Applicable 设置为 Yes,则该项适用于该转换过程,并且还要对项目转换的完成状态进行评价。如果 Applicable 设置为 No,则该项不适用于该转换过程。如果 Complete 设置为 Yes,则该项的 Percent Complete 为 100%。如果 Applicable 设置为 Yes,而 Complete 设置为 No,则该项就会关系到 Percent Complete。

 

编辑您的转换项目

您可能希望为您的转换项目设置某些默认值。执行以下步骤:

.

Tasks 区域下,选择 Edit Project Details and Applicability

 

.

在 Project Details 页面,您可以更改与该项目关联的模式,还可以关联已经生成的其他 APEX 应用程序 (ID)。可使用弹出的 LOV 进行此修改。在 Component Applicability 区域,您可以决定某个特殊类别是否与用户的转换过程有关。在本例中,您不希望将 Alerts 适用于这一转换项目。因此,为 Alerts 选择 No


.

单击 Trigger Applicability 选项卡。如果您处于 Show All 模式,则向下滚动到 Trigger Applicability 部分。

 

.

这部分类似于 Component Applicability 部分,只不过是专门针对触发器的。根据触发器的名称以及它在 Oracle Forms 实现的位置,下表将确定在转换项目中为该触发器指定的适用性。单击 Apply Changes

 

.

注意,因为您已经将 Alerts 改为不适用,则 Percent Complete 值也有所改变。现在,该值变大了,因为相关的对象少了。选择 customers_fmb.xml 文件的 Alerts 数字链接。

 

.

您会注意到,两个警报的 Applicable 均设为 No。单击 Project:<项目名称> 路径式导航栏。例如,本例中为 Project:Forms Conversion OBE

在下一部分中,您将查看创建应用程序时生成的对象。

 

查看和分析项目中的对象

在本部分中,您将查看和分析之前上载的对象。执行以下步骤:

.

在 Migration Project 页面,您可以单击每个文件查看之前上载的对象。首先将查看 Forms 对象。单击 customers_fmb.xml 文件链接。

 

.

选择要查看的组件。在本例中,您要查看块。选择 Blocks 链接。

 

.

随即显示 customers_fmb.xml 文件的块列表。在该页中,您可以选择要包括的块或不包括的块。注意,不要选择导航控制块,因为它们没有 Data Source Name,所以创建 Application Express 应用程序时将无法生成这些块。您还可以修改块生成时所使用的标题。在 S_CUSTOMER1 的 Title 域中输入 Customer Details,在 S_CUSTOMER 的 Title 域中输入 Maintain Customer,然后单击 Apply Changes

 

.

您要查看/编辑该块的信息。单击 S_CUSTOMER1 块的 Name 链接。

 

.

在该页面右侧的 Block Status 区域中,您会看到,创建 Application Express 应用程序时该块将转换为 Report and Form。注意,在该页面的 Block Tasks 下面,您可以为该块的项目和触发器设置适用性和完成状态。另外,您还可以单击列表中的一个块名转到另一个块。

 

.

在窗口的左侧,您可以查看该块的各种信息。您可以定义具体的批注,如 Applicable、Priority、Complete,以及将该块分配给开发团队中特定的某个人,以便在该块生成后人工对其进行更详细地检查或进一步的实现。另外,许多块的 Notes 部分已经自动填充了 Incorporating Enhanced Query,用于指示已经对 POST_QUERY 触发器进行了询问,并且已经将它列为生成应用程序时将使用的查询。单击 Application Express Page Query。如果您处于 Show All 模式,则向下滚动到 Application Express Page Query 部分。

 

.

一旦该块转换为 Application Express 应用程序中的一个 Report and Form 后,就已经在查询中添加一个查询后触发器逻辑而使该查询得以增强。您可以修改该查询,使其仍使用基于与该块关联的数据库源项目的原始查询。

 

.

因为您没有进行任何修改,所以单击 Blocks 路径式导航栏。注:如果您未进行任何修改而单击了 Apply Changes,通常会存在问题。

 

.

您也可以自定义查询,指定一个在生成最新块时使用的自定义查询。选择 S_CUSTOMER 链接。

 

.

为 Use Query 选择 Custom Query,然后将 SELECT 语句中的下列内容复制到 Custom Query 区域。然后单击 Apply Changes

select  
"S_CUSTOMER"."ID",
"S_CUSTOMER"."NAME",
"S_CUSTOMER"."PHONE",
"S_CUSTOMER"."ADDRESS",
"S_CUSTOMER"."CITY",
"S_CUSTOMER"."STATE",
"S_CUSTOMER"."COUNTRY",
"S_CUSTOMER"."ZIP_CODE",
"S_CUSTOMER"."CREDIT_RATING",
"S_CUSTOMER"."SALES_REP_ID",
"S_CUSTOMER"."REGION_ID",
"S_CUSTOMER"."COMMENTS",
"S_EMP"."FIRST_NAME"||' '||"LAST_NAME" "SALES_REP_NAME"
from "S_CUSTOMER" "S_CUSTOMER",
"S_EMP" "S_EMP"
where "S_EMP".ID (+) = "S_CUSTOMER".SALES_REP_ID

上边的 SQL 语句将该增强查询更改为正则联接表达式而不是内部选择。

 

.

您可以查看各项,也可以排除某个非数据库项,以便创建应用程序时不包括该项。选择 S_CUSTOMER 的 Item Count 的数字链接。

 

.

取消选择 SALES_REP_NAME 的包括/排除复选框,将 Phone 和 Name 的 Item Prompt 分别修改为 Telephone No.Customer Name。单击 Apply Changes

 

.

单击您的 Project 路径式导航栏返回项目的主文件列表。

 

.

在 Triggers 列下面,选择 orders_fmb.xml 文件对应的数字链接。

 

.

选择 Trigger Name 标题,在列表中向下滚动选择 WHEN-VALIDATE-RECORD

 

.

单击 WHEN-VALIDATE-RECORD 行前面的 Edit 图标。

 

.

注意,该验证将实施检查以确保订购日期早于发货日期。即使不能生成验证,您仍可以对验证进行批注来指定生成应用程序后需要完成的任务以及由谁来完成这些任务。

Applicable 是指该组件是重要 (Yes) 还是可以忽略 (No)。在本例中,该触发器非常重要,因此应将 Applicable 保持为 Yes

Complete 指示是否已经将该组件实现为 Application Express 应用程序。在本例中,您指定了生成后需要进行的工作。因此,只有在开发人员实现了该验证后才能将 Complete 设置为 yes。这里,应将 Complete 保持为 No

为 Assignee 选择一个不同的用户,并向该 Assignee 添加一条 Note,说明为何指定他/她负责该对象的工作。

您还可以设置标记,通过该标记您可以搜索到带有该标记的全部对象。这里,您将为该触发器分配一个标记,以便在应用程序生成并将该触发器实现为 Application Express 中的一个验证后,您可以将该触发器更新为完成。在 Tags 域中输入 VALIDATION,然后单击 Apply Changes

 

.

修改已经处理完成。单击 Project 路径式导航栏。

 

.

您要查看 orders_fmb.xml 文件中的各块。选择 orders_fmb.xml 的 Blocks 列的数字链接。

 

.

选择 S_ORD 块链接。

 

.

您会在 Block Status 区域中注意到该块将转换为一个 Master Detail 表单。

 

.

对于主从转换,在 Block Details 页面中看不到“Application Express Page Query”区域,因为两个表是传入的,而不是查询的。选择 Blocks 路径式导航栏。

 

.

选择 S_ORD 块的 Item Count 中的数字链接。

 

.

随即显示块项目列表。可以看到 Item type 列给出了原始的块项类型。生成一项时,Application Express 将尝试将该项类型转换为对等的 Application Express 的项类型。例如,Payment Type 列将生成为单选按钮组。单击 Project 路径式导航栏。

 

.

您还要查看 PL/SQL 库。选择 wizard.pld 文件链接。

 

.

单击 Annotations 选项卡。如果您处于 Show All 模式,则向下滚动到 Annotations 部分。

 

.

将 Priority 更改为 4,在 Notes 中输入 Implement buttons to replicate wizard functionality on Page 0,在 Tags 中输入 BUTTON, PAGE 0。然后单击 Apply Changes

在下一部分中,您将添加一些其他文件(菜单、报表和对象库),然后查看这些文件。

 

向项目中添加更多文件

在本部分中,您将向项目中添加一些其他文件,如 Forms 菜单、报表和对象库。执行以下步骤:

.

在项目页面中,单击 Upload File

 

.

为 File Type 选择 Forms Menu (_mmb.XML),针对 File 单击 Browse...

 

.

apex 目录中选择 customers_mmb.xml,然后单击 Open

 

.

单击 Upload and Upload Another

 

.

customers_mmb.xml 文件上载成功。您需要再上载几个文件。为 File Type 选择 Oracle Report (.XML),针对 File 单击 Browse...

 

.

apex 目录中选择 Employees.xml,然后单击 Open

 

.

单击 Upload and Upload Another

 

.

Employees.xml 文件上载成功。您需要再上载一个文件。为 File Type 选择 Object Library (_olb.XML),针对 File 单击 Browse...

 

.

apex 目录中选择 stndrd20_olb.xml,然后单击 Open

 

.

单击 Upload

 

.

选择 Employees.xml 链接。

 

.

显示该报表的详细信息。生成 Application Express 应用程序时,该报表将根据 SQL Query 转换为交互式报表。单击 SQL Query 选项卡。

 

.

显示用于创建该报表的 SQL 查询。单击 Project 路径式导航栏。

 

生成您的 Application Express 应用程序

在本部分中,您将根据转换项目生成应用程序。执行以下步骤:

.

生成应用程序之前,您可以设置应用程序的默认值。在 Migration Project 页面的 Tasks 菜单中,单击 Set Application Defaults

 

.

您可以设置创建应用程序时使用的 Tab、Authentication 和 Theme。选择 Theme 选项卡。

 

.

将 Theme 更改为 Theme 20,然后单击 Apply Changes

 

.

在 Project 窗口中,单击 Create Application

 

.

从迁移项目创建应用程序时有两个选项。第一个选项是基于迁移项目创建应用程序。第二个选项是基于现有应用程序的设计模型创建应用程序。如果您有几个应用程序,希望在不同的时间进行转换,从而实施分段迁移,第二个选项十分有用。在本例中,您希望根据第一个选项创建应用程序。为 Create Application 选择 Based on Migration Project,然后单击 Next

 

.

您会看到将要生成的页面列表。您可以在该向导页中添加、修改或删除页面。选择 Employees 页面名称链接。

 

.

您要更改针对该页面显示的图标。选择 Page Icon 旁的手电筒。

 

.

选择 biz_users_bx_128x128.png 图标。

 

.

新图标插入成功。单击 Apply Changes

 

.

单击 Next

 

.

您会注意到,因为在应用程序默认设置中已经设置了该主题,因此已经选择了 Theme 20。单击 Next

 

.

单击 Create

 

.

您的应用程序创建成功。单击 Run Application 图标。

 

检查您的 Application Express 应用程序

在本部分中,您将检查生成的应用程序。执行以下步骤:

.

输入您的用户名和口令,然后单击 Login

 

.

显示 Home 页面。默认模板是包含标签列表的水平排列的图像选择 Customer Details 图像。

 

.

显示一个交互式报表。可以通过单击某行起始处的任一 Edit 图标转到表单。在本例中,您希望选择 Home 路径式导航栏返回到菜单。

 

.

选择 Maintain Customer 图像。

 

.

显示交互式报表。该报表背后的查询来自自定义查询。您会注意到,Sales Rep Name 列显示了连接的客户的姓名。要更新该报表中的信息,单击任一记录前面的 Edit 图标。

 

.

显示一条记录。您会看到,Customer Name 项带有一个星号,因为该项是必填项,日期关联了一个日期选择器,Credit Rating 项是一个选择列表,而 Comments 使用了 HTML 编辑器。您会注意到,未看到 Sales Rep Name,因为在 S_CUSTOMER1 块中排除了这个块。要查看创建了哪些验证,单击开发人员工具栏中的 Edit Page

 

.

您会注意到,已经为 Name 创建了一个非空验证,并且 Sales Rep ID 和 Region ID 必须为数字。因为您不知道所有销售代表的 Sales Rep ID,并且在多个表单上都有这个域,因此您需要创建一个共享的 LOV 来显示销售代表列表,接着还需要在显示该 LOV 的 Maintain Customers 页面中创建一个选择列表。选择 Shared Components 图标。

 

.

在 User Interface 下面,选择 List of Values

 

.

单击 Create

 

.

单击 Next

 

.

在 Name 中输入 SALES_REPRESENTATIVES,为 Type 选择 Dynamic,然后单击 Next

 

.

在 Query 区域中输入以下 SELECT 语句,然后单击 Create List of Values

select distinct e.FIRST_NAME||' '||e.LAST_NAME display_value,
                e.ID return_value 
from S_EMP e, S_DEPT d
where e.DEPT_ID = d.ID and d.NAME = 'Sales'
order by 1

 

.

您的 LOV 创建成功。现在,您可以将它添加为您页面的项。单击 Edit Page 图标。

 

.

选择 Page Rendering 下面的 Items 图标转到 Items 区域。

 

.

选择 P5_SALES_REP_ID 项链接。

 

.

将 Label 更改为 Sales Representative,将 Display As 更改为 Select List,然后选择 LOV 选项卡。

从 Named LOV 列表中选择 SALES_REPRESENTATIVES,然后单击 Apply Changes

 

.

单击 Run

 

.

从 Sales Representative 列表中选择一个销售代表,然后单击 Apply Changes

 

.

更改已处理完成。单击 Home 路径式导航栏。

选择 Reports 图像。

 

.

选择 Employees 图像。

 

.

显示包含员工列表的交互式报表。从报表的任一行旁边选择 View 图标。

 

.

您会注意到,在此您只能查看详细信息,但不能进行修改。单击 Home 路径式导航栏。

 

.

您要查看为 S_ORD 块生成的主从表单。选择 S_ORD 图标。

 

.

显示包含订单列表的交互式报表。选择任一行前面的 Edit 图标来查看主从页面。

 

.

显示主/从页面。Payment Type 已经生成为一组单选按钮,而 Order Filled 生成为一个复选框。通过按下小于箭头和大于箭头,可以从一个订单转到挨着的另一个订单,显示的项将会相应改变。您要对该页面稍作修改。单击开发人员工具栏中的 Edit Page 链接。

 

.

您要进行的第一个修改是在 Forms Conversion OBE 迁移项目中创建一个要审核的验证。您希望创建一个验证来实施检查以确保发货日期晚于订购日期。在 Validations 下,单击 Create Validation 图标。

 

.

确保选中 Item Level Validatio,然后单击 Next

 

.

选择 P7_DATE_SHIPPED 项,然后单击 Next

 

.

选择 PL/SQL 并单击 Next

 

.

选择 PL/SQL Expression 并单击 Next

 

.

在 Validation Name 中输入 P7_DATE_SHIPPED less than P7_DATE_ORDERED,然后单击 Next

 

.

在 Validation 域中输入 :P7_DATE_ORDERED <= :P7_DATE_SHIPPED,在 Error Message 域中输入 Ship date is before order date!。然后单击 Next

 

.

为 When Button Pressed 选择 SAVE (Apply Changes),然后单击 Create

 

.

您的验证创建完成。您也可以使用之前在该页面上创建的名为 SALES_REPRESENTATIVE 的 LOV。在 Items 下,选择 P7_SALES_REP_ID

 

.

为 Named LOV 选择 SALES_REPRESENTATIVES,然后选择 Show All 选项卡。

 

.

在 Label 中输入 Sales Representative,为 Display As 选择 Select List,然后单击 Apply Changes

 

.

单击 Run

 

.

将 Date Shipped 修改为早于 Date Ordered 一天,然后单击 Apply Changes

 

.

您会注意到,由于您之前创建了该验证,将出现一个错误。还会看到 Sales Representative 现在已经是一个下拉列表了。单击开发人员工具栏中的 Home 链接。

现在,您可以按照您的特定需求更新生成的 Application Express 应用程序,或者修改迁移项目并生成新的 Application Express 应用程序。

在下一部分中,您将检查转换项目以及的应用程序创建后会有哪些改变。

 

 

检查生成后的转换项目

在本部分中,您将检查目前已经完成转换的转换项目。执行以下步骤:

.

在工作区 Home 页面的 Migrations 区域下面,单击 Application Migrations

 

.

从列表中选择您的转换项目。

 

.

在 Tasks 菜单中,选择 Generated Applications

 

.

从列表中选择您的应用程序。

 

.

显示 Application 页面,其中列出了生成的所有页面。单击 Home 路径式导航栏。

 

.

在工作区 Home 页面的 Migrations 区域下面,单击 Application Migrations

 

.

可将该转换项目的详细信息视为一个整体。单击转换项目前面的 Edit 图标。

 

.

在窗口的右侧,您可以查看项目的 Completion Status。

 

.

在窗口的左侧,您可以查看项目的详细信息。注意 Associated Application 域,通过在 Project Details 区域中单击 List of Values 图标可以修改该域的值。

现在,您已经在 Application Express 应用程序中将 WHEN-VALIDATE_RECORD 触发器作为一个验证实现了,因此您可以将该触发器的 Complete 域设为 Yes 了。单击 Application Migrations 路径式导航栏。

 

.

选择 Triggers 的数字链接。

 

.

显示该转换项目中的全部触发器。您之前已经将 WHEN-VALIDATE-RECORD 触发器标记了 VALIDATION 标记。因此,可以创建一个筛选器只显示 tags=VALIDATION 的触发器。从 Action 下拉列表中选择 Filter

 

.

从 Columns 列表中选择 Tags,在 Expression 域中输入 VALIDATION。然后单击 APPLY

 

.

您会注意到显示 WHEN-VALIDATE-RECORD 触发器显示。选择 Edit 图标。

 

.

将 Complete 更改为 Yes,然后单击 Apply Changes

 

.

转换项目中的该触发器更新成功。单击 Project 路径式导航栏。

 

.

注意,因为您已经生成了应用程序,因此,在 Project 页面,可以单击 Run Application 按钮运行生成的应用程序。

 

.

显示应用程序菜单。

 

总结

在本教程中,您学习了如何:

资源

Oracle Is The Information Company 关于 Oracle | Oracle RSS 信源 | 招聘 | 联系我们 | 网站地图 | 法律声明 | 使用条款 | 您的隐私权利