使用 Expert 自动执行 Warehouse Builder 任务

本教程将向您介绍如何使用 Expert 将 Oracle Warehouse Builder (OWB) 介绍给新用户。通过指导(新手)设计人员或开发人员,Expert 使得复杂系统的设计变得更简单并可重复。Expert 提供了一个极其强大的方法来构建任务序列,该序列中的部分步骤可以实现自动化。

注:本教程中的屏幕截图可能与您的略有不同,这取决于您完成本 OBE 系列中其他教程的顺序。您可以忽略屏幕上出现的无关项。

大约 1 个小时

注: 本教程及其设置脚本仅支持 OWB 11g 第 1 版。该 Oracle 示例教程的早期版本可用于 OWB 10g 第 1 版和第 2 版。

主题

本教程包括下列主题:

将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

概述

本教程首先介绍如何创建简单的 expert。然后学习如何创建嵌套式 expert。您还将学习如何在 OWB 用户界面 (UI) 上和 OWB UI 外执行 expert。您将创建一个高级的 expert 并对各种属性设置进行研究。

Expert 内的一个常见要求是错误处理程序 — 例如,在捕获到用户单击某个对话框中的“Cancel”按钮后,正常退出并显示一条消息。

返回主题列表

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

1.

完成搭建 Oracle Warehouse Builder 项目教程。

返回主题列表

创建简单的 Expert

创建 ERROR_HANDLER Expert
验证 Expert
执行 Expert

返回主题列表

创建 ERROR_HANDLER Expert

在本节中,您将创建错误处理程序 expert,它作为独立的程序执行,并将在本教程的其他各种 expert 中重用。

1.

假定您以 OWB 用户身份登录,在 Design Center 中展开 HANDSON 项目,单击 Experts 节点。

2.

现在,在 HANDSON 项目中创建一个私有 expert 模块。

右键单击 Experts 节点并从快捷菜单中选择 New

3.

在 Create Expert Module 对话框中,输入 expert_module(OWB 将自动转换为大写形式)作为名称。在 Description 域中输入 The EXPERT_MODULE expert module contains three experts, ERROR_HANDLER, NESTED_EXPERT and ADVANCED_EXPERT。确保选中了 Proceed to Expert Wizard 复选框。单击 OK

4.

在 Create Expert 对话框中,输入 error_handler(不区分大小写。OWB 将自动转换为大写形式)作为名称。在 Description 域中输入 An Expert to handle errors。单击 OK

此时 Expert Editor 启动。Expert Editor 画布默认情况下包含两个任务,START_TASK 和 END_TASK。

5.

在画布上添加一个自定义对话框任务。自定义对话框有助于获取用户的某些信息。您还可以使用此对话框向用户提供一些指导。

在 Expert Editor 窗口中,将一个 Custom Dialog 从 Palette(左下方面板)拖放到 Expert(画布)上。

6.

现在,连接这些任务以指定它们的执行顺序。

START_TASKCUSTOM_DIALOG_TASK 绘制一条转换线。(单击 START_TASK 的中心。按下鼠标左键,从 START_TASK 引出一条直线,止于 CUSTOM_DIALOG_TASK 的中心。松开鼠标左键)

CUSTOM_DIALOG_TASKEND_TASK 绘制一条转换线。您的画布必须如下所示:

7.

根据需要定制此自定义对话框任务。您需要指定要在自定义对话框中显示的标题和消息。

在画布上单击 CUSTOM_DIALOG_TASK 自定义对话框任务。

8.

单击 CUSTOM_DIALOG_TASK 任务后,单击 Task Editor 面板中的 Dialog Builder 选项卡页面。

9.

在 Dialog Builder 选项卡页面上,在 Title 域中输入 Error Handler 作为自定义对话框任务的标题。

记下 OK 和 Cancel 这两个按钮,它们出现在自定义对话框中。

10.

为了指定向用户显示的信息,创建一个标签。单击位于 Task Editor 面板右下角的 Add 按钮。

单击 Add 按钮,在 Task Editor 面板中为所选的自定义对话框任务添加一个新行。

11.

在 Task Editor 面板的 Content 域中,为新创建的行输入 Hello from the Handler

要提前预览此 expert 运行时该对话框的外观,单击 Show Preview 复选框。该对话框的预览显示在 Custom Dialog Preview 面板内。注: 有时,Custom Dialog Preview 面板可能出现在 Task Editor 面板的右侧。

