了解模型和规则集上下文

如果您要创建大量规则,您可以使用模型和规则集上下文为将对模型或规则集中的所有规则使用相同成员的维定义默认成员选择。这样,您就不必每次在规则中使用维时为该维选择相同成员。

请看以下示例,它使用 Enterprise Profitability and Cost Management 随附的 BksML50 示例应用程序。除了 Enterprise Profitability and Cost Management 中所需的“实体”和“帐户”维外,该示例应用程序还包括“客户”、“活动”、“动因”和“产品”自定义维。因此,对于您在该示例应用程序中创建的每个规则,必须为“实体”、“帐户”、“客户”、“活动”、“动因”和“产品”维选择成员。请参阅“创建规则时的维和成员要求”。

对于此示例,我们将模型和规则集设置如下:

  • 模型:10 实际值分配过程

  • 规则集:占用费用分配

首先设置“10 实际值分配过程”模型。在此示例中,我们可以设置模型上下文来为“实体”、“帐户”、“客户”、“活动”、“动因”和“产品”维中的任何维选择默认成员。

“创建模型”屏幕,其中下拉列表中显示了“实体”、“帐户”、“客户”、“活动”、“动因”和“产品”

当您考虑将要进行的计算类型时,请思考是否有必要将计算范围缩小到这些维中任何维的特定成员。

在此示例中,在某个情况下,分配或自定义计算将影响所有活动、客户、产品、实体和多个帐户。只有“动因”维不受影响。假设“动因”只有一个成员,并且只有一个使用该成员的规则。由于“动因”将只用于一个规则中,因此,您可以创建为“动因”维定义默认选择的模型上下文,从而节省花在建模过程的时间。

模型上下文,其中选择了“动因”

由于我们不为“动因”维分配实际数据库成员,因此对于默认成员选择,我们将选择 NoDriverNoDriver 是用于满足以下要求的成员:每个维都必须有成员,即使维不用于规则中也是如此。(NoDriver 成员是在创建“动因”自定义维时设置并添加到“动因”维的。)

此时,我们的上下文选择如下:

Excel 电子表格中显示为模型上下文选择了 "NoDriver"

下一步是创建“占用费用分配”规则集。在此规则集中,我们要使用在创建“10 实际值分配过程”模型时定义的模型上下文,在此模型上下文中,我们将“动因”维设置为 NoDriver。为此,我们将在创建规则集页面上的定义选项卡中选中使用模型上下文

“占用费用分配”规则集的“创建规则集”页面,其中选中了“使用模型上下文”

除了使用模型上下文外,我们还可以创建规则集上下文来为“实体”、“帐户”、“客户”、“活动”和“产品”维中的任何维定义默认成员。(请注意,在规则集上下文中,“动因”维不可供选择。这是因为我们启用了模型上下文,而在模型上下文中“动因”维定义为 NoDriver。在规则集上下文中,在模型上下文中定义的任何维都不可供选择。)

“创建规则集”页面,其中下拉列表中显示了“实体”、“帐户”、“客户”、“活动”和“产品”

由于我们要为“占用费用分配”规则集创建规则,因此将移动“活动”、“产品”或“客户”维中的数据,而是移动“实体”和“帐户”维中的数据。由于“活动”、“产品”和“客户”维不应用于将在该规则集中创建的规则,因此我们在规则集上下文将这些维分别设置为无活动无客户无产品

规则集上下文,其中设置了“无活动”、“无客户”和“无产品”

与在模型上下文中定义的 NoDriver 选择一样,我们分配这些 "No<dimname>" 成员是为了满足以下要求:每个维都必须有成员,即使维不应用于规则中也是如此。在规则集上下文中进行这些选择意味着,您不必在该规则集中创建的任何新规则中为这些维选择成员。

此时,我们的上下文选择如下:

Excel 电子表格中显示的规则集上下文维选择

现在可以在“占用费用分配”规则集中创建规则了。对于在此规则集中创建的每个规则,我们将选中使用规则集上下文

用于创建规则的选项,其中选中了“使用规则集上下文”

请注意,此示例中的规则集上下文包含“活动”、“客户”和“产品”维。此外,该规则集还使用设置了“动因”维默认值的模型上下文。因此,当我们进入规则级别的定义屏幕时,将只会看到用于为“实体”和“帐户”选择成员的选项。

“创建分配规则”页面,其中显示了“实体”和“帐户”

“创建自定义规则”页面,其中显示了“实体”和“帐户”

此时,我们的上下文选择如下:

Excel 电子表格中显示的规则维选择

如果您要创建不应用模型上下文或规则集上下文的规则,可以禁用这些选择。在规则级别,可通过取消选中使用规则集上下文来处理例外情况。在规则集级别,可通过取消选中使用模型上下文来处理例外情况。请注意,由于规则集上下文还包含模型上下文,因此,如果取消选中使用规则集上下文,则还要取消选中使用模型上下文

在我们的示例中,取消选中使用规则集上下文会使应用程序中的所有维显示在分配规则的源/目标选项卡中以及自定义规则的目标选项卡中。具体来说,除了“实体”和“帐户”维外,现在还显示来自规则集上下文的“活动”、“客户”和“产品”维以及来自模型上下文的“动因”维。

“创建分配规则”的“源/目标”选项卡,其中显示了所有维

“创建自定义规则”的“目标”选项卡,其中显示了所有维

现在请思考,如果在 BksML50 示例应用程序中设置规则,但没有定义模型上下文和规则集上下文,这会发生什么情况。每个规则仍需要为分配规则中的源和目标 (destination) 或者自定义规则中的目标 (target) 定义的所有六个维。如果没有定义模型和规则集上下文,则需要针对创建的每个规则手动为所有维选择成员。如果规则集包含 200 个规则,并且所有这些规则都使用相同维,与在定义每个规则时选择成员相比,在规则集上下文中为维定义成员效率更高。