我想介绍一下我们在项目中遇到的有关输入参数过滤问题的问题 .
问题:我们的SAP HANA视图中有5个输入参数,默认值为'',可以选择所有值 . 现在,当我们想要使用脚本从此HANA视图中选择数据到表函数时,我们使用“PLACEHOLDER”语句传递输入参数值,但是对于此语句,''不起作用(它不返回结果) . 更重要的是,如果我将值硬编码为'',它会正确显示数据,但如果我使用变量(保存''值),则表明我没有数据 . 例如: - 对于工厂(WERKS)过滤器,如果我将常量'*',它给我所有数据
- 对于工厂(WERKS)过滤器,如果我使用从最终视图的输入屏幕传递'*'值的变量(ZIN_WERKS),则它不给我任何数据 .
我检查了该变量是否正确填充了'*'值,但仍然没有我们无法理解的数据 .
另外一个问题,我们是否总是将默认值设置为输入参数的'*',因为如果它是空白或空的,它总是过滤空值并且也无法生成值帮助?
您是否遇到过这些问题,因为它似乎是SAP HANA中的基本要点......?我们非常感谢有关这些问题的任何帮助/提示......
1 回答
这确实是一个已被提出的问题 . 这里的要点是您似乎想要模仿HANA模型中基于SAP Netweaver的应用程序的选择行为 .
这里要考虑的一个区别是,像HANA这样的SQL数据库上的占位符字符不是
*
而是%
. 此外,占位符搜索仅在模型使用LIKE
比较时有效,但不适用于=
(等于)或>
,<
或任何其他范围查询组合 .简而言之:如果您希望像SAP Netweaver中那样具有此特定行为,则必须构建自己的脚本视图并明确测试已提供的参数以及"INITIAL" .
此场景的一个有用功能是SQLScript中的
APPLY_FILTER()
函数,它允许在信息模型中应用动态过滤器 . 有关详细信息,请参见建模指南 .