跳转至

Calculation logics(中文)

概述

通过计算逻辑,用户能够将科目作为基于其他科目的公式进行评估,并将结果存储到 Tagetik 应用程序数据库中。

根据要执行的计算类型,计算逻辑可以区分如下:

  • 标准逻辑。用于将科目估值为其他科目的总和(或差)。它们通常用于将科目计算为其明细(或变动)的代数和,具有在维度明细上操作的基本可能性,以及在相同场景/期间上操作;
  • 自定义多维计算逻辑。当必须执行高级非线性操作时使用(例如将两个科目相乘或相除、复杂公式),当因子和(或结果)需要在不同场景/期间中读取(写入)时(例如从先前场景读取),或在维度上操作时(例如在要读取或写入的维度上捆绑数据、从固定点读取或覆盖给定维度上的输出元素)。

在两种情况下,计算逻辑都需要分类为属于以下类型之一:

  • 基本计算逻辑;所有系统生成的逻辑都创建为基本。系统逻辑是与结果科目控制组、插补科目相关的逻辑,以及将科目总金额计算为其公司间申报之和的那些逻辑。
  • 其他计算逻辑;用户定义的逻辑可以创建为基本其他

基本其他之间的唯一区别是它们在原始场景数据处理中计算的顺序:首先处理类型为基本的逻辑,然后处理类型为其他的逻辑。因此,在原始场景上运行时,属于其他类型的计算逻辑能够读取基本计算逻辑的结果,但反之则不行。

在合并场景上运行时,类型属性被忽略:所有逻辑根据计算逻辑图(在流程设置中)中标识的排序进行处理,并且它们能够读取先前逻辑生成的数据,无论其类型如何。

系统生成的逻辑以 $(控制组)、$PL 和 $BS(结果科目)、$L(插补科目)和 $IC(总金额上的 IC)开头的代码标记。系统生成的逻辑在其配置中不能修改,但控制组生成的逻辑除外,其中可以添加维度规范(筛选器、固定点和覆盖)。

数据处理主页点击科目计算会打开一个上下文菜单,包含以下元素:

  • 列表,打开计算逻辑元素管理屏幕;
  • 分组,打开计算逻辑分组结构管理屏幕。

计算逻辑列表

此屏幕列出所有已定义的计算逻辑,允许删除、修改或添加新逻辑。在右侧窗格中,根据逻辑设置,分组显示逻辑属性筛选器和覆盖、分组关系信息

属性窗格

每个计算逻辑由以下属性定义:

  • 代码(Code);必填,这是规则的唯一 ID。仅允许使用 ISO LATIN 类型的字符。最大允许长度为 30 个字符,不能以 $ 开头(保留给系统生成的逻辑)。
  • 所有受管理语言下的描述(Description),管理语言为必填
  • 计算类型(Calculation type)。必填,可能的类型有:
  • 求和(Sum)。输出科目计算为其他科目(输入科目)的代数和。可以通过定义适当的筛选器来限制要运行的数据集;
  • 自定义 MD。允许通过自定义脚本(TGKML Tagetik 语法)获取一个或多个计算科目。与执行带系数的简单加数求和的"求和"逻辑不同,自定义多维逻辑允许执行将输入科目组合到高级公式和逻辑中的计算,利用从 OLAP 分析(MDX)中采用的维度操作方法。计算脚本必须输入到逻辑的公式(Formula)属性中;
  • 毛额上的 IC(IC on Gross amount)。允许将一个或多个科目(包括输出科目)的 IC 数据之和计算为输出科目的毛额。