12.

取消选中 Show Preview 复选框。

13.

在 Expert Editor 中,单击 Save All 工具栏图标保存您的工作。在 Warehouse Builder Warning 对话框中,单击 Yes

定时保存工作是一个好习惯。

返回主题

验证 Expert

验证 Expert 有助于确保不存在语法错误,并且您可以在执行前纠正任何错误。验证是一个可选步骤。

1.

在 Expert Editor 中,从 Expert 菜单中选择 Validate。确保没有错误。您可以忽略有关未指定目标和说明的警告。

2.

验证结果显示在 Compilation Results 面板中。您可以忽略这些警告。

在本示例中,您收到一个警告。您可以忽略任何有关未指定目标和说明的警告。

注:如果收到任何错误,纠正错误并重复第 1 步。

返回主题

执行 Expert

创建并验证一个没有错误的 expert 之后,您可以运行该 expert 了。现在,运行该 expert 以验证其是否能正常工作。

1.

单击 Expert Editor 窗口中工具栏中的 Start 按钮。

当您运行一个 expert 时,会出现 Expert Warning 对话框,单击 Yes 继续执行该 expert。

2.

该 Expert 运行时,屏幕显示内容如下所示。

您指定的标题显示在自定义对话框的标题栏中,您指定的消息显示为主对话框文本,还有两个按钮。

单击 Error Handler 对话框中的 OK

3.

Expert Information Dialog 出现。每当一个 expert 成功完成时,此对话框都会显示。单击 Expert Information Dialog 中的 OK 返回到 Design Center。

返回主题

返回主题列表

创建嵌套式 Expert

您可以创建多个 expert 以执行相对简单的任务,还可以使用它们作为构建复杂 expert 的构建。当您将某个 expert 添加到画布上时,它被称作嵌套式 expert。

创建 NESTED_EXPERT Expert
为转换添加条件
在 Expert 之间传递值

返回主题列表

创建 NESTED_EXPERT Expert

在本主题中,首先您将创建一个简单的 expert 以在自定义对话框内显示 ORACLE 徽标。当您单击徽标时,网站在浏览器窗口中打开。然后,编辑 expert 以包括您先前创建的 ERROR_HANDLER expert。这是一个有关如何创建嵌套式 Expert 的示例。完成本主题后,您将体会到编写一个 expert 一次然后不同 expert 中重用它的好处。

1.

在 Design Center 的 Project Explorer 中,展开 HANDSON 项目。右键单击 EXPERT_MODULE 节点并从快捷菜单中选择 New

2.

在 Create Expert 对话框中,输入 NESTED_EXPERT (输入时无需考虑大小写,OWB 将自动转换为大写形式)作为 expert 的名称。单击 OK

3.

在 Expert Editor 窗口中,将一个 Custom Dialog 从 Palette(左下方面板)拖放到 Expert 面板(画布)上。将其放在 START_TASK 和 END_TASK 中间。

4.

在画布上单击(如还未选择)CUSTOM_DIALOG_TASK 自定义对话框任务。

5.

在 Task Editor 面板中,单击 Dialog Builder 选项卡页面。在 Title 域中,输入 Intro 作为自定义对话框任务的标题。

指定自定义对话框的宽度和高度。取消选中 Auto Size 选项。在 Width 域中输入 290,在 Height 域中输入 170

6.

单击位于 Task Editor 面板右下角的 Add 按钮。

7.

在新行中提供以下信息:

在 Type 字段中,从下拉列表中选择 Hyperlink(将一个超链接类型的字段添加到自定义对话框中)

在 Message 字段中输入

在 Content 字段中输入 http://www.oracle.com

8.

单击位于 Task Editor 面板右下角的 Add 按钮。

在新创建的行的 Content 字段中输入以下文本。
注: 此代码区分大小写,并对空格的使用敏感。除单词“Hit”的后面和单词“to”的前后外,尖括号 (<>) 的前后不应有空格:

Hit OK to end
Cancel to terminate with Error.

Enter 键。(如果您没有按 Enter 键,您的文本将不会被保存。)

:如果您没有按 Enter 键就进行下一步,您键入的内容将丢失。

检查您在 Content 字段中输入的文本是否依然存在。

9.

添加转换线以连接这些任务,从而指定这些任务的执行顺序。

