【问题标题】:IBM Cognos Report Studio: Arbitrary errors when using IF / CASE on an TM1 cubeIBM Cognos Report Studio:在 TM1 多维数据集上使用 IF/CASE 时出现任意错误
【发布时间】:2013-12-20 09:41:58
【问题描述】:

在 Report Studio 中使用 TM1 多维数据集时,我在使用 IF / CASE 表达式时遇到了一些问题。

我正在使用包含“分支”维度中的元素的元组函数“过滤”交叉表。用户可以通过我所做的值提示来浏览此分支层次结构。

因此,用户要求他们每次都可以看到他们在分支层次结构中的位置(即查看从根到当前节点的路径)。

因此,我尝试创建两个查询表达式,它们始终代表当前节点和当前级别:

[当前分支]:

#prompt('pBranch', 'MUN', '[Cube].[Dimension].[Hierarchy].[Level]->:[TM].[Dim_Branch].[Dim_Branch].[@MEMBER].[49981]')#

[当前等级]:

ordinal(level([CurrentBranch]))

这两个都按预期工作。但是,当我尝试使用 IF / CASE 语句来显示正确数量的父母时,我得到了各种任意错误。一个例子是 [FirstParent] 表达式:

IF ([CurrentLevel] > 1) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

它会产生以下错误...

Data size error. The data type is 'cclDTypeExternalBuffer'.

...当 [FirstParent] 添加到布局计算时。

如果我将表达式更改为(只是为了测试 IF 语句):

IF (1 > 0) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

显示相同的错误。 如果我然后将语句更改为

IF (1=0) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

IF (1=1) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

没有显示错误,结果是正确的。

但是,如果我现在将表达式更改为:

IF ([CurrentLevel]=1) THEN
    (roleValue('_memberCaption', parent([CurrentBranch])))
ELSE
    ('')

...然后再次显示相同的错误。

Data size error. The data type is 'cclDTypeExternalBuffer'.

我尝试将 [CurrentLevel] 包装在使用 OLAP 时支持的各种常用函数(例如 abs())中,但是没有运气。

任何想法为什么会发生这种情况以及如何解决它?

这真的超出了我的理解范围。

感谢您的任何意见!

【问题讨论】:

  • CurrentMember 函数有什么问题?它将为您提供您在分支维度上过滤的成员。然后应用Ancestor函数获取完整路径。
  • 没有错。但是,[CurrentBranch] 将始终引用 currentMember(....) 将引用的相同项目。因此,我相信写起来更容易。我看不出这会如何改变行为?据我所知,祖先([CurrentBranch],1)等于父([CurrentBranch])?

标签: cognos cognos-bi cognos-tm1 cognos-10


【解决方案1】:

找到了这个解释,说“报表表达式旨在访问参数和报表会话属性;使用它们来访问查询项可能容易出错。”报告表达式就是我所说的布局计算

http://www-01.ibm.com/support/docview.wss?uid=swg21340596

因此,我解锁了报表并直接包含数据项。这样,一切都按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多