无论在科目表中是否启用了毛额等于 IC 之和(Gross amount equal to the IC sum)选项,运行从 IC 生成毛额公式(Generate Gross amounts formulas from IC)部署都会自动创建计算逻辑,这些逻辑根据同一科目的 IC 数据定义该科目的毛额数据。

  • 毛额上的净额(Net on Gross amount)。允许将一个或多个科目(输出科目除外)的净额数据(毛额数据 - IC 数据)之和计算为输出科目的毛额。
  • 基本计算逻辑(Basic calculation logic)标志,用于将逻辑标记为基本逻辑。
  • 覆盖顺序(Override sequence)字段,允许指定计算逻辑的运行顺序。对于每个数据收集流程,启用的计算逻辑根据其顺序号执行:共享相同顺序号的所有逻辑的执行顺序由系统根据它们之间的相互依赖关系自动确定(即根据每个逻辑的输入和输出科目)。基于顺序号和依赖关系得出的排序在流程部署期间自动创建,并可在流程配置中查看。尽管通常不需要也不建议覆盖计算顺序,因为它可能影响性能,但当输入和输出科目识别出虚假的循环依赖关系时,这可能很有用。有关更多详细信息,请参阅用户手册。有关系统如何定义依赖关系图的更多详细信息,请参阅启用计算逻辑运行。

  • 在原始场景上运行(Run on original scenarios)。此属性定义何时在原始场景上运行计算逻辑;可能的值为:

  • 否(No)。计算逻辑不会运行。
  • 自动和提交(Automatic and Submission)。逻辑随公式(基本或其他)数据处理自动运行,并作为流程步骤提交的一部分运行。
  • 自动(Automatic)。逻辑随公式(基本或其他)数据处理自动运行。
  • 按需(On demand)。逻辑仅通过数据录入表单或 ETL 手动运行(参见用户工具)。
  • 在合并场景上运行(Run on consolidation scenarios)。此属性定义何时在合并场景上运行计算逻辑;可能的值为:

  • 否(No)。计算逻辑不会运行。

  • 自动(Automatic)。逻辑随公式(基本或其他)数据处理自动运行。
  • 按需(On demand)。逻辑仅通过数据录入表单或 ETL 手动运行(参见用户工具)。

这些执行选项可以被流程覆盖,以便每个流程具有不同的运行策略(有关更多详细信息,请参阅流程配置)。

当计算类型为求和(Sum)毛额上的 IC(IC on Gross amount)毛额上的净额(Net on Gross amount)时,属性窗格会显示计算详细信息(Calculation Details)部分,可以在其中定义以下属性:

  • 输入详细信息(Input details)
  • 输出科目(Output account),定义写入计算逻辑结果的科目。
  • 在毛额上运行(Run on gross amounts)。启用后,计算逻辑读取和写入毛额。启用此选项会锁定输出科目的毛额数据录入:这可以被流程覆盖(有关更多详细信息,请参阅流程配置)。
  • 在 IC 金额上运行(Run on IC amounts)。启用后,计算逻辑读取和写入 IC 金额。启用此选项会锁定输出科目的 IC 金额数据录入:这可以被流程覆盖(有关更多详细信息,请参阅流程配置)。只有在同时计算毛额时才能对 IC 金额运行。
  • 在日记账上运行(Run on journals)。启用后,计算逻辑读取和写入日记账。启用此选项会锁定输出科目的日记账数据录入。此外,在日记账上运行时,可以指定以下属性:

  • 在日记账上补偿实体(Compensate Entities on journals)。 启用此选项后,损益结果计算为所有其他正常科目之和的相反数,在实体日记账上进行补偿,以避免在成本/收入抵销分录中系统生成两行符号相反的损益净结果(仅适用于基本逻辑类型);

  • 在日记账上保留 CTP(Keep CTP on journals):启用后,会考虑输入科目交易对手的详细信息。

当计算类型为自定义 MD(Custom MD)时,属性窗格不显示计算详细信息部分,而是显示公式(Formula)字段,用于编写 MD 脚本。保存时系统会检查脚本语法。

筛选器和覆盖窗格

筛选器和覆盖(Filters and Overrides)窗格仅适用于求和(Sum)类型的计算逻辑,允许通过维度规范来详细定义逻辑,例如:

  • 对维度进行筛选
  • 强制将结果写入给定的维度元素,而不考虑输入

覆盖通过在覆盖(Override)下拉框中选择维度元素来定义,而筛选器则通过在筛选器(Filter)文本区域中输入 CodeSet 来指定。保存时系统会检查脚本语法。

