0

是否可以根据 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'},'Validation', 'Rate'] 只有当......

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

?

分阶段进行全面 验证

4

1 回答 1

0

您可以使用馈线右侧的 DB() 函数来创建条件馈线。与其在 DB 公式中硬编码多维数据集名称,不如使用 If() 函数,如果逻辑条件评估为 True,则返回要馈送的多维数据集的名称,否则返回空字符串:

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

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

我建议阅读这篇关于规则和馈线的 IBM 文章。TM1Forum 上的这个帖子包含一些关于是否应该使用条件馈线或寻找另一种方式的讨论。

您需要考虑该线程的发布日期的另一个因素;在较新版本的 TM1 中,您可以使用多线程加载来改善加载到内存中的时间。但是,如果您使用条件馈线,则必须返回到单线程加载。这可能对您的影响可以忽略不计,也可能是重大的。

于 2016-02-08T10:08:25.520 回答