Oracle OBIEE 12C:表示变量的使用

Oracle OBIEE 12C:表示变量的使用,oracle,obiee,Oracle,Obiee,我有一个关于表示变量使用的问题: 1) 在使用表示变量时,过滤的正确语法是什么?您允许用户在筛选器中选择多个值,例如a和B。如果使用语法='@{PV}{%}',它将导致以下sql:='a,B',当然,这在数据中不存在。我想要这个结果:在('A','B')中。 我已经找到了以下语法:(@{PV}['@'])它给出了正确的sql,这里唯一的问题是,当您有一个允许“所有列值”的仪表板提示时,这不起作用。当没有值传递到此表示变量时,分析将抛出一个错误。我不知道如何在这个函数中设置默认值。有什么想法吗 2

我有一个关于表示变量使用的问题:

1) 在使用表示变量时,过滤的正确语法是什么?您允许用户在筛选器中选择多个值,例如a和B。如果使用语法='@{PV}{%}',它将导致以下sql:='a,B',当然,这在数据中不存在。我想要这个结果:在('A','B')中。 我已经找到了以下语法:(@{PV}['@'])它给出了正确的sql,这里唯一的问题是,当您有一个允许“所有列值”的仪表板提示时,这不起作用。当没有值传递到此表示变量时,分析将抛出一个错误。我不知道如何在这个函数中设置默认值。有什么想法吗

2) 是否有任何配置或设置,您可以推动obi使用表示变量,而不是使用“正常”过滤方式,如下所示:

obi的方式是,它将关系更改为提示中的关系(如果提示说“大于”,它也将在此处更改,即使您在此处输入了“等于”),但如果该维度曾经有值,它也将使用该维度的值,而不是侦听仪表板提示符的presentation变量中的值。我知道您可以将其转换为SQL,但这不是我的方法。我想要的行为是(按照这个确切的顺序): -当仪表板提示中的presentation变量中有值时,请执行此操作。 -当维度的这个角色有一个值时,就取这个值

原因是因为我们有这个维度“Afdeling”,它可以承担许多角色,但我们的客户要求对最终用户隐藏这些角色。这意味着,即使您切换角色,最终用户始终会看到“Afdeling”,并且不关心它在哪个角色中查看其“Afdeling”。它们可以在不同的仪表板页面之间切换,如果我将“Afdeling”的仪表板提示符放在页面顶部,则在将页面切换到另一个角色的另一个仪表板提示符时,该值不会传递。这样最终用户就会知道出了什么事。因此,无论该维度扮演什么角色,该值都需要通过每个页面上的提示


通过谷歌搜索,我自己找到了问题1的答案。感谢这个网站,我现在知道正确的语法是(@{pvu region}['@']{'West'})

或者只在构建时使用工具,并仅将表示变量用作最后手段,而不是第一个选项:)或者只在构建时使用工具,并仅将表示变量用作最后手段,而不是第一个选项:)