时间管理

时间维度是每个 TGKML 脚本的必需维度。Tagetik 为用户提供一组函数,允许在处理不同场景/期间上存在的数据时沿"时间"轴移动。

时间维度可按如下方式导航:

语法 描述
Time.Prev 上一期间
Time.Next 下一期间
Time.Lag(N) 向后 N 个期间。N 也可以是负数,在这种情况下,移动为向前 示例:Time.Lag(3) 表示当前期间之前的第三个期间
Time.Lead(N) 向前 N 个期间。N 也可以是负数,在这种情况下,移动为向后 示例:Time.Lead(3) 表示当前期间之后的第三个期间
Time.Scenario 当前场景(当前期间所属的场景)所有期间之和
Time.PN 其中 N 是整数。一组期间之和(P3=三个月;P2=两个月;P4=四个月) 示例:Time.P3 与当前场景相关的三个月的金额之和
Time.Scenario.Prev 上一场景
Time.Scenario.Next 下一场景
Time.Scenario.First 当前场景的第一个期间
Time.Scenario.Last 当前场景的最后一个期间
Time.Scenario.Prev.Last 当前场景之前场景的最后一个期间
Time.Scenario.Last(P3) 当前场景上的最后四个月
Time.Scenario.Period(N) 其中 N = 1,..,maxPeriod 当前场景的期间 N
Time.Scenario.First(P3).Last 当前场景前四个月的最后一个期间
Time.Ref(N) 其中 N = 1,..,5 与当前场景相关的参考场景 N
Time.[scenario_code] 特定场景所有期间之和 示例:Time.[2013BDG] = 场景 2013BDG 所有期间之和
Time.[scenario_code period_code]

此外,可以使用以下语法指定时间范围

语法 描述
Time.ToDate 所有 <= 当前期间的期间
Time.ToDate(P3) 当前四个月中所有 <= 当前期间的期间
Time.P3.ToDate 当前场景中所有 <= 当前四个月的四个月
Time.Span(1) 当前期间和上一期间
Time.P3.Span(1) 当前和上一个四个月

上述时间维度的特性必须在赋值中按如下方式使用:

[LO].[X0000] := [C00000](Dest1.Filter([01|D11]), Time.Scenario.Prev);

[LO].[X0000] := [C00000](Dest1.Filter([01|D12]), Time.Scenario.Ref(3));

当需要在赋值中从非当前场景读取当前期间时,必须使用 "ParallelPeriod" 函数。

例如,如果当前期间为 3,使用语法

… := [C00000](Dest1.Filter(01|D11), Time.ParallelPeriod(Scenario.Prev));

系统从上一场景的相同期间(3)读取。

系统从上一场景的相同期间(3)读取,而使用语法

… := [C00000](Dest1.Filter(01|D11), Time.ParallelPeriod(Scenario.[2015ACT]));

系统从场景 2015ACT 的相同期间(3)读取数据。