有人可以解释以下 Essbase 代码:FIX,@relative

Can someone explain the following Essbase code: FIX, @relative

有人可以向我解释一下下面的 Essbase 代码吗?这是我第一次查看任何 Essbase 代码,我对它实际在做什么感到有点困惑。

FIX(&Mth, &Yr, &Version,
        "Sector1","Sector2", @relative("Source Code",0), @relative("Channel", 0) )
    FIX("AccountNo","DepNo")

    DATACOPY "1A11"->"A-500" TO "1BCD"->"C-800"; 

    ENDFIX
ENDFIX

根据我的谷歌搜索,以下是我的理解:

  1. 创建一个新的命令块,将数据库计算限制在这个子集中。

  2. 将以下成员传递到要使用的命令中:

    • 版本
  3. Returns以下字段:

    • 扇区 1
    • 扇区2
    • returns源代码成员的0级成员-意思是returns没有children的总源代码成员(没有其他维度)
    • returnsChannel成员的0级成员——意思是returns没有children的Channel成员(没有其他维度)
  4. 开始一个新的命令块并将以下成员传递到要使用的命令中:

    • 账号
    • 部门编号
  5. 将单元格范围 1A11、A-500 复制到范围 1BCD、C-800

以上是我从oracle文档中对每个函数的理解,但我实在想不通到底是怎么回事。

欢迎来到 Essbase 的世界;起初可能有点令人生畏,特别是如果您不熟悉多维概念。关于分析您的 calc 脚本,您走在正确的轨道上。

尽量不要将 FIX 语句本身视为命令块。 FIX 用于 select 立方体中的一部分单元格。多维数据集中的每一段数据都有一个特定的地址,该地址由来自每个维度的一个成员加上实际数据值本身组成。例如,具有维度时间、年份、场景和位置的多维数据集可能在 Jan->2018->Actual->Washington 处有一段特定的数据。多维数据集中可能的数据排列数量很快就会变得非常大。例如,如果您的组织有 4 年的数据、一年 12 个月、100 个位置、10000 个帐户、3 个版本和 10 个部门,那么您说的是 4 * 12 * 100 * 10000 * 3 * 10 = 1.4十亿个不同的潜在数据地址(单元格)——这对于立方体来说实际上相当小,因为它们往往会变得更大。

也就是说,FIX 语句用于缩小计算操作的范围,而不是对整个立方体(我假设的示例中的所有 14 亿个单元格)进行操作,FIX本质上将计算限制在符合您指定的特定条件的单元格中。在这种情况下,第一个 FIX 语句将计算限制在特定的月份、年份、版本、部门、来源和渠道。请注意 MthYrVersion 上的 & 符号表示将使用替换变量。这意味着您的服务器或多维数据集有一个替换变量值集,例如变量 Mth = "Jan"Yr = "FY2018" 并且版本可能是 "Working""Final" 或类似的东西。我猜 Sector1 和 Sector2 可能是来自同一维度的两个不同成员。 @RELATIVE("Source Code", 0)是查找指定成员的0级成员(维度中的leaf/bottom-level成员,即没有下级子成员的成员)的函数。

换句话说,第一个 FIX 语句将计算范围缩小到特定版本中特定年份的特定月份(而不是所有月份、所有年份、所有版本),并且针对该特定版本month/year/version(对于 Sector1 或 Sector2)它固定在源代码和通道维度中的所有 level-0/bottom/leaf 成员上。

除了外部 FIX 之外,下一个 FIX 语句进一步缩小了要计算的当前单元格范围。像这样嵌套的 FIX 语句并不少见。

最后我们到了实际发生的部分:DATACOPY。在给定的 FIX 上下文中,此 DATACOPY 命令表示对于当前 FIX 中的每个单元格,将值从源复制到目标。当 DATACOPY "Source" TO "Target" 而不是使用维间运算符 (->) 时,DATACOPY 更直接一些...但这可能更容易理解 time/year 维度。例如,假设数据副本是这样写的:

DATACOPY "FY2018"->"Dec" TO "FY2019"->"Jan";

在此 DATACOPY 中,我将告诉 Essbase 对于给定的 FIX 上下文,我想复制年末的值(年份为 FY2018 且月份为 Dec 的数据值)到年初下一年(年份为 FY2019 且月份为 Jan 的数据值)。您的 DATACOPY 以类似的方式工作,但使用成本中心或其他方式。这完全取决于多维数据集的设置方式。