根据TM1中的条件使用进纸器

时间:2016-02-08 08:38:16

标签: cognos-tm1

可以根据if条件提供元素吗?

以下是用于评估验证值的规则计算。

[{'AOP_v1','Forecast_v1'},'Validation', 'Rate'] = N:

IF(ROUNDP(['Phasing Total', 'Rate'] * 100, 5) = 100 % ROUNDP(['Phasing Total', 'Rate'] * 100, 5) = 0,   STET, 1);

我是否可以通过[''Phasing Total','Rate']来提供[{'AOP_v1','Forecast_v1'},'验证','评分']的方式..

ROUNDP(['Phasing Total','Rate'] * 100,5)= 100%ROUNDP(['Phasing Total','Rate'] * 100,5)= 0

Phasing Total Validation

1 个答案:

答案 0 :(得分:0)

您可以使用进纸器右侧的DB()功能创建条件进纸器。您不必在DB公式中对多维数据集名称进行硬编码,而是使用If()函数,如果逻辑条件的计算结果为True,则返回要进给的多维数据集的名称;如果不是,则返回空字符串:

['FeedFrom']=>DB(IF(YourLogicalTest,'NameOfCube',''), !Dim1, !Dim2, 'Element');

显然这只是伪代码; DB函数可以使用当前元素引用(!运算符)和硬编码元素名称的各种组合。但关键是,如果If()测试返回一个空字符串,那么显然DB()函数不会定义要提供的任何内容。

我建议一般在规则和馈线上阅读this IBM articleThis thread on TM1Forum包含一些关于是否应该使用有条件馈线或者找到其他方式的讨论。

您需要考虑线索的后期日期的另一个因素;在较新版本的TM1中,您可以使用多线程加载来增加内存时间的负载。但是,如果使用条件馈线,则必须返回单线程负载。这可能对您造成的影响可以忽略不计,或者可能很大。