按屏幕截图所示连接任务:

10.

单击工具栏中的 Validate 图标。执行 expert 前对其进行验证是一个可选步骤。您可以忽略任何有关未指定目标和说明的警告。

11.

保存您的工作。从 Expert 菜单中选择 Save All。在 Warehouse Builder Warning 对话框中,单击 Yes

12.

Expert 菜单中选择 Close。您将返回 Design Center。

13.

运行 expert 以查看您的工作结果。在 Project Explorer 中,右键单击 NESTED_EXPERT 节点并从快捷菜单中选择 Start

14.

单击 ORACLE 徽标,将启动一个浏览器窗口,其中打开 Oracle.com 网页。

关闭浏览器窗口。

15.

单击 Intro 对话框中的 OK

单击 Expert Information 对话框中的 OK 返回到 Design Center。

16.

现在,将 ERROR_HANDLER expert 添加到 NESTED_EXPERT expert。

在 Design Center 的 Project Explorer 中展开 HANDSON 项目。展开 Experts > EXPERT_MODULE。双击 NESTED_EXPERT 节点。Expert Editor 启动。

17.

在 Expert Editor 的 Explorer 窗口(位于左上角)中,单击 Available Objects 选项卡.

展开位于 Private Experts 节点下的 EXPERT_MODULE。将 ERROR_HANDLER expert 拖放到画布上。按下面的屏幕截图所示对其进行放置。

18.

CUSTOM_DIALOG_TASKERROR_HANDLER、从 ERROR_HANDLEREND_TASK 各绘制一条转换线。

返回主题

为转换添加条件

如果您希望下个任务的执行是有条件的,则为两个任务之间的转换指定条件。例如,如果用户单击 NESTED_EXPERT 弹出对话框中的 CANCEL 按钮,我们希望运行 ERROR_HANDLER expert。要为转换指定条件,执行以下步骤:

1.

单击从 CUSTOM_DIALOG_TASK 开始到 ERROR_HANDLER 的转换线。

在 Object Details 面板中,单击 Condition 属性旁的域,然后单击 : 按钮

2.

在 Transition Condition Editor 中,从 Enumerated Conditions 下拉列表中选择 CANCEL,然后单击 OK

3.

单击从 CUSTOM_DIALOG_TASK 开始到 END_TASK 的转换线。在 Object Details 面板中,单击 Condition 属性旁的域。单击 : 按钮

在 Transition Condition Editor 中,从 Enumerated Conditions 下拉列表中选择 SUCCESS,然后单击 OK

4.

Expert 菜单中,单击 Validate。确保没有错误。您可以忽略有关未指定目标和说明的警告。

Expert 菜单中,单击 Start

单击 Expert Warning 对话框中的 Yes

5.

在 Intro 对话框中,单击 Cancel

随即显示您在 ERROR_HANDLER expert 中创建的 Error Handler 对话框。

6.

单击 Error Handler 对话框中的 OK

单击 Expert Information Dialog 中的 OK

返回主题

在 Expert 之间传递值

通常,对于错误处理程序,您希望将信息传入一个嵌套式 expert 中和/或从其中传出。在本主题中,您将学习如何在 expert 之间传递值。

您首先需要传递变量和参数,它们用于在 expert 间传递值。执行以下步骤:

1.

在 Design Center 中展开 HANDSON 项目。展开 Experts > EXPERT_MODULE。双击 ERROR_HANDLER 节点。Expert Editor 启动。

2.

您现在将学习如何创建变量。在 Expert Editor 的 Explorer 面板(左上角)中,单击 Selected Objects 选项卡(如果未选择)。单击 Variables 节点,然后单击 Create 按钮(该按钮上方有一个绿色的加号,位于 ERROR_HANDLER 节点左侧,如以下屏幕截图所示)。

创建了一个名为 VARIABLE 的变量。

3.

在 Object Details 面板中,单击 Name 属性旁边的域。将 VARIABLE 重命名为 ERROR_TO_DISPLAY,按 Enter 键。

4.

您现在将学习如何创建参数。在 Expert Editor 的 Explorer 面板(左上角)中,单击 Parameters 节点,然后单击 Create 按钮。

5.

在 Object Details 面板中,单击 Name 属性右侧。将 PARAM 重命名为 INPUT_ERROR_MESSAGE,按 Enter 键。确保在 Direction 域中选择了 IN。

