本教程首先介绍如何创建简单的 expert。然后学习如何创建嵌套式 expert。您还将学习如何在 OWB 用户界面 (UI) 上和 OWB UI 外执行 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。
|
| 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_TASK 到 ERROR_HANDLER、从 ERROR_HANDLER 到 END_TASK 各绘制一条转换线。
|
| 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。
|
| 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_TASK 到 ERROR_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_HANDLER 到 CUSTOM_DIALOG_TASK_1 绘制一条转换线。
从 CUSTOM_DIALOG_TASK_1 到 END_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。
|
| 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 的好处。
|
| 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 仍然处于打开状态。
|
| 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 |