在 Excel 工作簿中定义决策表(Oracle Policy Modeling-Define decision tables in Excel workbooks)

要在 Excel 中编写规则,您只需在表中编写规则,并使用 Oracle Policy Modeling 样式标识单元格中的信息类型,

以便这些规则可以编译并在 Oracle Determinations Engine 中使用。在文档中可以创建任意数量的规则工作表。

了解用于规则表的样式

打算在 Oracle Policy Modeling 中编译的 Excel 规则需要用随 Oracle Policy Modeling Excel 文档模板一起提供的样式标记。以下样式用于编写规则:

标题单元格为可选。同样,单元格顺序无关紧要,因为每种样式都具有唯一性 - 只要必要样式用于有效的单元格内容。

注意:

a.无论工作表上的声明顺序是什么,处理顺序都是“全局实体”、“实体”,然后是任何属性。这可以保证属性出现在正确的实体中。

b.要将单元格的格式定义为货币值,不要使用 Excel 格式工具栏上的按钮 - 而是转至格式 | 单元格并在数字选项卡上选择货币

c.在 Microsoft Excel 中处理数字、货币、日期和时间时,计算机的区域设置与规则库项目的区域应一致。这是因

为 Microsoft Excel 使用区域设置中的模板定义数据类型的格式。

如果您使用文本属性,该文本属性的值可以放在引号内,也可以不放在引号内,处理方法都相同。如果要在规则表中使用文本

函数,需要用圆括号将函数文本括起来。

在 Excel 中创建规则表

当您向项目中添加 Excel 文档时,此文档的规则表工作表将包含如下所示的规则模板:

要在 Excel 中编写包含单个条件和单个结论的简单规则,请执行以下步骤。在此示例中,我们将根据人员的国籍推

断出其是哪国人。注:变量属性应先在属性文件中声明才能在 Excel 中使用。(在规则中使用布尔值属性之前不必

声明这些属性。)在此示例中,文本变量“国籍”和“哪国人”已经在项目的属性文件中声明。

a.将第二列中的文本条件替换为“国籍”。此单元格已采用正确的条件标题样式。因为我们将只有一组条件,所以您可以删除第一个条件列。

b.将文本结论替换为“哪国人”。此单元格已采用正确的结论标题样式。因为我们将只有一组结论,所以您可以删除另一个结论列。

c.在“国籍”单元格下面的单元格中键入“美国”。使用 Tab 键转至下一个单元格(“哪国人”单元格下面的单元格)并键入“美国人”。

这些单元格已经采用正确的样式:分别为条件结论。删除随后两行,因为这些行不会用到。

1.在下面的行中,输入另一个条件“苏格兰”,关联的结论为“苏格兰人”。按照此方法处理下一行,条件为“日本”,结论为“日本人”。

2.在否则条件旁边的单元格中键入“不确定”。此操作将应用替代结论“不确定”。

规则表应如下所示:

当编译规则时,在 Excel 中编写的决策表将由 Oracle Policy Modeling 转换成内部生成的规

则表。上述表将在 Oracle Policy Modeling 中创建以下规则 (xgen)。(要查看此规则,可

以在 OPM 的项目资源管理器中用右键单击规则文档,然后选择打开规则浏览器。)

为同一组条件证明多个属性

在 Excel 中仅使用一个表,就可以为同一组条件证明多个属性(与在 Word 中需要多个规则表不同)。

假设已声明以下变量,文本变量“国籍”、“哪国人”和“国家/地区的货币”,可以编写以下规则表:

使用多个条件证明同一组结论

您可以在 Excel 中为特定结论指定多个条件,在合适的情况下合并结论单元格以影响规则的求值方式。

例如,您可能要为成人和儿童的不同组合确定合适的门票类型。如果有如下变量:

可以编写以下规则表:

在 Oracle Policy Modeling 中为此表生成的规则如下所示:

如果我们不想测试结论单元格的属性值,则可以将条件单元格留空。在我们的示例中,我们可以

决定,两个成人带有儿童时可以购买“家庭”门票进入,三个大人无论是否带有儿童,都可以购买“家庭”门票。

这样可以简化逻辑,生成如下规则:

如果有多个条件行证明同一结论,我们还可以合并结论值的单元格。

这样可以简化 Excel 规则表的外观,强调为门票推断的值在多个可能方案中相同。但是,Oracle Policy Modeling 解

释规则逻辑的方式也会随之改变。根据 Excel 规则表生成的内部规则表对于每个 Excel 结论单元格包括一行。

这意味着,生成的规则表中并非存在两行来证明同一结论值(按从上到下的顺序求值),而是只存在一行来证明