有关如何定义 CodeSet 以及筛选器和覆盖如何工作的更多详细信息,请参阅定义带维度规范的"求和"计算逻辑。

实体维度不接受覆盖。

类别维度仅在规则不在日记账上运行时才接受覆盖。

关系窗格

关系(Relationship)窗格中,可以将所选逻辑与分组节点关联。可以将同一逻辑分组到不同的节点。

系统逻辑信息窗格

如果所选逻辑是系统逻辑,则会显示系统逻辑信息(System logic info)窗格。此窗格详细说明系统逻辑的来源。

可能的系统逻辑有:

  • 控制组(Control Group)生成的逻辑;在这种情况下,窗格显示源控制组代码以及直接访问控制组管理屏幕的链接。
  • 插补科目(Plug account)生成的逻辑;在这种情况下,窗格显示直接访问 IC 抵销规则管理屏幕的链接,插补科目在该屏幕中定义。
  • 毛额上的 IC(IC on gross amount)生成的逻辑;在这种情况下,窗格显示直接访问科目管理屏幕的链接,该设置在该屏幕中定义。
  • 结果科目(Result account)生成的逻辑;在这种情况下,窗格显示源结果科目集代码以及直接访问结果科目管理屏幕的链接。

有关上述各项的更多详细信息,请参阅用户手册的相关章节。

计算逻辑,输入详细信息

通过计算逻辑元素管理屏幕属性窗格中的链接,可以访问输入详细信息(Input details)管理屏幕,并为所选计算逻辑定义输入科目。

此屏幕列出所有输入科目,允许删除、修改或添加新科目。右侧窗格中分组显示定义每个输入的属性(Attributes),如下所示:

  • 输入科目(Input Account);可以是单个科目或层次节点:在这种情况下,与该节点相关的所有科目(任意层级)都会作为输入科目添加。
  • 加成(Markup);指定对所选输入科目(或节点)求和时要应用的加成。

根据计算逻辑设置,且仅在逻辑类型为求和(Sum)时,可用维度分为两个部分:筛选器(Filters)固定点(Fixed Points)

  • 筛选器部分(Filters section)分组显示当前逻辑未指定覆盖的所有维度:对给定维度上的输入科目进行筛选,仅从筛选器标识的维度元素读取该科目。
  • 固定点部分(Fixed Point section)分组显示已设置覆盖的所有维度:定义固定点强制从指定的维度元素(或节点)读取输入,而不考虑执行筛选器和表头筛选器(即从固定点读取可以读取执行筛选器之外的数据)。

筛选器和固定点通过在相关文本区域中输入 CodeSet 来指定。保存时系统会检查脚本语法。有关如何定义 CodeSet 的更多详细信息,请参阅定义带维度规范的"求和"计算逻辑。

输入详细信息,定义结果

保存时,输入定义会自动部署,输入和输出科目的完整列表可通过输入详细信息管理屏幕中的定义结果(Definition Results)超链接获取。

输入和输出科目与其读取(或写入)的"多维数据集"一起列出:有关可用多维数据集类型的更多详细信息,请参阅多维数据集和维度。

输入和输出科目用于识别计算逻辑之间的依赖关系。

依赖关系在共享相同顺序号的规则内自动识别,仅考虑每个计算逻辑的输入和输出科目,而不考虑维度规范。这可能导致虚假依赖关系,可以通过手动指定正确的顺序(覆盖顺序(Override sequence)属性)来解决。

分组

计算逻辑通过分组类型的聚合结构进行管理。

CCH Tagetik 提供预定义的聚合节点(代码为 $),然后可以根据任何特定需求使用附加节点自定义分组结构。如果需要,可以将多个节点标记为新逻辑的默认关系:这将自动将新定义的逻辑关联到这些节点。

分组节点的典型用途是标记需要在不同流程中执行的不同逻辑(例如计划逻辑、合并逻辑等)。

有关管理聚合结构的更多详细信息,请参阅聚合结构