6.

重复第 4 步创建另一参数。

在 Object Details 面板中,单击 Name 属性右侧的域。将 PARAM_1 重命名为 OUTPUT_ERROR_MESSAGE,按 Enter 键。单击 Direction 属性右侧的域。从下拉列表中选择 OUT

7.

您现在将学习如何将参数绑定到变量。

在 Explorer 面板中,展开 Parameters 节点,然后单击 INPUT_ERROR_MESSAGE。在 Object Details 面板中,单击 Binding to 属性右侧的域。从下拉列表中选择 ERROR_TO_DISPLAY 变量。

8.

在 Explorer 面板中,选择 OUTPUT_ERROR_MESSAGE。在 Object Details 面板中,单击 Binding from 属性右侧的域。从下拉列表中选择 ERROR_TO_DISPLAY 变量。

9.

在画布上单击 CUSTOM_DIALOG_TASK。在 Task Editor 面板中,单击 Dialog Builder 选项卡页面。在 Content 字段中,键入 $ERROR_TO_DISPLAY(覆盖旧值 Hello from the Error Handler)。按 Enter 键。

10.

保持画布中选中 CUSTOM_DIALOG_TASK,单击 Post-processing 选项卡页面。输入以下代码:

if {$GUI_RETURN_VALUE(DLG1) == "Cancel"} {
set ERROR_TO_DISPLAY "Hit Cancel within Handler"
} elseif {$GUI_RETURN_VALUE(DLG1) == "OK"} {
set ERROR_TO_DISPLAY "Hit OK within Handler"
}

警告:Tcl 脚本语言区分大小写并对空格敏感。由于空格问题,这段代码编译失败或者其执行可能失败。

请注意以下问题:

1. 这段代码使用 tcl 脚本语言。