结论值,同时具有多个可按任何顺序求值的选项。规则需要考虑到有些条件值为未知时这很有用。

提示:要查看使用合并条件和结论单元格的完整规则库的示例,请打开并运行保险欺诈得分示例规

则库项目,此项目位于 Oracle Policy Modeling 安装文件夹中的“示例”文件夹下。

允许规则条件按任何顺序求值和处理缺少值

Oracle Policy Modeling 根据 Excel 中的决策表生成的内部规则表从上到下逐行求值。如果表的第一行无法

求值(即如果有些条件值未知),即使表中后面的行因为其所有条件值完全已知而可以求值,规则表整体的

求值也不会超过第一行。
在某些情况下,这不是规则求值的最有用方式。如果通过多种方式证明一个结论,您可以在所有不同

条件行中合并单个结论单元格。然后,Oracle Policy Modeling 将允许任何这些条件行以任何顺序证明结论值。

例如,在下面的规则单元格中,我们希望两行中的任一行能够证明结论。

采用当前规则表布局时,在 Oracle Policy Modeling 生成的规则中,对于 Excel 规则中的每行

都有单独的行。因为规则表从上到下求值,所以这意味着,即使我们知道人员 16 岁并因此有权获

得青年福利金,规则表也在我们知道人员的职业后才能推断出结果并对第一行进行求值。

但是,如果我们合并包含适用于这两行的结论的单元格,则 Oracle Policy Modeling 生成的内部规则

会将这些行与单个规则表行中的“或者”条件合并,而不是上面生成的两个单独规则表行。

这个新结构允许按任何顺序对证明结论的条件进行求值,因此现在即使第一行的值未知,第二行也允许对规则进行求值。

编写决策应用于一系列数字或日期的比较类型规则

对于非文本条件,决策可能应用于一系列数字或日期,而不是特定数字或日期。

简单的例子就是将特定日期范围的应纳税所得额映射至税率:

您可能还要对一个属性进行多种比较,举例如下:

根据规则表的应用起始日期拆分规则表

表可以拆分在同一文件的多个表上,以考虑从特定日期开始应用的定期表更新。为此,

可插入主表对各表区分优先次序。通过引用在表的选项卡中指定的表名称来区分优先次序。

例如,您可能具有:

这些表的逻辑将在编译时合并,因此不会导致多重证明属性。主表使用标准规则条件和结论样式,

但有一个标题为“应用表”的结论列采用结论标题样式。因此请注意,文本“应用表”不能用作

标准规则表中的列标题。

在此示例中,您有三个包含以下规则表的其他工作表。请注意,必须根据“应用表”列中提

供的名称给工作表加标题(区分大小写)。

将在 Oracle Policy Modeling 中创建以下规则:

提示:要查看使用“应用表”来对随时间变化的属性进行推理的完整规则库的示例,请打开

并运行保险欺诈得分示例规则库项目,此项目位于 Oracle Policy Modeling 安装文件夹中的“示例”文件夹下。

在 Excel 规则表中使用实体属性

您可以证明 Excel 规则表中的实体层属性,但是,表中的所有结论属性都必须在同一实体中。规则

表中的条件属性可以与结论在同一实体中,或者可以引用结论实体的包含关系中的任何实体。

例如,以下规则表使用实体“孩子”和全局实体中的条件属性推断“宠物”实体中的结论属性,

实体“孩子”和全局实体都在其包含关系中,如下所示:

在具有多数实体函数的条件单元格中也可以使用实体层属性。例如,以下规则使用实例总数函数根据孩子拥有的宠物数量设置她的零用钱。

注:在 Excel 中不能这样使用的实体函数是那些处理多个实体的函数:范围满足条件、范围内所有都满足

条件、范围内存在一个满足条件、是集合的成员、不是集合的成员、实例等于、实例不等于。

提示:要查看使用实体层属性、函数和基于实体实例的计算的完整规则库的示例,请打开并运行保

险欺诈得分示例规则库项目,此项目位于 Oracle Policy Modeling 安装文件夹中的“示例”文件夹下。

在 Excel 规则中证明文本属性

在 Excel 规则中证明文本属性时,您需要用括号将属性文本括起来,以便编译程序将其识别为属性。

例如,如果您有以下声明:

在规则表中推断出文本属性的文本时,您将需要用括号将其括起来。例如:

如果未在规则中的这些文本属性前后加上括号,这些属性将无法识别,生成的规则将推断出字面字符串。

在推断文本属性的特定值时,不必将其用括号括起来(请注意,您可以将该文本属性的值放在引号内,也可以不放在引号内,处理方法都相同)。

