实账户与临时账户
当需要定义非常复杂的 TGKML 脚本时,将其定义细分为多个步骤被认为是最佳实践。这种"分而治之"的方法通过临时科目来实现。临时科目与 Tagetik 科目表中存在的物理科目不同,仅在定义它的脚本中可用。
用于定义临时科目的语法如下:
<输出多维数据集>.@<分配给临时科目的名称> := <表达式>;
例如,可以写入
- [LO].@TEMP_ACCOUNT := [C00000](Entity.Filter([A00]));
定义临时科目后,可以使用以下语法使用它
@<分配给临时科目的名称>
例如:
....:=@TEMP_ACCOUNT;
当在 TGKML 脚本中需要多次引用同一物理科目时,建议创建临时科目。这样,脚本会更高效。
通常,不应在应用临时偏移的脚本中使用临时科目,例如
[LO].@TEMP_ACCOUNT := [C00000](Entity.Filter([A00]));
... := @TEMP_ACCOUNT(Time.Scenario.Prev);
因为该科目可能在上一个场景中不存在。
在 TGKML 脚本中,凡是需要在函数中插入整数参数的地方,都可以使用临时科目。系统将读取该科目"第一条记录"的金额,将其舍入到最接近的整数值,并将其用作函数的参数。临时科目的"第一条记录"是不可预测的,因此使用此功能的正确方式是定义单记录临时科目。请注意,在这种情况下,系统仅上传第一条记录的金额信息,而不是整个记录的信息。这就是为什么该参数应被视为非维度性的,而不是与源数据具有相同的维度。