2. 在上述代码中,您必须在 IF 语句中的 == 两侧和 } { 花括号中间留空格。您还需要在 ELSEIF 语句的两侧留空格。


3. 上述代码根据用户按的是 Cancel 还是 OK 按钮来设置 ERROR_TO_DISPLAY 变量中的消息。


4. DLG1 是自定义对话框的名称(为使您想起定义的自定义对话框,单击画布上的 CUSTOM_DIALOG_TASK。单击 Dialog Builder 选项卡页面,参见 Name 域。)

11.

保存您的工作并关闭 ERROR_HANDLER expert 编辑器。

12.

您已经修改了 ERROR_HANDLER expert。NESTED_EXPERT 必须包括这个更新的 ERROR_HANDLER expert。

在 Design Center 中展开 HANDSON 项目。展开 Experts > EXPERT_MODULE。双击 NESTED_EXPERT 节点。Expert Editor 启动。

13.

单击画布上的 ERROR_HANDLER expert。删除 ERROR_HANDLER expert。单击 Delete Confirmation 对话框中的 OK

14.

在 Expert Editor 的 Explorer 面板(位于左上角)中,单击 Available Objects 选项卡.展开位于 Private Experts 节点下的 EXPERT_MODULE。将 ERROR_HANDLER expert 拖放到画布上。

15.

CUSTOM_DIALOG_TASKERROR_HANDLER 绘制一条转换线。

16.

单击从 CUSTOM_DIALOG_TASK 开始到 ERROR_HANDLER 的转换线。在 Object Details 面板中,单击 Condition 属性旁的域。单击 :按钮

在 Transition Condition Editor 中,从 Enumerated Conditions 下拉列表中选择 CANCEL,然后单击 OK

17.

在 Expert Editor 窗口中,将一个 Custom Dialog 从 Palette(左下方面板)拖放到画布上。将它放在 ERROR_HANDLER 的右侧。将您的设计布局与屏幕截图进行比较,必要时进行重新安排。

18.

连接以下任务:

ERROR_HANDLERCUSTOM_DIALOG_TASK_1 绘制一条转换线。

CUSTOM_DIALOG_TASK_1END_TASK 绘制一条转换线。

19.

在 Expert Editor 的 Explorer 面板(位于左上角)中,单击 Selected Objects 选项卡.单击 Variables 节点,然后单击 Create 按钮。创建了一个名为 VARIABLE 的变量。

20.

在 Object Details 面板中,单击 Name 属性旁的域。将 VARIABLE 重命名为 MESSAGE_BUCKET,按 Enter 键。

21.

在选择了 Selected Object 选项卡的 Explorer 面板中,展开 Tasks > ERROR_HANDLER。单击 INPUT_ERROR_MESSAGE 节点。

在 Object Details 面板中,单击 Binding from 属性旁的域。从下拉列表中选择 MESSAGE_BUCKET

22.

单击 OUTPUT_ERROR_MESSAGE 节点。在 Object Details 面板中,单击 Binding to 属性旁的域。从下拉列表中选择 MESSAGE_BUCKET

23.

在 Expert Editor 中,单击画布上的 CUSTOM_DIALOG_TASK_1。在 Task Editor 面板中,单击 Dialog Builder 选项卡页面。

24.

现在,指定要在对话框中显示的信息消息。单击位于 Task Editor 面板右下角的 Add 按钮。单击 Add 按钮,在 Task Editor 面板中为所选的自定义对话框任务添加一个新行。

25.

在 Task Editor 面板的 Content 域中,为新创建的行输入 $MESSAGE_BUCKET,然后按 ENTER 键。

26.

在 Options 域中,您将看到两个值:OK 和 Cancel。删除逗号 (,) 和单词 Cancel,仅保留值 OK。该操作从自定义对话框中删除了 Cancel 按钮。

27.

在画布上单击 CUSTOM_DIALOG_TASK 任务。在 Task Editor 面板中,单击 Post-processing 选项卡页面。输入以下代码:

if {$GUI_RETURN_VALUE(DLG1) == "Cancel"} {
set MESSAGE_BUCKET "Hit Cancel in Main Expert"
}

警告:Tcl 脚本语言区分大小写并对空格敏感。由于空格问题,这段代码编译失败或者其执行可能失败。在上述代码中,您必须在 IF 语句中的 == 两侧和 } { 花括号中间留空格。

28.

保存您的工作。

验证您的工作。在 Expert Editor 中,从 Expert 菜单中选择 Validate。确保没有错误。您可以忽略有关未指定目标和说明的警告。

关闭 Expert Editor。

29.

在 Project Explorer 中,右键单击 NESTED_EXPERT 并选择 Start

30.

弹出 Intro 对话框。单击 Intro 对话框中的 Cancel

弹出 Error Handler 对话框。

31.

单击 Error Handler 对话框中的 Cancel

弹出一个无标题对话框。

32.

单击无标题对话框中的 OK

单击 Expert Information Dialog 中的 OK。您将返回 Design Center。

返回主题

返回主题列表

执行 Expert 的两种方法

到目前为止,您已经使用默认的执行用户界面 (UI) 设置在 Warehouse Builder 内部运行了多个 Expert。一些 Expert 编写为作为“独立的”应用程序来运行(即,用户看不到 Design Center)。然而,其他 Expert 编写为扩展,即,为了增加 Design Center 中可用的功能。一些属性和命令可以控制 expert 的外观,从而影响终端用户的感受。在本主题中,您将完成以下任务:

在 Oracle Warehouse Builder 外部执行 Expert
在 Oracle Warehouse Builder 内部执行 Expert

返回主题列表

在 Oracle Warehouse Builder 外部执行 Expert

要在 Warehouse Builder 外部执行 expert,执行以下步骤:

1.

在本主题中,您将使用现有的 expert。在记事本或任何文本编辑器中,输入以下内容:

OMBCONNECT owb/owb@localhost:1521:orcl USE WORKSPACE '<workspace_owner> .<workspace_name>'
OMBCC '/HANDSON/EXPERT_MODULE'
OMUSTART EXPERT 'NESTED_EXPERT'

警告:Tcl 脚本语言区分大小写并对空格敏感。输入此段代码时要注意。确保在上述代码相应的地方使用了单引号 '。如果您严格遵守了本 OBE 教程第 1 课中的命名,工作区所有者为 owb,工作区名称为 MY_WORKSPACE

2.

将该文件保存到 c:\temp\startdialog.tcl

注:将该文件保存为 startdialog.tcl 而非 startdialog.tcl.txt。在 Save As 对话框中,从 Save As 类型下拉列表中选择 All Files。

3.

在记事本(任何文本编辑器)中输入以下内容,用您的实际 OWB 主目录替代

c:
cd \owb\bin\win32\
call OMBPlus.bat c:/temp/startdialog.tcl owb/owb@<主机:端口:服务名>

:在以 call OMBPlus.bat c:/temp/startdialog.tcl.................
开始的行中— 在 Windows 和 linux/unix 平台上,应当使用正斜线 (/)。或者,在 Windows 上您可以使用双反斜线 (\\) (c:\\temp\\startdialog.......)

将此文件保存为 c:\temp\runexpert.bat

4.

在 Windows 中,单击开始菜单,然后单击运行。在 Open 域中,键入 c:\temp\runexpert.bat。(您可以选择创建一个桌面快捷方式来运行此批处理文件)

最小化命令窗口,继续运行此 expert。按您在本课程前面做的那样对弹出消息作出响应。该 expert 完成,所有窗口自动关闭。

:该执行方法不要求用户熟悉 OWB,但仍然能够享受 expert 的好处。

返回主题

在 Oracle Warehouse Builder 内部执行 Expert

您现在要学习如何在 Warehouse Builder 内部运行 expert。

1.

在 Design Center 中,展开 HANDSON > Experts > EXPERT_MODULE。双击 NESTED_EXPERT。Expert Editor 启动。

2.

在 Expert Editor 中,单击 Explorer 面板上的 NESTED_EXPERT。您在 Object Details 面板中设置属性。

3.

在 Execution UI Settings 部分中,您会看到用于控制 Expert 执行(从 OWB UI 内部)方式的各个属性。

取消选中以下属性:

Show Progress Graph

Finish Dialog on Completion

Show Task Assistant

Close Assistant on Completion

4.

更改完属性设置后,运行该 expert。单击 Expert Editor 工具栏中的 Start。单击 Expert Warning 对话框中的 Yes

注:Design Center 将消失,仅显示自定义对话框。单击 Intro 对话框中的 OK

5.

在 Design Center 中,展开 HANDSON > Experts > EXPERT_MODULE。双击 NESTED_EXPERT。Expert Editor 启动。

6.

在 Object Details 面板的 Execution UI Settings 部分中,取消选中 Run Standalone 属性。

7.

更改完属性设置后,运行该 expert。单击 Expert Editor 工具栏中的 Start。单击 Expert Warning 对话框中的 Yes

:Expert 现在执行,Design Center 位于后台。单击 Intro 对话框中的 OK。该 Expert 结束,但 Design Center 仍然处于打开状态。

返回主题

返回主题列表

创建高级的 Expert

在本主题中,您将完成以下任务:

将 Expert 附加到鼠标右键单击菜单上
将 Expert 附加到 Design Center 中的一个菜单上

返回主题列表

Expert 附加到鼠标右键单击菜单上

在本主题中,您将部分地创建一个高级的 expert,它用于自动执行一个常见任务。该 expert 将允许您自动创建一些映射,这些映射可以添加您在提示列表中指定的源表,您无需手动为每个源表创建一个映射。

您将学习如何将 expert 附加到鼠标右键菜单(右键单击某个对象时出现的快捷菜单)。在本示例中,当您右键单击 OE 模块中的任何表时,ADVANCED_EXPERT expert 都将作为一个菜单项显示。

该 Expert 需要知道用户右键单击的是哪个表。使用变量来存储该信息。

1.

在 Design Center 中,展开 HANDSON 项目。右键单击 EXPERT_MODULE 节点并从快捷菜单中选择 New

2.

在 Create Expert 对话框中,输入 ADVANCED_EXPERT 作为 expert 名。单击 OK

3.

在 Expert Editor 窗口中,将一个 Custom Dialog 从 Palette(左下方面板)拖放到 Expert 面板(画布)上。

4.

将一个 OMB 任务从 Palette(左下方面板)拖放到画布上。

5.

按以下屏幕截图所示连接任务:

6.

有一些变量可以告诉 Expert 它从哪里开始运行。为了进行调试,将显示这些变量的值。

选中 CUSTOM_DIALOG_TASK 任务后,单击 Task Editor 面板中的 Dialog Builder 选项卡页面。

7.

在 Title 域中,输入 Debug 作为标题。

单击位于 Task Editor 面板右下角的 Add 按钮,添加一个标签。添加四个标签(单击 Add 按钮四次),在 Content 字段中输入以下值(每个值都在一个新行中):

Initial Launch Context = $EXP_LAUNCH_CONTEXT

Initial Launch Context Type = $EXP_LAUNCH_CONTEXT_TYPE

Initial Operation = $EXP_OPERATION

Initial Type to Create = $EXP_TYPE_TO_CREATE

注:变量名区分大小写且必须为大写。

8.

单击 Explorer 面板中的 ADVANCED_EXPERT 节点。在 Object Details 面板中,取消选中 Execution UI Settings 部分的所有属性。

9.

在画布上,单击 OMB 任务。在 Task Editor 面板中,单击 Main 选项卡页面。输入以下代码:

puts Hello

注:现在,您要编写一条简单的调试消息以确保任务是有效的。您将在以后编写有意义的代码。

10.

在 Expert Editor 中,单击 Expert 菜单中的 Save All 保存您的工作。在 Warehouse Builder Warning 对话框中,单击 Yes

要验证该 expert,从 Expert 菜单中选择 Validate。确保没有错误。您可以忽略有关未指定目标和说明的警告。

要关闭 Expert Editor,从 Expert 菜单中选择 Close

11.

在 Design Center 中,展开 HANDSON 项目。展开 Databases > Oracle > OE >Tables

12.

右键单击 OE 模块中的任意表,然后选择 Add/Remove Experts Here

13.

在 Add/Remove Experts 对话框中,展开 HANDSON > EXPERT_MODULE。单击 ADVANCED_EXPERT 左侧的复选框,然后单击 OK

保存您的工作。在 Design Center 中,从 Design 菜单中选择 Save All单击 Warehouse Builder Warning 对话框的 Yes

14.

现在,右键单击 OE 模块下的任意表。您将看到 ADVANCED_EXPERT 显示为一个菜单项。单击 ADVANCED_EXPERT

Debug 自定义对话框出现,同时显示变量值。单击 Debug 对话框中的 OK

:这些变量捕获所选对象的完整路径、类型和操作。在本示例中,Expert 附加到了对象(表)的实例上。如果 Expert 附加到 Tables 节点自身上,则已经设置了 Initial Type to Create。

返回主题

将 Expert 附加到 Design Center 中的一个菜单上

除了将 Expert 附加到鼠标右键菜单上,还可将它附加到 Design Center 的 Tools 菜单上。将一个 expert 附加到 Design Center 的一个菜单上时,该 expert 必须是一个公共 expert。现在,创建一个公共 expert。目前为止,您创建的所有 expert 都是私有 expert。

1.

您需要创建一个简单的公共 expert,以便学习如何将一个 expert 附加到 Design Center 的菜单上。

在 Design Center 中,右键单击 Global Explorer 面板中的 Public Experts 节点。从快捷菜单中选择 New

2.

在 Create Expert Module 对话框中键入 test(不区分大小写,OWB 会自动将其转化为大写)作为 Name,在 Description 域中输入 The TEST expert module is a public expert module。确保单击了 Proceed to Expert Wizard 复选框,单击 OK

3.

在 Create Expert 对话框中,键入 EXPERT1(不区分大小写,OWB 会自动将其转化为大写)作为 Name,然后单击 OK

4.

在 Expert Editor 窗口中,将一个 Custom Dialog 从 Palette(左下方面板)拖放到 Expert 面板(画布)上。

5.

在画布上单击 CUSTOM_DIALOG_TASK 任务。在 Task Editor 面板中,单击 Dialog Builder 选项卡页面。在 Dialog Builder 选项卡页面的 Title 域中,输入 Public Expert

6.

按如下所示连接任务:

7.

保存您的工作并关闭 Expert Editor。

8.

在 Design Center 中,从 Tools 菜单中选择 Add/Remove Experts Here

9.

在 Add/Remove Experts 对话框中,展开 PUBLIC_PROJECT > TEST。单击 EXPERT1 左侧的复选框,然后单击 OK

10.

现在,在 Design Center 中单击 Tools 菜单,您将看到 EXPERT1 显示为一个菜单项。

在本教程中,我们不再继续介绍有关为 expert 指定脚本的详细信息。如果您完成了此 expert 的定义,它会为您节省不少时间。您只需找到您的表并单击右键,而不必创建映射并添加表。保存您的工作并关闭 Design Center。

返回主题

返回主题列表

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

创建一个简单的 Error Handler expert

创建嵌套式 Expert

从 OWB 内部和外部执行 expert

返回主题列表

将鼠标置于该图标上可以隐藏所有的屏幕截图。