聚合存储多维数据集上的定制分配
通过定制分配,您可以将给定源金额分配给 Essbase 聚合存储 (ASO) 多维数据集中的目标单元格范围。在预算流程中使用分配来分配收入或成本。
可以根据给定基准按比例将源金额分配给目标,也可以将源金额平均分配给目标。
您可以使用 MaxL execute allocation 语句执行 ASO 分配。
您还可以通过使用 API 调用 Java API 方法 IEssPerformAllocation.performAllocation 或 C API 函数 EssPerformAllocationAso 来执行 ASO 分配。
单个分配有自己的 POV (视点)、 range 、 amount 、 basis 、 target 以及(可选) offset 。要为这些参数执行具有不同值集的分配,必须进行一系列单独的 API 调用。
分配在分配引擎中执行,然后使用 Essbase 创建的临时数据加载缓冲区回写到多维数据集。
分配标准列表
为 Essbase 聚合存储 (ASO) 多维数据集设计定制分配时,可以基于许多必需和可选标准,包括 POV、范围、金额、基准、目标、分配方法和舍入方法。
分配基于各种指定的标准。本主题简要介绍了用于定义分配的标准。请先检查这些术语,然后再继续。
表 38-2 分配标准说明
| 标准 | 说明 | 请参阅 |
|---|---|---|
|
POV |
数据库中的对称区域,用于描述执行分配的上下文 |
|
|
范围 |
数据库中用于计算和写入已分配值的对称区域 |
|
|
(可选) 排除的范围 |
您不希望写入分配值的范围中的地点 |
|
|
Amount |
要分配的金额 |
|
|
(可选)金额上下文 |
金额的附加上下文或特殊性 |
|
|
(可选)金额时间跨度 |
要为金额考虑的一个或多个期间 |
|
|
(可选)零金额选项 |
处理零或 #MISSING 金额值 |
|
|
基准 |
与范围组合时,定义确定如何分配金额的基准值的位置 |
|
|
(可选)基准时间跨度 |
要为基准考虑的一个或多个时间期 |
|
|
(如果设置了基准时间范围,则必需) 基准时间跨度选项 |
用于计算基准时间跨度的方法:
|
|
|
零基准选项 |
零基准值的处理 |
|
|
(可选)负基准选项 |
负基准值的处理 |
|
|
目标 |
与范围组合后,定义在数据库中写入分配值的区域 |
|
|
(可选)目标时间跨度 |
要为目标考虑的一个或多个时间期 |
|
|
(如果设置了目标时间跨度,则必需) 目标时间跨度选项 |
在目标时间跨度中分配值的方法:
|
|
|
分配方式 |
分配金额的方法:
|
|
|
(可选)扩散跳过选项 |
对于分摊分配方法,是否跳过范围中为零、#MISSING 或负的基准值 |
|
|
取整方法 |
是否舍入分配的值。 如果选择舍入,则指定用于处理舍入错误的方法:
|
|
|
(可选)舍入位数 |
分配值舍入到的小数位数:
|
|
|
(如果舍入方法设置为特定地点,则必需) 舍入到地点 |
添加总舍入错误的地点 |
|
|
(可选)偏移量 |
数据库中为每个来源金额写入偏置值的位置 |
|
|
(可选)贷记和借记成员 |
在双重输入会计中,平衡一个事务处理的日记账分录 |
ASO 分配中的区域
在执行定制分配时, Essbase 使用聚合存储 (ASO) 多维数据集中的源、目标、基准和偏移区域。每个区域至少包含该区域中定义的每个维的一个成员。
表 38-3 分配中使用的区域列表
| 区域名 | 区域定义 | 说明 |
|---|---|---|
|
源 |
( POV X amount [X amount context ] X [ amount time span ]) |
包含要分配的金额值的区域。 源区域和目标区域不能重叠。 |
|
目标 |
( POV X target X debit member/credit member X range X [ target time span ]) |
包含分配值写入到的位置的区域。 源区域和目标区域不能重叠。 在执行分配之前,目标区域不需要为空。Essbase 使用分配数据或零覆盖非空单元格。对于具有 #MISSING 的单元格,除非 Essbase 将分配数据写入这些单元格,否则这些单元格将保持 #MISSING。 |
|
基准 |
( POV X basis X range X [ basis time span ]) |
包含用于确定如何分配来源金额的基准值的区域。 基数可以覆盖 POV 的一部分。 |
|
偏移量 |
( POV X offset X debitMember/creditMember ) |
包含偏移值写入到的位置的区域。 |
指定分配标准
在 Essbase 聚合存储 (ASO) 多维数据集中为定制分配指定标准时,请使用 MDX 语法。
分配参数值可通过以下方式表示:
-
MDX 成员表达式
-
MDX 设置表达式
-
MDX 元组表达式(其中不能有两个成员来自同一维)
-
常量
有关如何表示分配参数值的更多信息,请参见 MaxL execute allocation 语句。
分配参数中的共享成员
在分配参数中指定共享成员时, Essbase 将在执行分配之前将共享成员映射到其原型成员。
分配参数中的成员重复
在分配参数中指定重复成员时,因为成员名称重复,或者因为同时指定了成员及其共享成员, Essbase 会删除重复成员并发出警告。
设置 POV
聚合存储 (ASO) 多维数据集的 Essbase 自定义分配需要将 POV 指定为分配标准之一。POV 指定多维数据集中的对称区域,用于描述执行分配的上下文。
POV 只能由 0 级成员组成。POV 中定义的维不能用于其他参数,但基准和基准时间跨度除外。
对 POV 集中的每个成员组合重复分配。POV 组合数是具有多个成员的维中的成员数的乘积。(仅具有一个成员的维不用于计算组合数。)
例如,假定 POV 由两个维(CostCenter 和 Project)组成,并且将分配到两个成本中心(CostCenter1 和 CostCenter2)和三个项目(Project1、Project2 和 Project3)。POV 组合数为六个:
Project1,CostCenter1
Project1,CostCenter2
Project2,CostCenter1
Project2,CostCenter2
Project3,CostCenter1
Project3,CostCenter2通过连续将分配上下文设置为每个组合,重复分配六次。
视为分配基准的值取决于 POV 组合。
注意:
如果在 POV 中指定了时段,则不能使用金额时间跨度和目标时间跨度选项。
设置范围
聚合存储 (ASO) 多维数据集的 Essbase 自定义分配需要指定一个范围作为分配标准之一。范围指定计算和写入已分配值的多维数据集中的对称区域。
如果不希望将分配值写入范围内的某些单元格,请使用 excluded range 参数来表示范围的对称子集。即使排除范围的一个子集, Essbase 也会使用范围中的所有单元格来计算分配的值。
将单元格从范围中排除时,分配的值之和可能小于金额的值。
以下示例假定范围由六个成员组合组成,金额为 6,分配方法分布,其中 Essbase 在该范围内平均分配金额。分配价差金额为 1(6/6 = 1)。
如下图所示, Essbase 在范围内的每个单元格中写入 1。
表 38-4 示例:将金额分配给范围中的每个成员
| - | CostCtr1 | CostCtr2 |
|---|---|---|
| Project1 | 1 | 1 |
| Project2 | 1 | 1 |
| Project3 | 1 | 1 |
如下图所示,如果排除的范围设置为 (Project2,CostCtr2) 的成员组合,则 Essbase 不会将分配分配金额写入该单元格。因此,分配值 (5) 的总和小于金额 (6)。分配流程后排除的单元格的值为 #MISSING 或零。
表 38-5 示例:将金额仅分配给范围中的某些成员
| - | CostCtr1 | CostCtr2 |
|---|---|---|
| Project1 | 1 | 1 |
| Project2 | 1 | |
| Project3 | 1 | 1 |
范围和排除的范围只能由 0 级成员组成。
设置金额
聚合存储 (ASO) 多维数据集的 Essbase 自定义分配需要指定一个金额作为分配标准之一。金额指定分配的来源。金额值将分配给目标区域中的单元格。
金额可以由上层或 0 级成员组成,可以表示为数值表达式、元组或常量。
您如何表达金额确定某些要求:
-
如果 amount 为数值表达式:
-
表达式中的所有成员必须来自同一维。
-
元组不能用于表达式。
-
在表达式中只能使用算术表达式(+、-、/ 和 *)。
-
不允许使用 MDX 函数(如平均值和父值)。
例如:
(Acc_1000 + Acc_2000)/2AccA + AcctBBalance * 1.1 -
-
如果数量是元组:
-
元组必须使用 POV 中未指定的每个维中的一个成员。
-
金额上下文必须为空。
例如:
(Balance,Cost_Center_00,Project_00)(Balance,Cost_Center_00,Actual) -
-
如果数量是常量:
-
金额上下文必须为空。
-
金额时间跨度必须为空。
例如:
100 -
您可以使用以下参数进一步定义金额:
-
(可选)金额上下文为金额提供附加上下文或具体性。金额上下文可以由上层或 0 级成员组成,可以表示为元组。通过指定金额上下文,您可以包括 POV 中未指定的维中的成员。
使用金额上下文时,这些要求适用于金额和金额上下文:
-
参数不能引用相同维中的成员。
-
这些参数必须一起使用 POV 中未指定的每个维的成员。
-
-
(可选)金额时间跨度指定要为该金额考虑的一个或多个时间期。金额值在指定的时间期内汇总,并分配汇总金额值。时间期必须是时间维中的 0 级成员。
如果使用算术表达式指定金额,并且使用金额时间跨度,则金额时间跨度优先于金额中的任何公式或金额中使用的任何公式成员。例如,假设金额指定为 Dept_A/Dept_B,且每个部门的金额时间跨度设置为“Jan(一月)”、“Feb(二月)”、“Mar(三月)”和“Apr(四月)”,如下所示。要为 POV 分配的金额通过将 Dept_A 的金额时间跨度值 (10) 除以 Dept_B (20) 的金额时间跨度值 (0.5) 来计算。
表 38-6 示例:以金额表示的金额时间跨度优先于公式
金额时间跨度的成员 部门 A 部门 _B Jan 1 2 Feb 2 4 三月 3 6 4 月 4 8 Total 10 20 -
(可选)零金额选项指定在值为零或 #MISSING 时如何处理金额。您可以选择分配零值(默认值),跳至下一个非零或非 #MISSING 金额值,或取消整个分配操作。
您可以使用金额上下文和金额时间范围来获得相同的结果,如以下示例所示。金额是 Dept_A 的值,但金额时间跨度仅用于关注 Dept_A 的 Jan、Feb、Mar 和 Apr 的月份。如下所示,金额时间跨度 (10) 中包括的成员的聚合值是在该范围内单元格中分配的金额值。
表 38-7 示例:金额时间跨度
| 金额时间跨度的成员 | 部门 A |
|---|---|
| Jan | 1 |
| Feb | 2 |
| 三月 | 3 |
| 4 月 | 4 |
| Total | 10 |
通过将金额指定为 Jan + Feb + Mar + Apr 的算术表达式,并将金额上下文设置为 Dept_A,可以实现相同的金额值,如下所示:
表 38-8 示例:金额上下文
| 金额上下文 | Jan | Feb | 三月 | 4 月 | Total |
|---|---|---|---|---|---|
| 部门 A | 1 | 2 | 3 | 4 | 10 |
设置基准
聚合存储 (ASO) 多维数据集的 Essbase 自定义分配通常需要提供基准作为分配标准之一。基准与范围组合时,定义确定如何分配金额的基准值的位置。基准可以由上层或 0 级成员组成。
如果使用的分配方法分布,并且不跳过任何值,则基准是可选的。在不使用跳过选项的情况下使用分配方法分布时,必须忽略基准。
您可以使用以下参数进一步定义基准:
-
(可选)基准时间跨度指定要为基准考虑的一个或多个时间期。时间期必须是时间维中的 0 级成员。
-
(如果设置了基准时间跨度,则为必需)基准时间跨度选项指定如何在基准时间跨度指定的时间期内计算基准。您可以选择单独使用每个时间期的基准值(分解),也可以使用基准时间跨度指定的时间期(组合)的基准值之和。
-
如果基础时间跨度指定多个时段,而目标时间跨度和时间跨度指定了一个或为空,则必须设置要组合的基础时间跨度选项。Essbase 将忽略目标时间跨度选项。
-
如果基础时间跨度和目标时间跨度指定多个时间期,并且您将基础时间跨度选项设置为“拆分”,则基础时间跨度和目标时间跨度指定的期间必须相同。Essbase 将忽略目标时间跨度选项。
-
-
零基准选项指定如何处理零基准值。您可以选择跳至下一个非零或非 #MISSING 金额值,或者取消整个分配操作。Essbase 根据分配方法处理零基准选项设置。
-
(可选)负基准选项指定如何处理负基准值。可用于负基准选项的选项取决于使用的分配方法。
注意:
使用分布分配方法时忽略基准,并且您尚未设置任何分布跳过选项。
设置目标
聚合存储多维数据集的 Essbase 自定义分配需要将目标指定为分配标准之一。目标与范围组合时,定义 ASO 多维数据集中用于写入分配值的区域。
目标只能由 0 级成员组成。
可以使用这些参数进一步定义 target :
-
(可选)目标时间跨度指定要为目标考虑的一个或多个时间期。时间期必须是时间维中的 0 级成员。
-
(如果设置了目标时间跨度,则必需)目标时间跨度选项指定用于在目标时间跨度中指定的时间期间分配值的方法。您可以选择划分金额值,或者在指定的时间期间重复计算金额值。
-
如果基础时间跨度指定多个时段,而目标时间跨度的范围指定了一个或为空,则必须设置要组合的基础时间跨度选项。Essbase 将忽略目标时间跨度选项。
-
如果基础时间跨度和目标时间跨度指定多个时间期,并且您将基础时间跨度选项设置为“拆分”,则基础时间跨度和目标时间跨度指定的期间必须相同。Essbase 将忽略目标时间跨度选项。
-
设置分配方法
为聚合存储 (ASO) 多维数据集设计定制分配时,可以指定分配方法来告知 Essbase 是平均分配(分布)还是按比例分配(共享)。
-
share 方法分配金额 (
alloc_share_amt) 的百分比,方法是将范围内当前成员的基准值除以 (basis_mbr_value)) 范围中的基准总和 (basis_range_sum)。分配的金额基于范围内的有效基准值数量。用于计算分配份额金额的演算法:alloc_share_amt = (basis_mbr_value/basis_range_sum) * amount基准值和 Essbase 操作:
-
对于零基, Essbase 会将零写入相应的目标单元格。
如果所有基准值的总和为零(这将导致逐个零的错误),则 Essbase 将使用零基准选项设置。
-
对于 #MISSING 基准, Essbase 会将目标单元格保留为 #MISSING,或者如果目标单元格已经具有值,则会用零覆盖现有值。
-
对于负数基准, Essbase 使用负数基准选项设置。您可以选择使用负基准值(默认值),跳至下一个金额值(没有为当前金额值分配数据,而 Essbase 将跳至下一个 POV 组合),或者取消整个操作。
以下示例说明了共享资源分配方法。在这两个示例中,要分配的金额均为 10。
在以下示例中,假设金额 (10) 表示建筑的租金费用,并且基准表示该范围内每个部门的人数。Essbase 使用具有非 #MISSING 人数(Dept_A 到 Dept_D)的部门的基准值来计算分配份额金额,即租金分配。
Dept_A 的租金分配是 Dept_A (3) 的基准值,除以范围中的有效基准值之和 (3 + 2 = 5),再乘以金额 (10):3/5 * 10 = 6。对于“部门 _D”,租金分配是 2/5 * 10 = 4。范围中的目标单元格总数等于 10。
表 38-9:份额分配方法示例
范围中的成员 基准(人数) 目标(租金分配) 部门 A 3 6 部门 _B 部门 _C 0 0 部门 D 2 4 在以下示例中,假设在计算份额分配金额时要考虑所有基准值。Mbr1 的分配是 Mbr1 (3) 的基准值,除以范围中的有效基准值之和 (3 + -1 + 2 = 4),再乘以金额 (10):3/4 * 10 = 7.5。对于 Mbr3,分配为 -1/4 * 10 = -2.5;对于 Mbr4,分配为 2/4 *10 = 5。范围中的目标单元格总数等于 10。
表 38-10:共享资源分配方法示例:负基数选项 - 默认值
范围中的成员 基准 目标 Mbr1 3 7.5 Mbr2 #MISSING Mbr3 -1 -2.5 Mbr4 2 5.0 -
-
spread 方法在范围 (
alloc_spread_amt) 中平均分配金额。用于划分金额的数字,因此,要写入分配分配金额的目标单元格数基于范围中的有效基准值数 (#_valid_basis_values)。用于计算分配分摊金额的演算法:alloc_spread_amt = amount/#_valid_basis_values使用分摊分配方法时,可以使用可选的分摊跳过选项参数跳过范围中为零、#MISSING 或负的所有基准值。可以指定多个选项。
基准值和 Essbase 操作:
-
零值, Essbase 会将零写入相应的目标单元格。
如果将分布跳过选项设置为跳过零,则不分配任何数据。
-
#MISSING, Essbase 会将目标单元格保留为 #MISSING;或者,如果目标单元格已经具有值,则会用零覆盖现有值。
如果将分布跳过选项设置为跳过 #MISSING,则不分配任何数据。
-
负数, Essbase 使用负数基准选项设置(该设置优先于跳过选项设置,即负数)。您可以选择以下操作之一:
-
使用负基准值(默认值)
-
跳至下一个金额值(没有为当前金额值分配数据)
-
使用负数的绝对值
-
将负数视为 $MISSING(没有为目标单元格分配值)
-
将负数视为零(将零分配给目标单元格)
-
取消整个操作
-
如果已跳过所有基准值(这将使分配中的分母为零),则 Essbase 将使用零基准选项设置。请参阅设置基准。
以下示例说明了分布分配方法。在这两个示例中,要分配的金额均为 10。
在以下示例中,假定未指定分布跳过选项参数。因此, Essbase 会考虑范围中的所有四个基本成员。Essbase 将金额 (10) 除以范围 (4) 中的有效基准成员数,并将该值 (2.5) 扩散到范围中的每个目标单元格:10/4 = 2.5。
表 38-11:价差分配方法示例:不跳过基准值
范围中的成员 基准 目标 Mbr1 2 2.5 Mbr2 #MISSING 2.5 Mbr3 3 2.5 Mbr4 -6 2.5 在以下示例中,假定分布跳过选项参数设置为忽略 #MISSING 和负数。因此, Essbase 仅考虑具有正值的两个基准成员(Mbr1 和 Mbr3)。Essbase 将金额 (10) 除以范围 (2) 中的有效基准成员数,并将该值 (5) 扩散到 Mbr1 和 Mbr3 目标单元格:10/2 = 5。
表 38-12:价差分配方法示例:跳过 #MISSING 和负基准值
范围中的成员 基准 目标 Mbr1 2 5 Mbr2 #MISSING Mbr3 3 5 Mbr4 -6 -
设置舍入方法
为聚合存储 (ASO) 多维数据集设计定制分配时,可以指定舍入方法来告知 Essbase 是否舍入分配的值(默认值为不舍入)。
如果选择舍入值,则舍入方法指定如何处理舍入错误。您可以选择放弃舍入错误,或舍入所有分配的值并将总舍入错误添加到最高分配值、最低分配值或特定单元格。如果选择将舍入错误添加到最高或最低分配值,并且存在多个最高或最低分配值,则 Essbase 会选择向其添加舍入错误的最高或最低值之一。
如果选择舍入分配值,则可以使用以下参数进一步定义舍入方法:
-
(舍入已分配值时为必需)舍入位数指定已分配值舍入到的小数位数。您可以选择舍入到最接近的整数(默认值),舍入到指定的小数位数,或舍入到 10 的幂。
舍入数字必须是 -100 到 100 之间的数字,可以表示为整数、MDX 数字值表达式或元组。
当舍入位数的设置基于所分配值的货币时,使用 MDX 数字值表达式很有用。例如,假设数据库包含名为 Currency 的维(POV 的一部分)和名为 NumCurrencyDigits 的关联属性维,后者指定如何根据已分配值的货币对已分配的值进行舍入。可以将圆形数字表示为:
Currency.currentMember.NumCurrencyDigits注意:
对于舍入方法,如果选择不舍入分配的值,则舍入位数参数值必须为 0(这是默认值)。如果要舍入到 0 位数,则参数值必须为 -1。
-
(如果舍入方法设置为特定位置,则为必需)舍入到位置指定要向其添加总舍入错误的单元格。以元组形式表示,单元格必须位于范围中,并且与范围具有相同的维数。舍入到地点只能由 0 级成员组成。
注意:
对于舍入方法,如果选择除舍入到特定单元格之外的选项,则舍入到位置参数必须为空。
设置抵销
为 Essbase 聚合存储 (ASO) 多维数据集设计定制分配时,您可以根据需要指定偏移量。偏移量指定多维数据集中的位置,其中写入每个来源金额的偏移量值。
抵销对分配和自定义计算的作用相同。
余额分配
为 Essbase 聚合存储 (ASO) 多维数据集设计定制分配时,可选的 debitMember 和 creditMember 只能包含 0 级成员。
借方成员和贷方成员是可选的。如果使用,它们必须是同一维中的两个不同成员。
debitMember 和 creditMember 对分配和自定义计算的作用相同。
基准和目标时间跨度
为 Essbase 聚合存储 (ASO) 多维数据集设计定制分配时,您可以指定要为基准考虑的一个或多个时间期,以及要为目标考虑的一个或多个时间期。
为基准时间跨度和目标时间跨度指定的成员数影响 Essbase 对基准时间跨度选项和目标时间跨度选项的处理方式。
如果基准或目标时间跨度为空或设置为单个时间段,则 Essbase 会忽略您可能为各自基准或目标时间跨度选项设置的任何设置。如果一个或两个基准或目标时间跨度都设置为多个时间期间,则 Essbase 要求为各自基准或目标时间跨度选项设置特定设置。
表 38-13 汇总:基准和目标时间跨度以及基准和时间跨度选项
| 基准时间跨度 | 目标时间跨度 | 基准时间跨度选项 | 目标时间跨度选项 | 请参阅 |
|---|---|---|---|---|
| 空成员或单个成员 | 空成员或单个成员 | 已忽略 | 已忽略 | 示例 1 |
| 空成员或单个成员 | 多成员 | 已忽略 | 分隔或重复 | 示例 2 |
| 多成员 | 空成员或单个成员 | 组合 | 已忽略 | 示例 3 |
| 多成员 | 多成员 | 拆分 | 已忽略 | 示例 4 |
| 多成员 | 多成员 | 组合 | 分隔或重复 | 示例 5 |
示例 1:基准和目标时间跨度 - 空或单个成员
在此示例中,未设置基准时间跨度和目标时间跨度,或仅为一个时间期间设置基准时间跨度。Essbase 会忽略您可能为基准时间跨度选项或目标时间跨度选项选择的任何设置。
示例 2:基准时间跨度 - 空成员或单个成员;目标时间跨度 - 多个成员
在此示例中,未设置基准时间跨度,并且为目标时间跨度指定了多个时间期间。忽略基准时间跨度选项。对于目标时间跨度选项,可以选择 divide 或 repeat 。
假设金额为 1000。下面的示例显示了每个部门 (Dept_1 = 1) 的基准和范围 (21) 的合计基准:
脚注 1
成员的基础
脚注 2
范围的总基准
目标时间跨度选项的设置确定分配计算方式。
-
在指定的目标时间跨度期间重复分配的金额:
在此方案中, Essbase 执行单个期间的分配,并将分配的金额值复制到目标时间跨度中的所有成员。
算法 Essbase 使用:
alloc_amt = (basis_mbr_value/basis_total_range) * amount如下所示,对于 Dec 07,Dept_1,成员基准值 (1) 除以范围 (21) 中的总基准,结果 (0.04762) 乘以金额 (1000):(1/21) x 1000 = 47.62。Essbase 将 47.62 复制到 1 月 8 日、2 月 8 日、3 月 08 日和 4 月 8 日的单元格中。Essbase 继续为每个部门执行 12 月 7 日的分配。对于每个目标时间跨度,该范围内的已分配值之和等于金额 (1000)。
表 38-15 示例 2:“使用目标时间跨度分配”选项设置为重复
范围 Total 目标时间跨度的成员 Dept_1 Dept_2 Dept_3 Dept_4 Dept_5 Dept_6 - 12 月 7 日 47.62 95.24 142.86 190.48 238.10 285.71 1000 08 年 1 月 47.62 95.24 142.86 190.48 238.10 285.71 1000 Feb 08 47.62 95.24 142.86 190.48 238.10 285.71 1000 三月 08 47.62 95.24 142.86 190.48 238.10 285.71 1000 08 年 4 月 47.62 95.24 142.86 190.48 238.10 285.71 1000 
5000英尺 3
脚注 3
分配的总值
分配的总金额是原始金额值 (1000) 乘以目标时间跨度成员数 (5):1000 * 5 = 5000。
-
在指定的目标时间跨度期间之间划分分配的金额
在此方案中, Essbase 执行一个期间的分配,并在目标时间跨度中的所有成员之间平均分配分配金额。
算法 Essbase 使用:
alloc_amt = ((basis_mbr_value/basis_total_range) * amount)/#_target_time_span_periods如下所示,对于 Dec 07,Dept_1, Essbase 执行的计算与针对重复目标时间跨度选项方案执行的计算相同,达到 47.62。但是,此金额在 Dept_1 的所有五个目标时间跨度期间之间平均分配;因此,在每个目标单元格中写入 9.52:47.62/5 = 9.52。Essbase 继续为每个部门执行分配。对于每个目标时间跨度,该范围内的已分配值之和等于 (200)。
表 38-16 示例 2:使用“目标时间跨度”选项集进行分配
范围 Total 目标时间跨度的成员 Dept_1 Dept_2 Dept_3 Dept_4 Dept_5 Dept_6 - 12 月 7 日 9.52 19.05 28.57 38.10 47.62 57.14 200 08 年 1 月 9.52 19.05 28.57 38.10 47.62 57.14 200 Feb 08 9.52 19.05 28.57 38.10 47.62 57.14 200 三月 08 9.52 19.05 28.57 38.10 47.62 57.14 200 08 年 4 月 9.52 19.05 28.57 38.10 47.62 57.14 200 1000英尺 4
脚注 4
分配的总值
范围内分配的总值是原始金额值 (1000):200 x 5 = 1000。
示例 3:基准时间跨度 - 多个成员;目标时间跨度 - 空或单个成员
在此示例中,为基准时间跨度指定了多个时间期,但未设置目标时间跨度。将忽略目标时间跨度选项。基准时间跨度选项的唯一有效选择是 combine 。
假设金额为 1000。如下所示,要用于每个部门的基准是基准时间跨度的基准值之和(部门 1 = 15);该范围的总基准是所有部门基准值之和 (147):
表 38-17:示例 3:基本值
| 范围 | Total | ||||||
|---|---|---|---|---|---|---|---|
| 基准时间跨度的成员 | Dept_1 | Dept_2 | Dept_3 | Dept_4 | Dept_5 | Dept_6 | |
| 12 月 7 日 | 1 | 2 | 3 | 4 | 5 | 6 | |
| 08 年 1 月 | 2 | 3 | 4 | 5 | 6 | 7 | |
| Feb 08 | 3 | 4 | 5 | 0 | 7 | 8 | |
| 三月 08 | 4 | 5 | 6 | 1 | 8 | 9 | |
| 08 年 4 月 | 5 | 6 | 7 | 2 | 9 | 10 | |
| Total |
15英尺 5 |
20 | 25 | 12 | 35 | 40 |
147英尺 6 |
脚注 5
跨基准时间跨度期间求和的每个范围成员的基准
脚注 6
范围的总基准
分配是使用合并的基准时间跨度设置计算的,该设置使用基准时间跨度期间内的基准值之和。
Essbase 用于每个范围成员的算法:
alloc_amt = (sum_across_basis_time_span/basis_total_range) * amount如下所示,每个部门的已分配值将写入一个目标位置,因为目标时间跨度未设置为多个期间。对于 Dept_1 的分配金额,基准时间跨度 (15) 的总和除以范围 (147) 的总基准,结果 (0.10204) 乘以金额 (1000):(15/147) * 1000 = 102.04。Essbase 将继续为范围内的每个部门执行分配。
表 38-18 示例 3:使用设置为组合的基准时间跨度的分配
| 范围 | Total | ||||||
|---|---|---|---|---|---|---|---|
| Dept_1 | Dept_2 | Dept_3 | Dept_4 | Dept_5 | Dept_6 | ||
| 目标 | 102.04 | 136.05 | 170.07 | 81.63 | 238.10 | 272.11 |
1000英尺 7 |
脚注 7
分配的总值
范围内分配的总值是原始金额值 (1000)。
示例 4:基准和目标时间跨度 - 多个成员;基准时间跨度选项 - 分割
在此示例中,为基础时间跨度和目标时间跨度指定了多个时间期,并且基础时间跨度选项设置为拆分。当使用拆分基础时间跨度选项时,基础时间跨度和目标时间跨度指定的期间必须相同。
假设金额为 1000。如下所示,该范围的总基准是所有部门基准值的总和 (165):
表 38-19 示例 4:基本值
| 范围 | Total | ||||||
|---|---|---|---|---|---|---|---|
| 基准时间跨度的成员 | Dept_1 | Dept_2 | Dept_3 | Dept_4 | Dept_5 | Dept_6 | |
| 12 月 7 日 | 1 | 2 | 3 | 4 | 5 | 6 |
21英尺 8 |
| 08 年 1 月 | 2 | 3 | 4 | 5 | 6 | 7 | 27 |
| Feb 08 | 3 | 4 | 5 | 6 | 7 | 8 | 33 |
| 三月 08 | 4 | 5 | 6 | 1 | 8 | 9 | 39 |
| 08 年 4 月 | 5 | 6 | 7 | 2 | 9 | 10 | 45 |
|
165英尺 9 |
|||||||
脚注 8
每个基准时间跨度期间的总基准
脚注 9
范围的总基准
分配是使用分割的基准时间跨度设置计算的,该设置分别使用每个时间期的基准值。
算法 Essbase 使用:
alloc_amt = (basis_mbr_value/basis_total_range) * amount如下所示,对于 Dec 07,Dept_1,成员基准值 (1) 除以范围 (165) 的总基准,结果 (0.00606) 乘以金额 (1000):(1/165) * 1000 = 6.06。Essbase 将继续为每个部门的每个时间期执行分配。
表 38-20 示例 4:使用设置为拆分的基准时间跨度的分配
| 范围 | Total | ||||||
|---|---|---|---|---|---|---|---|
| 目标时间跨度的成员 | Dept_1 | Dept_2 | Dept_3 | Dept_4 | Dept_5 | Dept_6 | |
| 12 月 7 日 | 6.06 | 12.12 | 18.18 | 24.24 | 30.30 | 36.36 | 127.27 |
| 08 年 1 月 | 12.12 | 18.18 | 24.24 | 30.30 | 36.36 | 42.42 | 163.64 |
| Feb 08 | 18.18 | 24.24 | 30.30 | 36.36 | 42.42 | 48.48 | 200.00 |
| 三月 08 | 24.24 | 30.30 | 36.36 | 42.42 | 48.48 | 54.55 | 236.36 |
| 08 年 4 月 | 30.30 | 36.36 | 42.42 | 48.48 | 54.55 | 60.61 | 272.73 |
|
1000英尺 10 |
|||||||
脚注 10
分配的总值
范围内分配的总值是原始金额值 (1000)。
示例 5:基准和目标时间跨度 - 多个成员;基准时间跨度选项 - 组合
在此示例中,为基准和目标时间跨度指定了多个时间期;但是,由于基准时间跨度选项设置为 combine ,因此基准时间和目标时间跨度不需要包含相同的成员集。
假设金额为 1000。如下所示,用于每个部门的基准是基准时间跨度 (Dept_1 = 10) 的基准值之和;该范围的基础是所有部门基准值之和 (113):
表 38-21 示例 5:基本值
| 范围 | Total | ||||||
|---|---|---|---|---|---|---|---|
| 基准时间跨度的成员 | Dept_1 | Dept_2 | Dept_3 | Dept_4 | Dept_5 | Dept_6 | |
| 12 月 7 日 | 1 | 2 | 3 | 4 | 5 | 6 | |
| 08 年 1 月 | 2 | 3 | 4 | 5 | 6 | 7 | |
| Feb 08 | 3 | 4 | 5 | 6 | 7 | 8 | |
| 三月 08 | 4 | 5 | 6 | 0 | 8 | 9 | |
|
Total |
10英尺 11 |
14 | 18 | 15 | 26 | 30 |
113英尺 12 |
脚注 11
跨基准时间跨度期间求和的每个范围成员的基准
脚注 12
范围的总基准
目标时间跨度选项的设置确定分配计算方式。
-
在指定的目标期间重复分配的金额:
在此方案中, Essbase 执行单个期间的分配,并将分配的金额值复制到目标时间跨度中的所有成员。
Essbase 用于每个范围成员的算法:
alloc_amt = (sum_across_basis_time_span/basis_total_range) * amount如下所示,对于 Dec 07,Dept_1,Dept_1 (10) 的基准除以范围 (113) 的总基准,结果 (0.0885) 乘以金额 (1000):(10/113) * 1000 = 88.50。Essbase 将 88.50 复制到 1 月 8 日、2 月 8 日、3 月 08 日和 4 月 8 日的单元格中。Essbase 继续为每个部门执行 12 月 7 日的分配。对于每个目标时间跨度,该范围内的已分配值之和等于金额 (1000)。
表 38-22 示例 5:“使用目标时间跨度分配”选项设置为重复
范围 Total 目标时间跨度的成员 Dept_1 Dept_2 Dept_3 Dept_4 Dept_5 Dept_6 12 月 7 日 88.50 123.89 159.29 132.74 230.09 265.49 1000 08 年 1 月 88.50 123.89 159.29 132.74 230.09 265.49 1000 Feb 08 88.50 123.89 159.29 132.74 230.09 265.49 1000 三月 08 88.50 123.89 159.29 132.74 230.09 265.49 1000 08 年 4 月 88.50 123.89 159.29 132.74 230.09 265.49 1000 
5000英尺 13
脚注 13
分配的总值
分配的总值是原始金额值 (1000) 乘以目标时间跨度成员数 (5):1000 * 5 = 5000。
-
将分配的金额除以指定的目标期间:
在此方案中, Essbase 执行单个期间的分配,并在目标时间跨度中的所有成员之间平均分配分配金额。
算法 Essbase 使用:
alloc_amt = ((basis_time_span/basis_total_range) * amount)/#_target_time_span_periods如下所示, Essbase 执行的计算与针对重复目标时间跨度选项方案所述的计算结果相同,达到 88.50。但是,此金额在 Dept_1 的所有五个目标时间跨度期间之间平均分配;因此,在每个目标单元格中写入 17.70:88.50/5 = 17.70。Essbase 继续为每个部门执行分配。对于每个目标时间跨度,该范围内的已分配值之和等于 (200)。
表 38-23 示例 5:“使用目标时间跨度选项进行分配”设置为“除”
范围 Total 目标时间跨度的成员 Dept_1 Dept_2 Dept_3 Dept_4 Dept_5 Dept_6 12 月 7 日 17.70 24.78 31.86 26.55 46.02 53.10 200 08 年 1 月 17.70 24.78 31.86 26.55 46.02 53.10 200 Feb 08 17.70 24.78 31.86 26.55 46.02 53.10 200 三月 08 17.70 24.78 31.86 26.55 46.02 53.10 200 08 年 4 月 17.70 24.78 31.86 26.55 46.02 53.10 200 
1000英尺 14
脚注 14
分配的总值
范围内分配的总值是原始金额值 (1000):200 x 5 = 1000。
聚合存储分配的示例
以下示例说明更改 POV 组合如何影响被视为分配基准的值。此示例使用共享资源分配方法,根据每个成本中心的人数将上一年度的总租金分配给本年度的所有成本中心。假设聚合存储数据库具有四个维 - 部门、时间、CostCenter 和度量,并且分配标准按以下示例中所示指定:
表 38-24 POV 示例:分配标准
| 标准 | 定义 |
|---|---|
| POV | 部门 _A、部门 _B |
| Amount |
2007 年,CCNA,TotalRent 假设金额值为:
|
| 基准 | 2008 年 1 月,人数 |
| 目标 | 2008 年 1 月,租赁分配 |
| 范围 | CostCenter 的 0 级子代
假设范围评估为以下成本中心:
|
将为每个 POV 组合执行分配:
-
部门 A
-
部门 _B
每个 POV 组合都有自己的一组基准值,用于计算分配:范围中每个成本中心的人数和 2008 年 1 月的总人数,如以下示例所示:
表 38-25 POV 示例:每个 POV 组合的基准值
| 成员基准值 | 范围基准值 | ||||
|---|---|---|---|---|---|
| POV | CostCenter1 | CostCenter2 | CostCenter3 | CostCenter4 | 2008 人数合计 |
| 部门 A | 1 | 2 | 3 | 5 | 11 |
| 部门 _B | 5 | 0 | 10 | 15 | |
对于每个 POV, Essbase 会将每个成本中心的人数(每个成员的基准值)除以范围的总人数(范围的基准值),然后将该值乘以每个部门的租金总额(金额)。例如,对于 Dept_A、CostCenter1,成员基准值 (1) 除以范围 (11) 的基准,结果 (0.09090909) 乘以金额 (1000):(1/11) * 1000 = 90.90909。对于 Dept_B,CostCenter1,分配金额为 666.6667:(5/15) * 2000 = 666.6667。以下示例显示了每个成本中心的已分配份额金额:
表 38-26 POV 示例:每个 POV 组合的目标值
| 成员目标值 | 金额值 | ||||
|---|---|---|---|---|---|
| POV | CostCenter1 | CostCenter2 | CostCenter3 | CostCenter4 | 租赁分配合计 |
| 部门 A | 90.90909 | 181.8182 | 272.7273 | 454.5455 | 1000 |
| 部门 _B | 666.6667 | 0 | 1333.333 | 2000 | |
聚合存储分配的示例用例
此 Essbase 聚合存储 (ASO) 多维数据集上的自定义分配的示例用例使用共享资源分配方法,根据每个部门占用的平方英尺数,按比例在各个部门之间重新分配每月总租金费用。
考虑具有以下维的大纲:
-
公司:包含多个分类账。租金费用分配将在 Vision US 分类账中进行。
-
Department(部门):包含以下成员:
-
100,用于存储 Vision US 的每月总租金费用 100,000 美元。此金额按比例分配给部门 999 的子项。
-
999,是以下部门的父级:
-
101,获得租金分配的 45%
-
102,获得租金分配的 30%
-
103,获得租金分配的 25%
-
-
-
帐户:包含以下成员:
-
5740,这是租金费用科目
-
SQFT,用于记录每个部门的平方英尺数的统计帐户
-
-
AmountType :包含 PeriodActivty,它是以下成员的父代:
-
PeriodActivityDebit,这是目标位置
-
PeriodActivityCredit,即偏移位置
-
您可以通过多种方式完成租金费用分配,每种方式的结果都相同。提出了两个方案。对于每个方案,假定定义了以下参数如下:
-
分配方法:共享
-
范围:部门 999 的后代:
-
101
-
102
-
103
不会排除范围中的单元格。
-
-
基准:活动期间(每月)的每个范围成员的平方英尺数。
SQFT,PeriodActivity -
零金额选项:(默认)分配零金额值。
-
零基准选项:如果基准值为零,则取消分配操作。
-
基准时间跨度选项:(默认)拆分,分别为每个时间期使用基准值。
-
舍入方法:将分配值舍入到最接近的 1,000,并将总舍入错误添加到部门 101。
-
借记成员:如果总和为正,则将值写入 PeriodActivityDebit。
-
信用成员:将值写入 PeriodActivityCredit。
方案 1:聚合存储分配
对于方案 1,假定以下参数定义如下:
-
POV :由“公司”维中的一个成员 Vision US 组成。
由于仅指定一个维中的一个成员,因此 POV 不会更改,因此只执行一次分配。
-
金额:分配的来源值来自以下跨维成员:
5740,100,Beginning Balance -
目标:将分配的值写入每个部门的帐户 5740。
-
偏移:将偏移条目写入成员 5740,100。
方案 2:聚合存储分配
对于方案 2,假定以下参数定义如下:
-
POV :由两个维中的每个成员组成:
-
Vision US,从公司维度
-
5740,来自金额维
在此方案中,帐户 5740 是 POV 的一部分。在此基础上,帐户 5740 被成员 SQFT 覆盖。
由于每个维中仅指定一个成员,因此 POV 不会更改,因此只执行一次分配。
-
-
金额:分配的来源值来自以下跨维成员:
100,Beginning Balance -
目标:未设置。由于 POV、目标、借方成员/贷方成员和范围的组合使用来自所有维的成员,因此目标可以为空。
-
偏移量:将偏移量条目写入部门 100。
数据一致性和公式
为 Essbase 聚合存储 (ASO) 多维数据集设计定制分配时,可以按金额和基准使用公式,但不能在目标中使用。但是,由于 ASO 多维数据集不支持事务处理语义,因此在金额或基准中使用公式成员时,可能会遇到数据不一致问题。
在以下示例中,用户 1 过帐一组部门的收入值,用户 2 执行奖金分配,每个部门的年初至今收入是分配的基础。执行这些操作的顺序会影响结果:
-
方案 1:用户 1 在用户 2 运行分配之前发布收入。
分配结果基于更新的收入值。
-
方案 2:用户 2 在用户 1 发布收入之前运行分配。
分配结果基于以前的收入值,而不是更新的收入值。
-
方案 3:用户 1 过帐收入,用户 2 并行运行分配。
分配结果基于更新的或以前的收入值,具体取决于首先启动的用户操作。
在金额或基准中使用公式成员时,Oracle 不建议同时运行这些操作。
此外,假设使用 MDX 公式来计算分配的年初至今收入。公式的复杂性会影响结果:
-
方案 4:年初至今收入公式涉及一个维中的成员,并且仅使用以下算术表达式:+、-、/ 和 *。
分配结果完全基于更新的或以前的收入值。
Oracle 建议使用简单的 MDX 公式,如方案 4 中所述。
-
方案 5:年初至今收入公式比方案 4 中的公式复杂。
某些分配结果可能基于更新的收入值,而某些结果基于以前的收入值。