========================================================

More reading,and english is important.

I‘m Hongten

E | [email protected]  B | http://www.cnblogs.com/hongten

========================================================

时间: 2024-10-20 03:32:14

在 Excel 工作簿中定义决策表(Oracle Policy Modeling-Define decision tables in Excel workbooks)的相关文章

怎么拆分一个Excel工作簿中的多个工作表?

打开需要编辑的Excel文档.如图所示,工作簿下方有很多工作表.现在需要将这些工作表单独拆分开成一个个工作簿.   右键任意一个工作表标签,在弹出的下拉列表中选择查看代码.即弹出代码窗口.如下图所示.   点击菜单插入-模块 在弹出的模块对话框中 输入以下代码: Private Sub 分拆工作表()       Dim sht As Worksheet       Dim MyBook As Workbook       Set MyBook = ActiveWorkbook       Fo

如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据

本文分步介绍了多种从 Microsoft Visual C# 2005 或 Microsoft Visual C# .NET 程序向 Microsoft Excel 2002 传输数据的方法.本文还提供了每种方法的优点和缺点,以便您可以选择最适合您的情况的解决方案. 概述 最常用于向 Excel 工作簿传输数据的方法是"自动化".利用"自动化"功能,您可以调用特定于 Excel 任务的方法和属性."自动化"功能为您提供了指定数据在工作簿中所处的位

Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需求: 1 从[操作]表中,查找最后一行的数据,每一列 都为关键字 2 遍历这些关键字,从[总表]中查询这个关键字,把这一行后面的内容复制到 [预算]表中去 3 把[操作]中制定内容复制到[信息统计]中 Function Get操作NullLine() ' '从 操作表 获取最后一个有数据下面的空行

我们无法找到服务器加载工作簿的数据模型"的 SharePoint 网站,当您刷新 Excel 2013 工作簿中的数据透视表时出错

假定您使用 Analysis Services 源在 Microsoft Excel 2013 中创建数据透视表.将 Excel 工作簿上载到 Microsoft SharePoint 网站中.当您尝试刷新数据透视表或数据透视表中筛选数据时,您会收到以下错误消息: 我们无法找到服务器加载工作簿的数据模型. 由于没有在管理中心网站配置 Analysis Services 实例,将出现此问题. 若要变通解决此问题,请配置 SharePoint 服务器上的 Excel Services 服务应用程序.

Excel VBA在生成副本的工作表中插入本工作簿中的VBA模块代码

即在工作簿中添加一个工作表,然后移出并存为新的工作簿,在移出前将本工作簿的一个模块的代码拷贝至新的工作簿.下面是关键代码: '====================================================================== '各班名单保存为单个xls文件 ActiveSheet.Move ChDir myPath '忽略对话框,覆盖保存 Application.DisplayAlerts = False '班级名称增加"考生号处理"vba模块

使用SPIRE.XLS来创建Excel 工作簿

           使用SPIRE.XLS来创建Excel 工作簿     概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XLS for .NET Component,它有很多强大易用的功能, 此篇主要看看如何用用它来创建一个简单的Excel工作簿.     运行环境 请注意在这次演示示例中我们使用的是免费版的Spire.XLS(Spire.XLS for .NET 7.4+), 使用Visual Studio 2013

【原创】如何将多个工作簿中相同格式的工作表合并到一个工作表中

如何将多个工作簿中相同格式的工作表合并到一个工作表中 Sub Books2Sheets() '定义对话框变量 Application.ScreenUpdating = False Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 The

等Excel工作簿关闭后自动加密压缩备份2019年10月9日.ahk

;; 等Excel工作簿关闭后自动加密压缩备份2019年10月9日.ahk;; 腾讯QQ号 595076941; 作者:徐晓亮(weiyunwps618); 写作日期:2019年5月15日; 版本号:第1版; 手机号(中国移动) 138#####488;; 用法:;; 1.在Windows 7 专业版中安装WinRAR 5.7 简体中文版和WPS Office 2016 专业增强版.; 2.在此脚本所在的文件夹新建一个与此脚本同名的Excel工作簿文件(*.xlsx).; 3.运行此脚本.; 4

C# 获得Excel工作簿Sheet页面(工作表)集合的名称

#region 获取Excel工作薄中Sheet页(工作表)名集合 /// <summary> /// 获取Excel工作薄中Sheet页(工作表)名集合 /// </summary> /// <param name="excelFile">Excel文件名称及路径,EG:C:\Users\JK\Desktop\导入測试.xls</param> /// <returns>Sheet页名称集合</returns> p