TGKML 脚本的结构与定义
一个 TGKML 脚本:
- 始终以关键字 “TGKML 1.0” 开头;
- 可以包含一条或多条赋值指令。每条赋值以字符 ';' 结尾;
- 可以包含一条或多条注释,由置于行首的 // 符号标识。// 符号之后到行尾的任何字符都会被忽略。注释可以插入脚本中的任何位置。
TGKML 1.0
/ / 注释 1
/ / 注释 2
赋值 1;
/ / 注释 3
赋值 2;
赋值 3;
...
赋值 No;
一条赋值可以表示:
通常,TGKML 脚本的语法始终为以下类型:
赋值的左侧输出部分包含保存 TGKML 脚本结果的位置指示,其语法类型为 [output_cube].[output_account] (Dimension.Filter([...]) , Dest#.[...] , ... , ....)。例如,我们可以有 [LO].[X00000](Entity.Filter([A00]), Dest1.[GEN]),表示脚本结果保存在原始金额表(DATA_SALDI_LORDI)上、科目 X00000 上、实体 A00 上以及自定义维度 1 的元素 GEN1 上。所有其他必要的维度取自赋值的右侧输入。
赋值的右侧输入基本上包含计算算法,其语法类型为 [input_cube].[input_account] (Dimension.Filter([...]) , Dest#.[...] , ... , ....)。例如,我们可以有 [LO].[C00000](Entity.Filter([A00]), Dest1.[GEN])。
显然,上述语法是典型的最简单情况,因为可以使用多个科目(物理和临时)与代数或布尔运算符组合。
在输入规范中,不仅可以引用科目或科目节点,还可以引用属于财务报表模板的、仅依赖于“科目”维度的“Parent”项。
在右侧输入部分,如果多维数据集与左侧输出部分中指定的相同,则可以省略多维数据集的指示。
在 TGKML 脚本的语法中,可以使用:
- 比较运算符 <, >, <=, >=, <>, ==
- 布尔表达式,例如
- Scenario like '%BDG'。请注意,字符串必须出现在双引号之间
- Period == "12"
- Cust Dim2 <> "GEN"
- 算术运算符 +, -, *, /, ^
- 数字。这些必须使用点作为整数部分和小数部分之间的分隔符。可以使用指数表示法,即写 1e4 而不是 10000
以下是在语法中指定维度的单个元素或层次结构节点时要使用的约定:
- [元素代码] 以指示某个维度的单个元素(例如 [A00]);
- [层次代码|节点代码] 以指示聚合结构的节点(例如 [01|$]);
- All 以指示给定维度的所有元素(例如 Cust Dim1. All 以指示自定义维度 1 的所有元素)。
- {
, 、{- }
、' - '}, {
;{,' - '}
,[ :以指示财务报表模板中的一个项- ]}
-
有两种方式定义 FST 项的输入/输出规范:
-
Multi({
, - },
) 例如 Multi({ , - }, Dimension.Filter([...])
- },
- {
, - ,
} 例如 { , - , Dimension.Filter([...])}
- ,
当 FST 项的代码包含 '-' 字符时(例如 ITEM-001),必须使用语法 {
在输入部分内,可以组合维度的节点和单个元素(例如写 [01|$]、[A00])
定义 TGKML 脚本¶
要定义 TGKML 脚本,必须:
- 创建一个“Multi Dim. Script”类型的计算逻辑(有关更多详细信息,请参阅 计算逻辑);
- 双击新创建的逻辑。
系统打开多维脚本窗口。

该窗口分为三个部分:
- (1) - 选择区域。它位于窗口左侧,用于(通过双击)选择要插入脚本中的元素和/或节点。在此区域中,系统显示给定维度的所有现有元素。具体而言,系统显示一种树,其节点为:
- 第一个虚拟节点 'Elements',包含元素列表中存在的该维度的所有元素,按代码排序;
- 如果该维度包含层次类型聚合结构,则为该维度定义的每个层次对应一个节点,否则为单个 Grouping 节点。在每个此类节点下,系统复制层次和/或分组的结构。
各个节点由图标标识,单个元素由
.
- 当要显示的元素数量非常多时(通常超过 50),为了改善元素的显示和选择,系统会创建由图标标识的虚拟节点
。此类节点不能在定义步骤中使用;
- 可以通过在选择区域中导航树,或使用对元素/节点的代码和/或描述的文本搜索功能来进行选择。可以使用
图标(系统用于分页树元素的虚拟节点除外)在给定树节点上执行搜索。搜索结果会显示在一个网格中,可以从中选择一个或多个项。 - (1) - 脚本。它包含用于输入 TGKML 脚本语法的区域,以及一系列按钮,允许您:
通过从文本文件导入来插入 TGKML 脚本;
将脚本保存到用户计算机上的文本文件;
在出现错误时恢复之前的状态;重复上一个操作;
执行检查以验证脚本语法的正确性。系统在底部显示此检查的结果;
保存脚本并同时生成展开表(有关这些表内容的更多详细信息,请参阅 计算逻辑展开)。
此区域包含一个额外的 'Display as decoded' 选项卡,它显示脚本以及每个维度元素及其描述
- (3) 包含可在 TGKML 脚本中使用的所有维度 / 函数 / 多维数据集 / 对象。