下一步,您将看到如何定义存储过程的参数。这些参数被定义为必须通过报告传递的实参。此外,还必须调用一次这个存储过程。不仅是为了对其进行测试,还要检索那些由此存储过程提供的列。要想像报告处理中的一个表那样使用此存储过程,这非常必要。
要创建这些参数,可执行以下步骤:
双击 Project Viewer 中的 ASSOC_PROC 存储过程。
Query Subject Definition 对话框打开(见图 10)。在下面的部分,可以看到存储过程的这两个参数。单击位于 SUPPORT 参数行右端的 “. . . ” 按钮。
在 Edit Argument 对话框的 Value 文件框中键入 # prompt('support')#。按下 OK。
对 LENGTH 实参进行同样的处理(用 “# prompt('length')#” 作为实参值)。
按下 OK 确认 Query Subject Definition 对话框中的设置。
现在,Prompt Values 对话框打开。必须传递这两个示例参数值以使 Framework Manager 执行此过程并检索结果列。在长度值字段中输入 “2”,support 值 “3.0”。现在,关联规则挖掘流被执行并将所提取的规则返回给 Framework Manager。

图 10. Edit Argument 对话框打开时的 Query Subject Definition 对话框
在导入表和存储过程并调整了数据库对象的元数据后,就可以为此项目创建一个包并将其发布到 Cognos Content Store。它继而也就可以用于 Cognos Report Studio 了。
创建一个包并发布:
要使刚创建的元数据可用,需要进入 Project Viewer 并右键单击 Packages 文件夹。选择 Create -> Package。
在名称字段,键入 AssociationRulePackage。按下 Next。
不做任何改动,再次按下 Next。
在随后出现的对话框中,确保 DB2 已在 “Available function sets” 列表中。按下 Finish。
在随后出现的对话框中,按下 Yes 继续这个发布进程。
在 Publish Wizard 的 “Select publish location” 部分中,由于不必做任何改动,直接按下 Next。
由于不必指定安全性设置。因此,直接按下 Next。
然后按下 Publish。
这时会弹出一个对话框,提示说已成功发布了您的包;按下 Finish。
使用来自动态关联规则挖掘的结果创建一个 Cognos 报告
要创建一个 Cognos 报告,可以借助 Cognos Report Studio,这是一个完全基于 Web 的应用程序。我们将创建两个报告 —— 一个显示依产品分组的收入列表,另一个显示 RETAIL 表内的产品的关联规则列表。了解如何定义一个从报告 1 到报告 2 的穿透钻取定义。单击此收入列表中的一个产品,打开在规则头内包含所选产品的那些规则。借此,可以分析哪些产品提高了所选产品的收入。甚至,可以定义数据集中的这些规则的最低 support 以及规则的长度。通过一次单击,挖掘就可实时执行,结果也会被过滤和显示出来。
您还需执行如下的步骤来创建收入列表的报告:
启动 Cognos Report Studio。
在 Welcome 屏中,单击 Create professional reports 链接。
在 Select a package 浏览器中,单击在 Framework Manager 中发布的这个 AssociationRulePackage 包。
在 Welcome 对话框中,选择 Create a new report for template。
选择 List 模板并按下 OK。
在 Insertable Objects 视图的左上窗格内,可以选择不同的选项卡。Data sources 选项卡被选中,如图 11 所示。

图 11. Report Studio
在 Insertable Objects 视图中,展开 RETAIL 表并将 ITEMID 列拖到 Report Studio 右侧的编辑器页面的列表表格。然后将 ITEMPRICE 列拖到此列表内的 ITEMID 列的右侧(见图 11)。
展开 RETAIL_NAMES 表并在 ITEMID 和 ITEMPRICE 列间拖拽 DESCRIPTION 列。
单击 ITEMPRICE 列。不要在列头上单击,而是要单击列头下的三个单元格。在工具条中,按下 Sort 按钮(见图 11)并选中 Sort Descending 选项。我们想要让此收入列表能够显示产品组,并且最高的收入列在最顶部。
按下 Run Report 按钮来预览报告的当前状态。
将这个报告保存为 RevenueReport。
为了创建这个关联规则报告,还需执行下面的步骤:
从 List 模板中为同一个包创建一个新的报告。通过选择 File->New in the Report Studio 可以实现此目的。
在 Insertable Objects 视图中,展开 ASSOC_PROC 对象并将 BODYTEXT、HEADNAME、SUPPORT 及 CONFIDENCE 列拖到位于 Report Studio 右侧的编辑器页面上的列表中。
由于只想显示在规则头内包含指定产品的那些规则,因此,必须定义一个过滤器。选择列表内的任意一列并按下工具栏中的 Filters 按钮。
在 Filters 对话框的左下方,按下 Add 按钮。
Detail Filter Expression 对话框随即打开。展开 ASSOC_PROC 过程并双击 HEAD。这个头列被加入到对话框的右侧。依照如下方法扩展右侧的部分:
[DWESAMP].[ASSOC_PROC].[HEAD] = ?product?
?product? 表达式定义了一个参数,稍后,根据所单击的产品,该参数将被第一个报告传递。
按下 OK 两次。
要想完成参数的传递及存储过程的调用,必须要做最后一个调整。选择 Explorer 选择栏(见图 11)中的 Query Explorer,然后选中 Query 1。
在 Report Studio 左下方的 Properties 中,选择 Processing 属性并从下拉框中选择 Limited Local。
按下 Run Report 按钮来预览报告当前的状态。
接下来,系统提示您提供三个参数 —— 其中两个由此存储过程提供,另一个由您刚刚定义的过滤器提供。将 support 设置为 3.0,长度设置为 2,HEAD id 设置为 142。按下 OK。
最后,将这个报告保存为 “AssocReport”。
现在,需要通过一个穿透钻取定义扩展第一个报告以便调用第二个报告。
要在收入报告中创建一个穿透钻取定义,还需执行下面的步骤:
通过选择 File->Open 再次打开第一个 RevenueReport。
在编辑器区域中的这个列表内,选择 ITEMID 列(不是列头,而是列头下面的这三个单元格)。
右键单击所选中的单元格并选中 Drill-Through Definitions...
在 Drill-Through Definition 对话框的左下方区域中,选择 Add 按钮。
按下 Report 字段旁边的 “...”,并选中 AssocReport。
选中 Open in new window 复选框。
按下 Parameters 框下方的 Edit 按钮。
在 Parameters 对话框中,要定义哪个值将被传递给之前定义的 AssocReport 的产品参数。在这个产品行的 Method 列中,从下拉框中选择 Pass data item value。
在此产品行的 Value 列中,选择来自该报告的 ITEMID 列。这个 itemid 将被传递给 AssocReport 并且会导致只显示规则头内包含有此产品的那些规则。
两次按下 OK。
保存这个报告。
按下 Run Report 来预览此报告。
在这个排序了的收入列表中,选择一些内容,例如 ID 号为 191 的 “Toy car”。请注意,不是所有的产品都有相关的关联规则,因为这些规则的 support 在计算过程中可能会过小。
现在,系统提示您只需提供两个参数,这是因为穿透钻取定义传递了第三个参数 —— 该产品。将 support 设为 2.0、长度设为 3,并按下 OK。
下面的图 12 显示了最终的报告。第一个报告按照递减顺序显示产品收入。第二个报告显示了所选产品经过滤的、动态创建的那些关联规则。

图 12. 零售关联规则的最终报告