自定义动因公式示例

自定义动因公式示例采用以下值:

  • 阶段 1 维:GL_Department x GL_Account

  • 阶段 2 维:ACT_Department x ACT_Activity

Oracle Hyperion Profitability and Cost Management 中的计算脚本生成过程将为任何使用自定义动因的源插入为此动因定义的脚本。系统生成的脚本将创建 FIX 语句来精确定位由附加到源的分配逻辑定义的源和目标组合。

自定义动因脚本不需要提供此 FIX,但可以使用此 FIX,或者修改此 FIX 来引用特定位置中的数据,这些位置不同于通常为 DestinationSourceAssignmentGlobal 度量位置定义的位置。

自定义动因的一项常见用法是利用其引用四个正常位置之外的其他位置中存储的数据;这样用户可以在层次中的较高级别或较少几个交叉点中输入动因度量。

CalculatedDriverValue 度量计算的默认 FIX 语句反映了源和目标之间的链接关系。下文使用示例阶段,显示了由系统生成的脚本创建的 FIX:

GL_Department.member x GL_Account.member x ACT_Department.member x ACT_Activity.member

其中,每个维的维成员反映了要执行的分配的源交叉点和目标交叉点。

以下示例将修改此默认 FIX,使其从其他位置检索动因度量。请记住,如果默认 FIX 引用的成员适合需要,则不必覆盖它。

示例 1:仅引用某个目标维(在此示例中为 ACT_Department)与其他维的 NoMember 交叉处的动因度量

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember] ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

当整个部门存在单个动因值(例如平方英尺、米或人数)时使用此公式。

示例 2:引用某个目标维的父代与其他维的 NoMember 交叉处的动因度量:

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember]"->"(@PARENT(ACT_Department)" ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

或者,您也可以使用 @ANCSET 函数引用要从中检索值的祖先的层代。在此示例中,动因从目标的 "Department" 成员的第 2 代祖先中提取 "DriverMeasure" 值:

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember]"->"(@ANCEST(ACT_Department, 2)" ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

其他常见用法是使动因值计算符合源/目标组合本身的性质。此方式允许动因基于分配所涉及的交叉点的特性,适当调整以适应特定情况。

示例 3:引用其他度量,以便基于一个目标成员的 UDA 进行动因计算:

IF(@ISUDA(Activity,"UDA1"))

"CalculatedDriverValue" = {Measure1->Destination};

ELSE IF (@ISUDA(Activity,"UDA2"))

"CalculatedDriverValue" = {Measure2->Destination};

ELSE IF (@ISUDA(Activity,"UDA3"))

"CalculatedDriverValue" = {Measure3->Destination};

ENDIF;

如果需要使动因公式基于目标的特性(如产品外形因素或客户类别)。请注意,示例 ‘{Measure1->Destination}’ 中的语法与通常的 Oracle Essbase 计算脚本语法不一样。大括号 ({ }) 用于使 Profitability and Cost Management 解释 ‘->Destination’ 简写并将其替换为实际的定位目标。将脚本部署到 Essbase 后,Profitability 会插入正确的成员引用和语法。