根据 IBP_DB() 命令定义专家规则概览

也可以利用 IBP_DB() 命令定义专家规则。必须先定义专家计算规则;请参阅定义专家规则

以下是 Infor BI OLAP DB() 函数语法:

DB(Cube,Dim1Element,Dim2Element,...,DimxElement)
Cube = the name of the external Cube.
Dim1Element = an element of the first dimension of Cube, Dim2Element is an element of the 2nd dimension of Cube, etc...
注意:
  • 必须以正确的顺序指定 DB() 的所有维度,包括用于基准控制属性的附加维度。基准控制维度可以特定于循环模块,但必须在 DB() 命令中预先定义。
  • IBP_DB() 是用于专家计算规则的内部命令,也是定义 OLAP DB() 函数的快捷方式。
  • 在 OLAP 中创建计算规则时(使用“开始”或“刷新并重新开始”选项开始循环周期),其中专家规则包含 IBP_DB() 命令的任何规则都将转换为用于 OLAP 立方体的规则中的对应 DB() 函数。这一转换在变量替换之前进行。

转换规则:

  • 参数的命名惯例,如 <parameter name>="<parameter value>":
    • 如果参数值含有“,”或“)”,则需要使用双引号。否则,可以省略引号。
    • “=”和下一前置“,”之前的所有(截断)文本都视为参数值。
    • 使用引号时,所有“内部”引号都必须利用“\”转义,如 \"value\"。
  • 您只需指定与计算目标不同的维度元素:
    • 不需要指定仅基于 %cube 和 !%items 等从源立方体读取相同维度和元素的维度变量的参数。
    • 缺失的任何维度都将替换为 OLAP DB() 函数中适当的立方体维度名称。
  • IBP_DB 针对循环周期中的维度进行动态调整(即,添加任何相关的基准控制维度)。IBP_DB 命令中若有任何缺失的基准控制维度,它们将替换为 OLAP DB() 函数中适当的立方体维度。
  • 维度缩写为单个字母,表示对应维度的参数:
    • i = 货品维度
    • l = 库位
    • s = 方案
    • p = 周期
    • m = 度量
    • ia1 = 货品属性 1(ia2,以此类推)
    • la1 = 库位属性 1(la2,以此类推)

示例(若有两个货品属性用于专家规则):

A.将当前方案设置为在此循环的以前(上一)循环周期中发布的方案,并且适用于所有其他维度:

IBP_DB(cube="%previouscube(1)", s=%previouspublishedscenario)

转换为:

DB(%previouscube(1), !%items, !%locations, !%periods, %previouspublishedscenario, !%measures, !%itemsA1, !%itemsA2)

B.将当前周期设置为来自之前的(上一)周期的值,适用于相同的度量和维度:

IBP_DB(p="GETATTR(%periods,!%periods,1,'PreviousPeriod')")

转换为:

DB(%cube, !%items, !%locations, GETATTR(%periods,!%periods,1,'PreviousPeriod'), !%scenarios, !%measures, !%itemsA1, !%itemsA2)

C. 将当前周期设置为第一个子周期的值,适用于相同的度量和维度:

IBP_DB(p="DE.CHILDNAME(%periods, !%periods,1)")

转换为:

DB(%cube, !%items, !%locations, DE.CHILDNAME(%periods, !%periods,1) ,!%scenarios, !%measures, !%itemsA1, !%itemsA2)

注意:根据其他专家规则,在 OLAP 中验证所生成的规则文本,并使用审查日志进行报告。