可以根据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
答案 0 :(得分:0)
您可以使用进纸器右侧的DB()功能创建条件进纸器。您不必在DB公式中对多维数据集名称进行硬编码,而是使用If()函数,如果逻辑条件的计算结果为True,则返回要进给的多维数据集的名称;如果不是,则返回空字符串:
['FeedFrom']=>DB(IF(YourLogicalTest,'NameOfCube',''), !Dim1, !Dim2, 'Element');
显然这只是伪代码; DB函数可以使用当前元素引用(!运算符)和硬编码元素名称的各种组合。但关键是,如果If()测试返回一个空字符串,那么显然DB()函数不会定义要提供的任何内容。
我建议一般在规则和馈线上阅读this IBM article。 This thread on TM1Forum包含一些关于是否应该使用有条件馈线或者找到其他方式的讨论。
您需要考虑线索的后期日期的另一个因素;在较新版本的TM1中,您可以使用多线程加载来增加内存时间的负载。但是,如果使用条件馈线,则必须返回单线程负载。这可能对您造成的影响可以忽略不计,或者可能很大。